iptables TCP 플래그

iptables TCP 플래그

저는 iptables 및 네트워킹 초보자이므로 초보적인 질문에 대해 양해해 주시기 바랍니다.

잘못된 패킷을 필터링하는 부분을 인터넷에서 찾았습니다.

/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL SYN -m state --state NEW -j RETURN

하지만 내가 아는 한, 첫 번째(새) 패킷에는 SYN 플래그가 포함되어야 하며 이 규칙이 새 연결을 방지합니까? 아니면 제가 이것을 오해하고 있는 걸까요?

또한 다음 규칙을 적용한 후에는 어떤 일이 발생합니까?

/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL RST,ACK,PSH
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL RST,ACK,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL RST,ACK,PSH,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL FIN,PSH,ACK,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL ACK,URG
/usr/bin/sudo /sbin/iptables -A tcpchk -p tcp --tcp-flags ALL ACK,URG,FIN

내가 옳다면 아무런 조치가 없나요? iptables는 위의 플래그를 확인하고 다음 규칙으로 이동합니다. 그렇죠?

답변1

두 번째 예에서는 아무런 작업도 수행하지 않으므로 통계를 누적하는 것 외에는 아무것도 수행하지 않습니다.

iptables -xvn -L tcpchk

ALL SYN은 설정된 연결과 일치하고 킥은 tcpchk 체인에서 연결을 설정한 다음 상위 체인(아마도 INPUT)으로 돌아갑니다. 그만큼-j 반환패킷을 부모에게 반환합니다.

규칙은 실제로 아무것도 삭제하거나 거부하지 않기 때문에 오작동을 일으키지 않습니다.

관련 정보