Post

오토에버 클라우드 2기 25일차

오토에버 클라우드 2기 25일차

리눅스 방화벽

1. 리눅스에서 사용하는 방화벽 종류

배포판기본 방화벽 도구
UbuntuUFW (Uncomplicated Firewall)
CentOS 7 이상firewalld
공통iptables (netfilter 기반)
  • UFW, firewalld, iptables는 모두 netfilter라는 리눅스 커널 모듈의 프론트엔드 도구

  • 실제 패킷 필터링은 netfilter가 수행

 

2. iptables 개념

주요 용어

  • Table: 방화벽 정책 테이블 → filter, nat, mangle, raw, security

  • Chain: 트래픽 방향성 기준 정책 그룹
    • INPUT: 외부 → 서버
    • OUTPUT: 서버 → 외부
    • FORWARD: 서버를 거쳐 다른 네트워크로 가는 트래픽
  • Target: 매치된 패킷에 대한 처리 방식 (ACCEPT, REJECT, DROP 등)
  • Match: 조건 (예: IP, 포트, 프로토콜, 상태 등)

filter 테이블의 기본 체인

체인설명
INPUT외부에서 서버로 들어오는 트래픽 제어
OUTPUT서버에서 외부로 나가는 트래픽 제어
FORWARD서버를 경유하는 트래픽 제어 (라우터 역할 시)

 

3. iptables 사용 실습

기본 방화벽 상태 확인 및 설정

기존 UFW 비활성화 (Ubuntu)

1
2
3
4
sudo systemctl status ufw    # 상태 확인
sudo systemctl stop ufw      # 중지
sudo systemctl disable ufw   # 부팅 시 자동 시작 방지
sudo reboot                  # 재부팅

iptables 설치

1
sudo apt install iptables-persistent -y

현재 룰 확인

1
sudo iptables -L

 

4. iptables 정책 설정 예시

상태 기반 허용

1
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

ICMP 허용 (Ping 응답 등)

1
sudo iptables -A INPUT -p icmp -j ACCEPT

웹서버 포트(80) 허용

1
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Apache 설치 후 확인 가능함

 

특정 IP만 포트 접근 허용

1
sudo iptables -A INPUT -p tcp -s 192.168.56.3 --dport 22 -j ACCEPT

 

5. 룰 삭제 및 초기화

특정 룰 삭제 (라인 번호 기준)

1
2
sudo iptables -L --line-numbers
sudo iptables -D INPUT [라인번호]

전체 룰 초기화

1
sudo iptables -F

 

6. 변경사항 저장

1
2
sudo netfilter-persistent save
sudo netfilter-persistent reload

 

7.UFW 사용법 요약

기본 방화벽 명령어

1
2
3
4
sudo ufw enable         # 활성화
sudo ufw disable        # 비활성화
sudo ufw status         # 상태 확인
sudo ufw status verbose # 상세 상태

기본 정책 설정

1
2
sudo ufw default deny incoming
sudo ufw default allow outgoing

포트 허용

1
sudo ufw allow 22/tcp

 

8. 네트워크 설정 확인

1
hostname -I

 

This post is licensed under CC BY 4.0 by the author.