동적 블랙리스트:

동적 블랙리스트:

패킷 수가 초당 2개보다 큰 경우(테스트를 위해 패킷 수를 줄임) 서버에서 icmp 핑을 차단하려고 합니다. 이 두 가지 규칙을 별도로 시도했지만 도움이 되지 않는 것 같습니다.

iptables -A INPUT -p icmp --icmp-type echo-request -m recent --update --seconds 1 --hitcount 2 -j DROP

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT --match limit --limit 2/s --limit-burst 2

이 규칙에 무슨 문제가 있나요?

아래 명령을 사용하여 다른 서버에서 핑을 보내고 있지만 핑에서 계속 응답을 받습니다.

ping -n -i 0.2 192.168.2.86

또한 iptables -nvL 출력을 확인할 때 규칙의 패킷 수가 증가하지 않습니다...

사용된 머신은 centos 6.8 입니다.

일부 진행 상황: 테이블 끝에 기본 삭제 규칙을 추가했습니다.

iptables -A INPUT -p icmp -m icmp -j DROP

그런 다음 이 규칙을 추가하면 한도를 초과하는 핑이 삭제되었습니다.

iptables -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 2/second -j ACCEPT -m comment --comment "icmprule1"

아직 서버를 완전히 차단할 수는 없습니다.

답변1

여기에 보조 ICMPSCAN 체인을 추가하고 INPUT 체인의 첫 번째 위치에 점프 규칙을 추가합니다.

iptables -N ICMPSCAN
iptables -I INPUT -p icmp -m icmp --icmp-type echo-request -j ICMPSCAN 
iptables -A ICMPSCAN -m recent --set --name badicmp --rsource 
iptables -A ICMPSCAN -m recent --update --seconds 1 --hitcount 2 --name badicmp --rsource -j DROP

참고: 두 가지 설정/업데이트 규칙 모두 보조 규칙 없이 INPUT에서 설정할 수 있지만 저는 이러한 규칙을 별도의 체인에 넣는 것을 선호합니다.

참고 2: 이벤트를 기록하기 위해 --set 뒤에 추가 규칙을 추가할 수 있습니다.

동적 블랙리스트:

이제 최근 히트카운트 트리거를 기반으로 영구 동적 블랙리스트를 추가하기 위해 ipset 기능을 활용할 수 있습니다. ipset은 centos 6.x에서 사용할 수 있으며 iptables는 ipset을 인식하지만 먼저 설치해야 할 수도 있습니다.

귀하의 필요에 맞는 iptables/ipset 규칙은 다음과 같습니다.

iptables -F ICMPSCAN
iptables -N ICMPSCAN
ipset -N banned_hosts iphash
iptables -I INPUT -p icmp -m icmp --icmp-type echo-request -j ICMPSCAN 
iptables -A ICMPSCAN -m recent --set --name badicmp --rsource 
iptables -A ICMPSCAN -m recent --update --seconds 1 --hitcount 2 --name badicmp --rsource -j SET --add-set banned_hosts src
iptables -A ICMPSCAN -m set --set banned_hosts src -j DROP

ipset 목록을 사용하여 금지 목록의 현재 내용을 나열할 수 있습니다. 예를 들면 다음과 같습니다.

# ipset list banned_hosts
Name: banned_hosts
Type: hash:ip
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 8284
References: 2
Members:
192.168.122.1

예를 들어 다음과 같은 IP 주소를 제거하기 위해 세트 목록을 관리합니다.

# ipset del banned_hosts 192.168.122.1

이 페이지도 참조하세요:http://www.linuxjournal.com/content/advanced-firewall-configurations-ipset

관련 정보