iptables : NEW, ESTABLISHED 및 RELATED 패킷의 차이점 100 –hitcount 10 -j DROP 온라인

서버에서 방화벽의 일부 :

iptables -A INPUT -p tcp --dport 22 -m state NEW --state -m recent --set

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 100 --hitcount 10 -j DROP

온라인 검색시 항상 해당 규칙에 NEW가 사용되고 있지만 ESTABLISHED 및 RELATED가 사용되지 않는 이유를 이해하기가 어렵습니다.

이처럼 :

iptables -A INPUT -p tcp --dport 22 -m state NEW,ESTABLISHED,RELATED --state -m recent --set

iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED,RELATED -m recent --update --seconds 100 --hitcount 10 -j DROP

정확히 새로운 패킷이 ESTABLISHED 및 RELATED로 변경 될 때 누군가 나에게 설명 할 수 있습니까?



답변

수신자가 전화를 받기 전에 전화가 걸려온 새 패킷을 고려하십시오. ESTABLISHED 패킷은 “Hello”입니다. 그리고 관련된 패킷은 당신이 그들에게 당신이 그들을 보내려고하는 이메일에 대해 이야기하기 위해 전화를 거는 것입니다. (이메일이 관련되어 있습니다.)

내 비유가 그렇게 좋지 않은 경우 개인적으로 매뉴얼 페이지가 잘 처리한다고 생각합니다.

NEW-패킷이 새로운 연결을 시작했거나 양방향으로 패킷을 보지 못한 연결과 관련이 있음을 의미합니다.

ESTABLISHED-패킷이 양방향에서 패킷을 본 연결과 연관되어 있음을 의미합니다.

관련-패킷이 새 연결을 시작하지만 FTP 데이터 전송 또는 ICMP 오류와 같은 기존 연결과 연결되어 있음을 의미합니다.

iptables (8)-Linux 매뉴얼 페이지


답변

서버와 클라이언트 모두에게 제한 INPUT적이고 개방적 OUTPUT인 가정 :

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT

그리고 iptables-extensions (8) 에서 활성 모드의 FTP 예제를 통해 :

1. 새로운

NEW 패킷이 새로운 연결을 시작했거나 양방향으로 패킷을 보지 못한 연결과 연관되었습니다.

클라이언트 온 포트 50000(임의의 권한이없는 임의의 포트)는 port의 FTP 서버에 연결 21합니다. 서버는이 들어오는 연결을 수락하기 위해 최소한 이것이 필요합니다.

iptables -A INPUT --dport 21 -m state --state NEW -j ACCEPT

2. 설립

ESTABLISHED 패킷이 양방향으로 패킷을 본 연결과 연관되어 있습니다.

이제 클라이언트 측에서, 그는 포트에서 서버로 나가는 연결 열어 21로컬 포트를 사용하여 50000그는에서 도착하는 응답 할 수 있도록 다음의 iptables을 필요 server (21)로를 client (50000):

sudo iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

3. 관련

관련 패킷이 새 연결을 시작하고 있지만 FTP 데이터 전송 또는 ICMP 오류와 같은 기존 연결과 연결되어 있습니다.

FTP 연결이 설정 및 데이터 연결에 대해 수행 할 수있다 된 지금은 후 포트 (활성 FTP 클라이언트가 데이터 연결 서버가됩니다으로, 예), 클라이언트는 서버 소켓을 열 것입니다 60000(이 포트를 표시합니다 나의 이해 클라이언트에 60000RELATED의 다른 연결로 50000->21)와 FTP를 사용하여 서버에이 포트 번호를 보내드립니다 PORT명령을 사용합니다. 그런 다음 FTP 서버는 해당 포트 에서 클라이언트 의 포트 20로 새 연결을 열고 60000클라이언트는 이제이 새 연결이 성공하기 위해 다음을 요구합니다.

sudo iptables -A INPUT -m state --state RELATED -j ACCEPT

마지막으로, 이것이 작동하려면 ip_conntrack_ftp시스템이 연결 / 패키지를 표시 할 수 있도록 커널 모듈 을 활성화해야합니다 RELATED(이것은 너무 이해하지 않았습니다).

modprobe ip_conntrack_ftp


답변