iptables, -m state와 -m conntrack의 차이점은 무엇입니까?


48

실제 차이점은 무엇입니까?

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

어느 것이 가장 사용하기 좋습니까?

감사합니다.


9
Linux Kernel 3.7 이상의 경우 상태가 제거되었습니다. conntrack 만 사용할 수 있습니다.
Mr. X

3.10.0을 실행 중이고 상태는 여전히 지원됩니다 ...

1
conntrack을 위해 state는 더 이상 사용되지 않으며, 커널의 빌드 방법에 따라 컴파일되거나 컴파일되지 않을 수 있습니다.
Michael Hampton

답변:


26

둘 다 아래의 동일한 커널 내부를 사용합니다 (연결 추적 하위 시스템).

xt_conntrack.c의 헤더 :

xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)

따라서 상태 모듈이 더 간단하고 오류가 발생할 가능성이 적습니다. 커널이 더 길다. 다른 쪽의 Conntrack에는 더 많은 옵션과 기능이 있습니다 [1].

내 전화는 기능이 필요한 경우 conntrack을 사용하고, 그렇지 않으면 상태 모듈을 사용합니다.

netfilter 메일리스트와 비슷한 질문입니다.

[1] "-m conntrack --ctstate DNAT -j MASQUERADE"라우팅 / DNAT 수정과 같은 매우 유용합니다 ;-)


8

이 두 규칙의 결과에는 차이가 없습니다. 일치 확장 프로그램은 모두 동일한 데이터를 사용하여 연결 추적 상태를 일치시킵니다. state는 "old"match 확장이며 conntrack은 더 새롭고 연결 추적 상태와 일치하는 것보다 훨씬 많은 옵션이 있습니다.


1

IPtables Doc

문서가 말했듯이 :

conntrack match는 확장 된 버전의 state match로,보다 세분화 된 방식으로 패킷을 일치시킬 수 있습니다. 상태 일치와 같은 "프론트 엔드"시스템없이 연결 추적 시스템에서 직접 사용 가능한 정보를 볼 수 있습니다. 연결 추적 시스템에 대한 자세한 내용은 State machine 장을 참조하십시오.


참조가 더 이상 작동하지 않습니다
prosti

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.