
Um Brute-Force-Angriffe auf SSH zu verhindern, habe ich einigeiptables-Regeln(unten). Die Frage ist: Wie kann ich die blockierten IP-Adressen auflisten?
(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
Antwort1
Eine Möglichkeit wäre, alle verlorenen Pakete mit einer Regel wie der folgenden zu protokollieren:
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: "
Fügen Sie das direkt vor der DROP
Regel ein. Dann können Sie die Syslog-Datei nach allem durchsuchen, was „FW_DROPPED“ enthält, und die Liste der IPs wird dort angezeigt. Die Einträge in der Protokolldatei sehen ungefähr so aus:
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
Wenn Sie also das ausschneiden, was auf „SRC=“ folgt, werden Ihnen die gelöschten IPs angezeigt. Sortieren Sie das, entfernen Sie Duplikate, und Sie erhalten Ihre Liste.
Ich habe gefundenIptables-Anleitungdie nützlichste Dokumentation für iptables/netfilter zu sein.
Antwort2
Details finden Sie unter /proc/net/ipt_recent/SSH.
Dieser Artikelhat weitere Informationen.
Antwort3
Ansehen
/proc/net/ipt_recent/YOURNAME
wobei IHRNAME der Name ist, den Sie mit der Option --name in Ihrer iptables-Regel verwendet haben.
Antwort4
Was ich beispielsweise mache, um Eingabeadressen zu fälschen, ist, die Kette zu definieren SPOOF_REJECT
:
iptables -N SPOOF_REJECT
iptables -A SPOOF_REJECT -j LOG --log-prefix "Input spoof detected: "
iptables -A SPOOF_REJECT -j REJECT
und senden Sie dann Pakete an diese Kette, wenn sie gefälscht sind:
iptables -A INPUT -i $EXT_DEV1 -s $INT_NET -j SPOOF_REJECT
iptables -A INPUT -i $EXT_DEV2 -s $INT_NET -j SPOOF_REJECT
Sie könnten so etwas für jede Kategorie von Paketen tun, die Sie löschen oder ablehnen, um eine Zeile im Syslog zu erhalten, nach der Sie suchen können, und dann in regelmäßigen Abständen greppen, ausschneiden und sortieren, um nur die IP-Adressen aus diesen Protokollzeilen zu erhalten.
Der Vorteil der Verwendung einzelner Ketten für jede Kategorie besteht darin, dass Ihre Konfiguration einfacher wird und leichter zu lesen ist iptables
. Wenn Sie immer mehr Regeln hinzufügen, werden Sie froh sein, dass Sie einzelne Ketten für bestimmte unterschiedliche Aktionen verwendet haben.