iptables 새로운 연결 대 –syn state –state NEW 과 iptables … –syn 첫 번째는

차이점은 무엇입니까?

iptables ... -m state --state NEW

iptables ... --syn

첫 번째는 새 연결을 선택해야하지만 TCP syn 플래그를 보내 AFAIK 새 연결이 이루어집니다. 다른 하나는 syn 플래그가있는 패킷을 의미합니다.

위의 명령이 다른 결과를 반환 할 때 실용적인 예를 들어 줄 수 있습니까?



답변

--syn플래그는 TCP 트래픽을 확인하는 데 유용하지만, NEW상태가 다른 (를 포함하여 프로토콜을 사용할 수 있습니다 TCP)와 같은 UDPICMP. TCP 옵션 NEW보다 더 일반적 이라고 말할 수 있습니다 --syn.

iptables 매뉴얼에서 다음을 읽을 수 있습니다.

NEW    meaning that the packet has started a new connection,
       or otherwise associated with a connection which has not seen packets in both directions

예를 들어, DNS 요청은 NEW상태 와 일치 하지만 --syn옵션이 있는 규칙과 일치하지 않습니다 . 간단히 말해 UDP 데이터 그램입니다.

또한이 --syn옵션을 사용하여 잘못된 플래그 조합으로 TCP 패킷을 삭제하여 패킷을 삭제할 수 있습니다.

또한이 두 옵션을 함께 사용하여 첫 번째 패킷 NEW없이 TCP 흐름 을 확인 --syn하고 다음과 같이 삭제할 수 있습니다.

$ sudo iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"

여기서는 이러한 유형의 패킷을 bad_tcp_packets삭제 / 로그 등 이라고하는 사용자 정의 체인에 추가합니다 .


답변