새로운 TCP 연결을 일치시키기 위해 "--sync" 외에 "--ctstate NEW"를 사용하는 이점

새로운 TCP 연결을 일치시키기 위해 "--sync" 외에 "--ctstate NEW"를 사용하는 이점

iptables의 컨텍스트에서 새 TCP 연결을 일치시키려면 다음을 사용할 수 있습니다.

-A INPUT -p tcp --syn -m conntrack --ctstate NEW -j ACCEPT

하지만 플래그가 이미 존재하는 --ctstate NEW한 여전히 필요합니까? --syn즉, --syn패킷은 정의상 항상 새로운 것이 아닌가? 그러면 상태 확인이 중복됩니까, 아니면 그렇게 하면 어떤 이점이 있습니까? 데이터 패키지가 --syn새 것이 아닐 수 있나요?

때때로 상태 확인이 제거되는 많은 예를 읽었지만 다른 (대부분의) 텍스트에서는 여전히 존재합니다. 또한 다음과 같은 관련 질문을 찾았지만 특정 질문에 대한 정확한 답변을 찾을 수 없습니다.

새로운 TCP 연결을 일치시키기 위해 "--syn"을 사용할 때의 이점

https://serverfault.com/q/338553

감사합니다.

답변1

나는 모든 종속 체인을 첫 번째 규칙으로 만들기 때문에 항상 그것을 발견 --syn하고 중복됩니다.--ctstate NEW-m state --state INVALID -j DROP

아이디어는 아마도 당신이 순수주의자가 되고 싶고 TCP/IP 스택을 엄격하게 따르기를 원한다는 것입니다. 즉, 새로운 연결은 하나만 있어야 함을 의미합니다. --syn즉, 설정된 연결 내에서 SYN 패킷을 보낼 수 없습니다. 연결을 종료하려면 다음을 사용해야 하기 때문입니다. FIN.

관련 정보