유효하지 않은 패킷을 차단하기 위해 TCP 패킷을 수정할 수 있지만 UDP 패킷은 수정할 수 없는 이유

유효하지 않은 패킷을 차단하기 위해 TCP 패킷을 수정할 수 있지만 UDP 패킷은 수정할 수 없는 이유

어느 날 저는 iptables데스크탑을 강화하기 위한 규칙을 검색하다가 이 기사를 발견했습니다[1]. 어느 시점에서 가이드에서는 유효하지 않은 TCP 패킷을 차단하기 위해 tcp 모듈과 이러한 규칙을 사용하는 것에 대해 언급합니다.

iptables -A INPUT -p tcp -m tcp --tcp-flags ALL FIN,PSH,URG -j DROP

iptables -A INPUT -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

iptables -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j DROP

위 명령에서 Enter 키를 눌렀더니 규칙이 성공적으로 적용되었습니다. 그런 다음 tcp각 명령의 일부를 udp예를 들어 세 번째 명령을 실행하는 경우 로 바꾸려고 합니다 .

iptables -A INPUT -p udp -m conntrack --ctstate NEW -m udp ! --udp-flags FIN,SYN,RST,ACK SYN -j DROP

그러면 이러한 규칙이 UDP 패킷에 유효하지 않다는 오류가 반환됩니다. Debian 운영 체제, 커널 버전 4.9.x를 사용하고 있습니다.

내가 온라인에서 읽은 기사

  1. https://www.booleanworld.com/length-guide-iptables-linux-firewall/

답변1

TCP는 상태 저장 프로토콜이고 UDP는 상태 비저장 프로토콜이므로 사용할 수 없습니다 ctstate.

특정 포트에서 UDP 트래픽을 허용하거나 허용하지 않습니다.

--udp-flags FIN,SYN,RST,ACK SYN그것도 순전히 헛소리일 뿐이다 .

즉, iptables 설정을 서두르기 전에 TCP/IP 및 UDP에 익숙해지십시오.

관련 정보