Netfilter는 패킷이 관련되어 있다는 것을 어떻게 이해합니까?

Netfilter는 패킷이 관련되어 있다는 것을 어떻게 이해합니까?

conntrack일치 모듈 --ctstate매개변수는 패킷 상태를 지원합니다 RELATED. 예를 들어 활성 FTP를 사용하는 경우 Netfilter는 FTP 서버 데이터 포트(TCP 포트 20)에서 클라이언트의 이전에 지정된 권한 없는 데이터 포트로의 연결이 연결인지 어떻게 알 수 있습니까 RELATED? Netfilter에는 지원되는 각 프로토콜을 설명하는 모듈이 있습니까 RELATED? 마지막으로 이 상태에서 지원되는 프로토콜 목록이 있습니까 RELATED?

답변1

다양한 ICMP(인터넷 제어 메시지 프로토콜) 패킷은 연결(또는 특정 프로토콜에 대한 연결 시도)과 "연관"될 수 있지만 이러한 ICMP 패킷은 이를 유발한 프로토콜과 동일하지 않으므로 "연관"이라는 개념이 있습니다. 이는 호스트나 방화벽이 대상에 연결할 수 없는 ICMP 패킷에 대한 TCP 또는 UDP 연결 시도를 거부할 때 발생할 수 있습니다. RELATED연결된 ICMP 패킷은 통과가 허용됩니다. (TCP에는 RST가 있으므로 관련 ICMP 응답을 보낼 수도 있고 안 보낼 수도 있으며 방화벽 관리자는 ICMP 응답을 허용하거나 허용하지 않을 수도 있습니다...)

각 애플리케이션 수준 프로토콜(예: FTP)에는 사용자 정의 모듈이 필요합니다. 왜냐하면 패킷을 자세히 살펴보고 그것이 netfilter가 알고 있는 다른 것과 관련되는지 여부와 방법을 결정하려면 사용자 정의 코드가 필요하기 때문입니다. 이러한 모듈은 모든 응용 프로그램에 대해 누구나 작성할 수 있지만 nf_conntrack_*사용 가능한 파일을 확인하는 것이 목록을 시작하기에 좋은 장소일 수 있습니다.

% print -l /lib/modules/3.10.0-327.13.1.el7.x86_64/kernel/net/netfilter/nf_conntrack_*(:t)
nf_conntrack_amanda.ko
nf_conntrack_broadcast.ko
nf_conntrack_ftp.ko
...

관련 정보