Hawkes Blog
Windows reboot | Linux be root
Hawkes Blog

Exim smtp auth Brute-Force-Attacken Part II

Wie schon im letzten Beitrag beschrieben, leidet mein Exim von Zeit zu Zeit unter Brute-Force-Attacken.

Teilweise so massiv, dass die 60 sec zwischen den Checks des Logfiles zu lang waren.

Da Exim alles kann außer Kaffee kochen, musste der Check auch irgendwie einfacher gehen.

Dabei bin ich über das Exim Git Wiki gestolpert.

Also frisch ans Werk.

Als 1. den alter Cronjob deaktiveren, dass alte Script entschlacken

#bin/bash
BL="/etc/exim4/lists/blacklist"
MAILTO="<<myMail>>"
SUBJECT="New BL entry"
RESOLVED=`/usr/bin/host $1`
echo "$1" >> $BL/usr/bin/mail -s "$SUBJECT" "$MAILTO" <<EOF
added $1 to exim blresolved: $resolved
EOF
exit

und die Exim Config anpassen.

BLSCRIPT=/etc/exim4/scripts/autoblacklist.sh

<<snipp

acl_smtp_auth:
                drop    message = authentication is allowed only once per message
                                  set acl_m_auth = ${eval10:0$acl_m_auth+1}
                        condition = ${if >{$acl_m_auth}{2}}
                        condition = ${run{BLSCRIPT $sender_host_address}{yes}{yes}}
                        delay = 30s
                accept

Nun noch sicherstellen, dass exim auch Schreibzugriff auf das BL File hat und das Script ausführbar ist:

chown Debian-exim blacklist
        -rw-r--r-- 1 Debian-exim root  974 Jan  6 15:10 blacklist

chown Debian-exim autoblacklist.sh
        -rwxr-xr-x 1 Debian-exim root  238 Jan  6 16:37 autoblacklist.sh

Abschließend Exim restarten und fertig. :)

Exim führt nun das Script nach 2 fehlerhaften Auth Versuchen aus und packt die sender_host_address direkt auf die BL.

Ein Check im Script ob die IP schon in der Liste ist, ist nicht nötig, da IPs auf der Liste schon beim Connect abgewiesen werden.

acl_smtp_connect:
                        deny    condition = ${lookup {$sender_host_address} \
                                                      lsearch{REJECTHOSTS} \
                                                      {yes}{no} }
                                message = Blacklisted Host
                                log_message = sender blocked: $sender_host_address

MfG Hawkes