poniedziałek, 9 czerwca 2014

Fail2ban i exim czyli jak zaprzęgnąć kombajn do walki ze spamerami.

Na przykładzie Centos.
Spamerzy to zmora każdego admina trzeba sprawdzać co jakiś czas czy nowe adresy się nie pojawiły i je blokować, co na dłuższą metę jest upierdliwe. Postanowiłem zaprząc do tego zadania fail2ban (posiada on już domyślnie wiele opcji więc polecam pokombinować z innymi - tu opisze tylko pod exima konfigurację). Fail2ban ma za zadanie przeglądać logi i na ich podstawie zablokować na określony czas za pomocą iptables delikwenta który chce na siłę zrobić coś, czego akurat nie chcemy, żeby robił.
W pierwszej kolejności instalujemy fail2ban
yum install fail2ban
następnie go konfigurujemy /etc/faul2ban/jail.conf:

[DEFAULT]
ignoreip = 127.0.0.1/8 # adresacja ip do wykluczenia z reguł
bantime  = 600 # jak długo ma trwać
findtime  = 600 # czas w którym muszą nastąpić błędne logowania określone w Maxretry w ilości bantime, żeby reguła się załączyła
maxretry = 20 # ilośc prób do zabanowania

backend = auto

[smtpauth-iptables] #Reguła dla exim
enabled  = true
filter   = smtpauth
action   = iptables[name=SMTP, port=smtp, protocol=tcp]
logpath  = /var/log/exim/main.log
maxretry = 3



Następnie musimy stworzyć regułę smtpauth
nano /etc/fail2ban/filterd/smtpauth.conf:

# Fail2Ban configuration file
#
# Author: Christoph Haas
# Modified by: Cyril Jaquier
#
# $Revision: 510 $
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P<host>\S+)
# Values:  TEXT
#

failregex = \[<HOST>\]: 535 Incorrect authentication data


Jak już mamy to skonfigurowane uruchamiamy fail2ban:

service fail2ban start

jeśli wszystko jest ok (trzeba sobie wyeksperymentować optymalne ustawienia), to uruchamiamy fail2ban na stałe:
chkconfig fail2ban on

Następnie obserwujemy sobie działanie programu w celu analizy konfiguracji:

tail -f /var/log/fail2ban.conf
2014-06-09 08:19:11,343 fail2ban.actions: WARNING [smtpauth-iptables] Ban 190.117.212.81
2014-06-09 08:19:12,355 fail2ban.actions: WARNING [smtpauth-iptables] Ban 178.127.149.245
2014-06-09 08:19:35,374 fail2ban.actions: WARNING [smtpauth-iptables] Ban 112.163.8.4
2014-06-09 08:19:47,389 fail2ban.actions: WARNING [smtpauth-iptables] Ban 110.175.241.141
2014-06-09 08:19:49,417 fail2ban.actions: WARNING [smtpauth-iptables] Ban 122.163.1.132
2014-06-09 08:19:52,436 fail2ban.actions: WARNING [smtpauth-iptables] Ban 36.238.173.119
2014-06-09 08:20:07,454 fail2ban.actions: WARNING [smtpauth-iptables] Ban 113.165.209.9
2014-06-09 08:20:10,470 fail2ban.actions: WARNING [smtpauth-iptables] Ban 190.226.38.61
2014-06-09 08:20:14,485 fail2ban.actions: WARNING [smtpauth-iptables] Ban 115.242.158.139
2014-06-09 08:20:14,504 fail2ban.actions: WARNING [smtpauth-iptables] Ban 118.165.207.142
2014-06-09 08:20:59,531 fail2ban.actions: WARNING [smtpauth-iptables] Unban 202.72.245.42
2014-06-09 08:21:53,558 fail2ban.actions: WARNING [smtpauth-iptables] Ban 113.172.20.62
2014-06-09 08:21:55,584 fail2ban.actions: WARNING [smtpauth-iptables] Unban 188.115.204.36
2014-06-09 08:21:55,596 fail2ban.actions: WARNING [smtpauth-iptables] Unban 115.74.75.131
2014-06-09 08:22:00,605 fail2ban.actions: WARNING [smtpauth-iptables] 92.47.46.222 already banned
2014-06-09 08:22:12,608 fail2ban.actions: WARNING [smtpauth-iptables] Ban 151.74.66.254
2014-06-09 08:22:24,624 fail2ban.actions: WARNING [smtpauth-iptables] Unban 113.186.89.228
2014-06-09 08:22:25,634 fail2ban.actions: WARNING [smtpauth-iptables] Ban 46.62.246.30
2014-06-09 08:22:25,645 fail2ban.actions: WARNING [smtpauth-iptables] Ban 222.254.10.105
2014-06-09 08:22:36,658 fail2ban.actions: WARNING [smtpauth-iptables] Ban 59.176.64.47
2014-06-09 08:22:42,671 fail2ban.actions: WARNING [smtpauth-iptables] Ban 201.255.40.43
2014-06-09 08:22:53,688 fail2ban.actions: WARNING [smtpauth-iptables] Ban 87.236.233.68
2014-06-09 08:22:58,702 fail2ban.actions: WARNING [smtpauth-iptables] Unban 81.21.97.199
2014-06-09 08:23:04,721 fail2ban.actions: WARNING [smtpauth-iptables] Ban 120.61.190.243
2014-06-09 08:23:11,737 fail2ban.actions: WARNING [smtpauth-iptables] Unban 182.68.65.167
2014-06-09 08:23:13,754 fail2ban.actions: WARNING [smtpauth-iptables] Ban 171.255.47.104
2014-06-09 08:23:33,772 fail2ban.actions: WARNING [smtpauth-iptables] Ban 183.81.45.125
2014-06-09 08:23:36,788 fail2ban.actions: WARNING [smtpauth-iptables] Ban 117.0.161.53
2014-06-09 08:23:44,812 fail2ban.actions: WARNING [smtpauth-iptables] Unban 123.21.192.65
2014-06-09 08:23:47,836 fail2ban.actions: WARNING [smtpauth-iptables] Unban 14.163.236.24
2014-06-09 08:24:09,856 fail2ban.actions: WARNING [smtpauth-iptables] Ban 181.66.156.21









Jeśli wszystko działa tak jak powinno to mamy święty spokój i "ajzatyckimi" spamerami.
Powodzenia.