iptables에 의해 차단 된 IP 주소를 어떻게 나열합니까?


16

ssh에 대한 무차별 대입 공격을 방지하기 위해 일부 iptables 규칙을 추가했습니다 (아래). 문제는 차단 된 IP 주소를 어떻게 나열합니까?

(1)
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j DROP

1
iptables -L INPUT -v -n쇼는 모든 IP 차단
동적

답변:


16

한 가지 옵션은 삭제 된 패킷을 다음과 같은 규칙으로 기록하는 것입니다.

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl -j LOG --log-prefix "FW_DROPPED: "

DROP규칙 바로 앞에 삽입하십시오 . 그런 다음 "FW_DROPPED"가 포함 된 항목에 대해 syslog 파일을 grep하면 IP 목록이 표시됩니다. 로그 파일의 항목은 다음과 같습니다.

Jun  3 08:05:57 some-machine kernel: [15852451.420557] FW_DROPPED: IN=eth0 OUT= MAC=00:50:ba:4a:d9:e3:00:12:17:3a:e3:64:08:00 SRC=228.23.45.189 DST=192.168.1.1 LEN=48 TOS=0x00 PREC=0x00 TTL=106 ID=10941 PROTO=TCP SPT=58212 DPT=22 WINDOW=65535 RES=0x00 SYN URGP=0

따라서 "SRC ="다음에 나오는 내용을 지우면 삭제 된 IP가 표시됩니다. 중복을 제거하고 정렬하면 목록이 나타납니다.

iptables / netfilter에 대한 Iptables Tutorial 이 가장 유용한 문서라는 것을 알았습니다 .


그렇습니다.
Brent

동일한 규칙에 기록 및 삭제하지 않기 때문에 규칙을 복제해야합니다.
David Pashley 2016 년

3
그가 문제의 패킷을 기록하고 삭제하는 사용자 체인을 만드는 것이 더 좋습니다. 이렇게하면 불필요하게 중복이 제거됩니다. 다음과 같이 할 수 있습니다 : iptables -N attack; iptables -A 입력 -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl-이름 SSH -j 공격; iptables -A 공격 -j LOG --log-prefix "FW_DROPPED :"; iptables -A 공격 -j DROP
Cristian Ciupitu

1
동의했다. 테이블 / 체인은 갈 길입니다. iptables의 요점은 정말입니다. 수락, 자동 삭제, 청각 거부, 폐기, 플러드 의심, 플러드, 의심스러운 프로브, 의심스러운 스캔, 알려지지 않은 유형 및 감시 된 트래픽에 대해 별도의 테이블을 만듭니다. 내 FW는이 오래된 스크립트 (경고 : 자체 프로모션)를 기반으로합니다. code.google.com/p/klondike-firewall/source/browse/trunk/…
yukondude

1
ipozgaj와 David Pashley가 참조한 ipt_recent 모듈은 꽤 멋진 추가 기능이지만 특정 IP가 삭제 된 것과 동일한 세부적인 이유 (다른 --log-prefix 설정으로 가능)를 추적 할 수는 없지만 타임 스탬프가있는 공격의 오랜 역사. 그래도 두 기술을 함께 사용하는 것이 좋습니다.
yukondude 2016 년

5

자세한 내용은 / proc / net / ipt_recent / SSH에서 찾을 수 있습니다.

이 기사 에는 더 많은 정보가 있습니다.


이 기사는 더 이상 존재하지 않는 것 같습니다.
Dan Metheus

4

보다

/proc/net/ipt_recent/YOURNAME

여기서 YOURNAME은 iptables 규칙에서 --name 옵션과 함께 사용한 이름입니다.


일부 배포판 (예 : 데비안)에서 유효한 경로는 다음과 같습니다./proc/net/xt_recent/[list-name]
itachi


1

입력 주소 스푸핑과 같이 내가하는 일은 체인을 정의하는 것입니다 SPOOF_REJECT.

iptables -N SPOOF_REJECT
iptables -A SPOOF_REJECT -j LOG --log-prefix "Input spoof detected: "
iptables -A SPOOF_REJECT -j REJECT

스푸핑 된 경우이 체인으로 패킷을 전송합니다.

iptables -A INPUT -i $EXT_DEV1 -s $INT_NET -j SPOOF_REJECT
iptables -A INPUT -i $EXT_DEV2 -s $INT_NET -j SPOOF_REJECT

syslog에서 줄을 찾기 위해 놓거나 거부하는 각 패킷 범주에 대해 이와 같은 작업을 수행 한 다음 주기적으로 grep, cut, sort를 수행하여 이러한 로그 줄에서 IP 주소 만 얻을 수 있습니다.

각 범주에 개별 체인을 사용하면 구성이보다 간단 해지고 iptables구성을 쉽게 읽을 수 있다는 이점이 있습니다. 규칙을 더 많이 추가할수록 특정 작업에 개별 체인을 사용하게 된 것을 기쁘게 생각합니다.


스푸핑 된 패킷을 정확히 어떻게 탐지합니까? 내 경험상 이것은 일반적인 경우에 불가능합니다.
MarkR

위의 예는 단지 예입니다. 여기서는 외부 장치에서 오는 INPUT 체인에 도착했지만 내 네트워크 내부의 IP 주소에서 온 것으로 보이는 패킷을 찾고 있습니다. 이 경우 주소 스푸핑을 완벽하게 감지 할 수 있지만 일반적으로 상황이 다릅니다.
Eddie

1

"질문은 차단 된 IP 주소를 어떻게 나열합니까?"입니다.

금지 된 체인 만들기 :

iptables -N BANNED
iptables -F BANNED

로깅 체인을 만듭니다.

iptables -N BANNEDLOG
iptables -F BANNEDLOG
iptables -A BANNEDLOG -j LOG --log-prefix "BANNED:" --log-level 6
iptables -A BANNEDLOG -j DROP

대부분의 다른 규칙 전에 INPUT 체인의 금지 된 체인으로 점프 추가

...
iptables -A INPUT -j BANNED
...

이제 금지 된 체인에 ipaddress를 추가하십시오 :

flock -w 5 /var/lock/iptables -c 'iptables -A BANNED -s 140.130.20.202/32 -i eth0 -m comment --comment "2012-03-19 23:49:33 accesslog" -j BANNEDLOG'
etc...

주석 옵션이있는 데이터베이스처럼 사용할 수도 있으므로 많은 프로세스에서 iptables를 자주 업데이트 할 때 flock이 중요한 이유와 이유 등을 알 수 있습니다. iptables에는 잠금 기능이 내장되어 있지 않습니다.

금지 된 체인에서 금지 된 주소 및 규칙을 보려면

iptables -S BANNED

정렬 된 고유 ipaddress를 보려면

iptables -S BANNED | egrep -o '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | sort -u

내 서버에서 syslog 파일과 웹 로그를 확인하는 데몬이 많이 있으므로 누군가가 불쾌한 일을 시도하면 유형과 심각도 및 이전 공격 수에 따라 며칠 동안 주소가 자동으로 차단됩니다. 정보는 mysql 데이터베이스에 로그인하여 주기적으로 만료됩니다. 또한 주소는 mysql 복제를 통해 클러스터의 다른 모든 컴퓨터에 배포되므로 보호되고 동기화됩니다. 내 소프트웨어는 네트워크 소유자를 찾아서 ISP에 불만 사항을 메일로 보냅니다.

10 년 동안 일한 후 모든 사람들이 곧 사용할 수 있도록 노력하겠습니다. 현재 약 150 만 개의 IP 주소 기록과 수십만 건의 메일 및 ssh 공격이보고되어 네트워크를 정리하는 데 도움이됩니다. 더 많이 사용한다면 더 많은 영향을 미치기를 바랍니다.

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