iptables -A, -D ...

agnusdei·2024년 7월 31일

iptables는 Linux 커널 방화벽 및 패킷 필터링 기능을 관리하는 도구로, 여러 가지 옵션을 사용해 규칙을 추가, 삭제, 수정할 수 있습니다. 이 도구의 주요 명령어와 옵션을 설명하자면 다음과 같습니다:

1. -A (Append)

  • 설명: 지정한 체인(chain) 끝에 새로운 규칙을 추가합니다. 이 규칙은 해당 체인의 기존 규칙 뒤에 추가됩니다.
  • 사용 예시: HTTP 트래픽을 허용하는 규칙을 추가하고 싶을 때 사용합니다.
  • 예시 구문: iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. -D (Delete)

  • 설명: 지정한 체인에서 특정 규칙을 삭제합니다. 삭제할 규칙을 명시적으로 지정하거나, 규칙 번호를 이용해 삭제할 수 있습니다.
  • 사용 예시: 이전에 추가한 규칙을 제거하고 싶을 때 사용합니다.
  • 예시 구문:
    • 규칙 번호로 삭제: iptables -D INPUT 1 (첫 번째 규칙 삭제)
    • 명시적으로 삭제: iptables -D INPUT -p tcp --dport 80 -j ACCEPT

3. -I (Insert)

  • 설명: 지정한 체인의 특정 위치에 새로운 규칙을 삽입합니다. 위치를 지정하지 않으면 체인의 맨 앞에 삽입됩니다.
  • 사용 예시: 특정 규칙이 다른 규칙들보다 먼저 평가되도록 삽입하고 싶을 때 사용합니다.
  • 예시 구문: iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT (첫 번째 위치에 SSH 허용 규칙 삽입)

4. -R (Replace)

  • 설명: 지정한 체인의 특정 위치의 규칙을 새로운 규칙으로 대체합니다.
  • 사용 예시: 특정 위치의 규칙을 다른 규칙으로 대체하고 싶을 때 사용합니다.
  • 예시 구문: iptables -R INPUT 2 -p tcp --dport 443 -j ACCEPT (두 번째 규칙을 HTTPS 허용으로 대체)

5. -L (List)

  • 설명: 지정한 체인의 규칙을 나열합니다. 체인을 지정하지 않으면 기본적으로 모든 체인의 규칙이 나열됩니다.
  • 사용 예시: 현재 설정된 방화벽 규칙을 확인하고 싶을 때 사용합니다.
  • 예시 구문: iptables -L 또는 iptables -L INPUT

6. -F (Flush)

  • 설명: 지정한 체인의 모든 규칙을 삭제합니다. 체인을 지정하지 않으면 모든 체인의 규칙이 삭제됩니다.
  • 사용 예시: 특정 체인의 규칙을 모두 제거하고 싶을 때 사용합니다.
  • 예시 구문: iptables -F INPUT 또는 iptables -F (모든 체인 초기화)

7. -Z (Zero)

  • 설명: 체인의 모든 규칙에 대한 패킷 및 바이트 카운터를 0으로 초기화합니다.
  • 사용 예시: 방화벽 규칙에 대해 수집된 통계를 초기화하고 싶을 때 사용합니다.
  • 예시 구문: iptables -Z INPUT 또는 iptables -Z (모든 체인 카운터 초기화)

8. -N (New chain)

  • 설명: 새로운 사용자 정의 체인을 생성합니다.
  • 사용 예시: 특정 트래픽에 대한 규칙 집합을 별도의 체인으로 관리하고 싶을 때 사용합니다.
  • 예시 구문: iptables -N MY_CHAIN

9. -X (Delete chain)

  • 설명: 사용자 정의 체인을 삭제합니다. 체인에 규칙이 남아 있거나 체인이 다른 체인에서 참조되고 있으면 삭제할 수 없습니다.
  • 사용 예시: 더 이상 필요하지 않은 사용자 정의 체인을 삭제하고 싶을 때 사용합니다.
  • 예시 구문: iptables -X MY_CHAIN

10. -P (Policy)

  • 설명: 기본 체인에 대한 정책을 설정합니다. 주로 ACCEPT 또는 DROP을 사용하여 해당 체인의 기본 동작을 정의합니다.
  • 사용 예시: 기본 정책을 설정하여 체인의 기본 동작을 결정하고 싶을 때 사용합니다.
  • 예시 구문: iptables -P INPUT DROP (기본적으로 모든 입력 트래픽을 차단)

11. -E (Rename chain)

  • 설명: 사용자 정의 체인의 이름을 변경합니다.
  • 사용 예시: 사용자 정의 체인의 이름을 의미에 맞게 변경하고 싶을 때 사용합니다.
  • 예시 구문: iptables -E OLD_CHAIN_NAME NEW_CHAIN_NAME

이러한 iptables 명령어와 옵션들을 적절히 사용하면 네트워크 트래픽을 유연하게 관리할 수 있으며, 방화벽 규칙을 추가, 삭제, 수정, 확인할 수 있습니다.

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글