Botok szűrése, Fail2Ban segítségével

Botok szűrése, Fail2Ban segítségével

A minap a Youtube-on belefutottam egy tavalyi, Tanya Csenöl videóba. A címe, Harc Mikrotikkel a robotok ellen volt. A video elgondolkodtatott, hogy a két szerveremen ugyanezt, iptables és Fail2Ban segítségével könnyedén meg tudom oldani. Némi Google segítséggel (a regexp nem a legnagyobb barátom), sikerült is elkészítenem a megoldást, ami figyeli a 22-es portot, és ha valaki ott próbál rámenni a szerverre, bannolja, egy évre.

Nézzük, hogyan készült:

Először is, telepítettem az iptables-persistent csomagot, ami elmenti az Iptables beállításait, így egy restart során, nem vész el.

Második körben, az alábbi Iptables kódra van szükségünk:

iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix '** SSH Probe **' --log-level 4

Innentől a syslog fájlba, minden 22-es portra próbálkozás, bekerül ** SSH Probe ** jelöléssel.

Következzék a Fail2Ban feldolgozás. Az /etc/fail2ban/filter.d könyvtárba hozzunk létre egy sshprobe.conf nevű fájlt, majd az alábbi sorokat tegyük bele:

# Fail2Ban configuration file
#
# Author: Lajos Agoston

[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>[\w\-.^_]+)
# Values:  TEXT
#

failregex = ^.*\\*\\* SSH Probe \\*\\*.* SRC=<HOST> .*
# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Ha ezzel megvagyunk, az /etc/fail2ban/jail.d mappába szintén hozzunk létre egy sshprobe.conf fájlt, az alábbi sorokkal:

[sshprobe]
enabled = true
filter  = sshprobe
action  = iptables-allports[name=sshprobe]
logpath = /var/log/syslog
maxretry = 1
# findtime: 1 day
findtime = 86400
# bantime: 1 year
bantime = 31536000

Ez is kész, nincs más hátra, mint újraindítani a fail2ban szolgáltatást:

systemctl restart fail2ban

Innentől, ha valaki megpiszkálja a 22-es portját a szerverünknek, egy évre teljes kitiltást kap.