어느 날 저는 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
TCP는 상태 저장 프로토콜이고 UDP는 상태 비저장 프로토콜이므로 사용할 수 없습니다 ctstate
.
특정 포트에서 UDP 트래픽을 허용하거나 허용하지 않습니다.
--udp-flags FIN,SYN,RST,ACK SYN
그것도 순전히 헛소리일 뿐이다 .
즉, iptables 설정을 서두르기 전에 TCP/IP 및 UDP에 익숙해지십시오.