OS/Linux

[Linux] iptables란 ? iptables를 통한 트래픽 제어

yeit 2024. 6. 1. 15:02
728x90

 

iptables란?

  • iptables는 리눅스 운영 체제에서 패킷 필터링 및 네트워크 주소 변환을 설정하는 데 사용되는 명령줄 도구
  • 주로 방화벽 설정과 네트워크 트래픽 제어에 사용됨
  • 들어오거나 나가는 트래픽을 필터링하고 특정 조건에 따라 패킷을 허용하거나 차단 가능

 

iptables의 기본 구조

# iptables -A <chain> -p <protocol> -s <source> --sport <source-port> -d <destination> --dport <destination-port> -j <target>
  • -A <chain> : 규칙을 추가할 체인 (INPUT, OUTPUT, FORWARD 등)
  • -p <protocol> : 프로토콜 (tcp, udp, icmp 등)
  • -s <source> : 소스 주소 (IP 또는 서브넷)
  • --sport <source-port> : 소스 포트
  • -d <destination> : 목적지 주소 (IP 또는 서브넷)
  • --dport <destination-port> : 목적지 포트
  • -j <target> : 패킷의 처리 방법 (ACCEPT, DROP, REJECT 등)

 

 

 

1. 특정 IP에서 특정 포트로의 인바운드 트래픽 허용하기

1-1. 인바운드 트래픽 허용

192.168.0.1에서 192.168.0.2의 2288포트로의 트래픽 허용

# iptables -A INPUT -s 192.168.0.1 -d 192.168.0.2 -p tcp --dport 2288 -j ACCEPT
  • -A INPUT : INPUT 체인에 새로운 규칙 추가. INPUT 체인은 서버로 들어오는 패킷을 처리
  • -s 192.168.0.1 : 소스 IP 주소가 192.168.0.1인 패킷에 대해 규칙 적용
  • -d 192.168.0.2 : 목적지 IP 주소가 192.168.0.2인 패킷에 대해 규칙 적용
  • -p tcp : 프로토콜이 TCP인 패킷에 대해 규칙 적용
  • --dport 2288 : 목적지 포트가 2288인 패킷에 대해 규칙 적용
  • -j ACCEPT : 패킷 허용

1-2. 설정 저장

# service iptables save  (CentOS 6 이하)
# iptables-save > /etc/sysconfig/iptables  (CentOS 7 이후)(CentOS 7 이상에서는 firewalld가 기본 방화벽 관리 도구)

 

1-3. 확인

# iptables -L -v -n --line-numbers

 

1-4. 정책 저장

시스템 재부팅 후에도 규칙을 유지하려면 규칙을 저장해야 한다.

# iptables-save > /etc/sysconfig/iptables.v1

 

+ 정책 복원

# iptables-restore < /etc/sysconfig/iptables.v1

 

 

2. 아웃바운드 트래픽 허용하기

192.168.0.1에서 192.168.0.2:2288로 나가는 트래픽 허용

iptables -A OUTPUT -s 192.168.0.1 -d 192.168.0.2 -p tcp --dport 2288 -j ACCEPT

 

 

3. 정책 삭제

# iptables -D INPUT -s 192.168.0.1 -d 192.168.0.2 -p tcp --dport 2288 -j ACCEPT

 

 

4. ICMP(Ping) 허용  

# iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

 

 

5. 모든 규칙 초기화

현재 설정된 모든 방화벽 규칙을 초기화

# iptables -F
728x90