Abwehr des Botnets PushDo/Cutwail (EHLO ylmf-pc) mit IPTABLES String Recent SMTP

In letzter Zeit werden meine Postfix Logs von dem PushDo/Cutwail Botnet mit EHLO ylmf-pc vollgemüllt.

Das sieht dann so aus:

mail postfix/postscreen[23406]: PREGREET 14 after 0.3 from [x.x.x.x]:3677: EHLO ylmf-pc\r\n

Wie man sieht wehrt Postscreen den Angriff erfolgreich ab , aber die vielen Log Einträge nerven doch. Hier nun ein mögliche Abwehr mit Iptables.

Bemerkung

Das Iptables String module kann den Server überlasten also Vorsicht !

iptables -I INPUT -p tcp --dport 25 -m string --to 90 \
    --string "EHLO ylmf-pc" --algo bm -m recent \
    --name SMTP_ERROR --set
iptables -I INPUT -m recent --name SMTP_ERROR \
    --rcheck --seconds 180 --hitcount 3 -j DROP
iptables -I INPUT -p tcp --dport 25 -m string --to 90\
    --string "EHLO ylmf-pc" --algo bm -j LOG \
    --log-level info --log-prefix "SMTP_ERROR "

Diese Policy bewirkt dass eine IP-Adresse die über SMTP den String EHLO ylmf-pc drei mal sendet für 180 Sekunden geblocked wird.

Etwas einfacher geht auch

iptables -I INPUT -p tcp --dport 25 -m string --algo bm --string 'ylmf-pc' -j DROP

Im Firewall Log ( kern.log ) sieht es dann z.B. so aus

SMTP_ERROR IN=eth0 OUT= MAC=..:..:..:..:..:..:..:..:..:..:..:..:..:.. SRC=x.x.x.x DST=x.x.x.x LEN=54 TOS=0x00 PREC=0x00 TTL=111 ID=3363 DF PROTO=TCP SPT=3677 DPT=25 WINDOW=65501 RES=0x00 ACK PSH URGP=0

Die Recent Tabelle kann man so einsehen:

cat /proc/net/xt_recent/SMTP_ERROR
src=x.x.x.x ttl: 111 last_seen: 6022806860 oldest_pkt: 2 6022770010, 6022806860

Bemerkung

Achtung die Anzahl der Einträge ist beschränkt, man kann sie aber vergrössern.

chmod 600 /sys/module/xt_recent/parameters/ip_list_tot
echo 10000000 > /sys/module/xt_recent/parameters/ip_list_tot
chmod 400 /sys/module/xt_recent/parameters/ip_list_tot

Ansonsten hilft auch ein Flush der Iptables Regeln um die Tabelle zu entleeren.


Comments

Comments are closed.