리눅스의 내부 네트워크 트래픽 처리하기 위해 iptables에 대해 알아보자.

리눅스의 내부 네트워크 트래픽 처리하기 위해 iptables에 대해 알아보자

iptables는 리눅스에서 네트워크 트래픽을 관리하는 방화벽 도구로, 패킷 필터링을 통해 네트워크 접근을 제어한다. iptables는 각 패킷을 체인(chain)과 룰(rule)이라는 규칙에 따라 처리한다. 체인은 INPUT, OUTPUT, FORWARD 등으로 나뉘며, 패킷이 해당 체인에 들어올 때 정의된 룰에 따라 행동을 결정한다.

기본적인 iptables 사용법

iptables는 크게 3개의 테이블로 나뉜다:

  • filter: 가장 일반적인 테이블로, 패킷을 필터링하는 데 사용된다.
  • nat: 네트워크 주소 변환(NAT)에 관련된 규칙을 처리한다.
  • mangle: 패킷을 수정하는 데 사용된다.

여기서는 가장 많이 쓰이는 filter 테이블을 주로 사용한다.

기본 명령어 구조

iptables -A [체인] -p [프로토콜] --dport [포트번호] -j [액션]
  • -A: 룰 추가 (append)
  • -p: 프로토콜 지정 (tcp, udp 등)
  • --dport: 포트 번호 지정
  • -j: 패킷을 어떻게 처리할지 결정 (ACCEPT, DROP 등)

구체적 사용 예시

  1. SSH 접근 허용
    • SSH(포트 22)를 허용하려면 다음과 같은 명령을 입력한다.
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
  2. HTTP/HTTPS 접근 허용
    • 웹 서버(HTTP: 80, HTTPS: 443)를 위한 규칙 설정:
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    
  3. 특정 IP 블록
    • 192.168.1.100 IP 주소에서 오는 모든 트래픽 차단:
    iptables -A INPUT -s 192.168.1.100 -j DROP
    
  4. Ping 차단
    • ICMP 요청(ping)을 차단하려면 다음과 같이 설정한다.
    iptables -A INPUT -p icmp -j DROP
    

규칙 관리

  1. 룰 삭제
    • 특정 규칙을 삭제하려면, 해당 규칙의 번호를 확인한 후 삭제한다.
    iptables -L --line-numbers
    iptables -D INPUT [번호]
    
  2. 룰 전체 초기화
    • 모든 iptables 규칙을 초기화하려면 아래 명령을 사용한다.
    iptables -F
    
  3. 저장 및 복원
    • 시스템 재부팅 시 설정을 유지하기 위해 현재 iptables 설정을 저장하고 복원할 수 있다.
    • 설정 저장:
      sudo iptables-save > /etc/iptables/rules.v4
      
  • 설정 복원:

    bash
    sudo iptables-restore < /etc/iptables/rules.v4

기본적인 iptables 사용법 요약

iptables는 네트워크 트래픽을 관리하는 강력한 도구로, 원하는 룰을 추가하고 삭제하며, 시스템 부팅 시에도 적용될 수 있도록 설정을 저장하는 것이 중요하다. 이를 통해 리눅스 서버에서 방화벽을 유연하게 구성할 수 있다.

Leave a Comment

Index