iptables reject

agnusdei·2024년 7월 31일
0

iptables에서 패킷을 REJECT로 처리할 때, 해당 패킷이 단순히 차단되는 것이 아니라 송신자에게 거부 응답이 전송됩니다. 이 거부 응답은 프로토콜에 따라 다르며, 각기 다른 형태로 나타납니다. 다음은 프로토콜별로 REJECT 액션을 적용했을 때 발생하는 응답의 유형을 정리한 것입니다:

1. TCP 프로토콜

  • 응답 유형: TCP RST (Reset)
  • 설명: TCP 연결을 시도하는 패킷이 REJECT로 차단되면, 송신자에게 TCP RST 패킷이 전송됩니다. TCP RST 패킷을 수신한 송신자는 해당 연결이 즉시 종료되었음을 인식하고 더 이상 연결을 시도하지 않습니다.

2. UDP 프로토콜

  • 응답 유형: ICMP Port Unreachable
  • 설명: UDP 패킷이 REJECT로 차단되면, 송신자에게 ICMP Port Unreachable 패킷이 전송됩니다. 이는 해당 포트로의 접근이 불가능하다는 것을 의미합니다.

3. ICMP 프로토콜

  • 응답 유형: ICMP Destination Unreachable
  • 설명: ICMP 패킷이 REJECT로 차단되면, 송신자에게 ICMP Destination Unreachable 패킷이 전송됩니다. 이는 목적지에 도달할 수 없다는 응답입니다.

4. 기타 프로토콜

  • 응답 유형: Default: ICMP Protocol Unreachable
  • 설명: TCP, UDP, ICMP 이외의 프로토콜에 대해 REJECT 규칙을 적용하면, 기본적으로 ICMP Protocol Unreachable 패킷이 전송됩니다. 이는 해당 프로토콜을 처리할 수 없다는 의미입니다.

5. 사용자 지정 거부 응답

  • 응답 유형: 사용자 지정 ICMP 유형 또는 TCP RST
  • 설명: REJECT 액션에 추가적으로 --reject-with 옵션을 사용하여 사용자 지정 거부 응답을 설정할 수 있습니다. 예를 들어, --reject-with tcp-reset 또는 --reject-with icmp-host-prohibited와 같은 형태로 응답 유형을 명시적으로 지정할 수 있습니다.

6. ICMP의 세부 옵션

  • ICMP 네트워크 관련 거부: icmp-net-unreachable
  • ICMP 호스트 관련 거부: icmp-host-unreachable
  • ICMP 포트 관련 거부: icmp-port-unreachable
  • ICMP 관리적으로 금지됨: icmp-admin-prohibited

이처럼 iptablesREJECT 액션은 단순히 패킷을 드롭하는 것과 달리, 송신자에게 명시적인 거부 응답을 전송하여 패킷이 차단되었음을 알립니다. 이를 통해 송신자는 해당 요청이 차단되었음을 즉시 알 수 있습니다.

profile
DevSecOps ⚙️ + CTF🚩

0개의 댓글