====== Use Fail2Ban on GNU/Linux to block botnet's attacks ======
Synchronet now have a built-in support to block incomming connections (see [[howto:block-hackers|Blocking "Hackers"]]) but it's feature protect SBBS services only (which in most cases is sufficient).
If you running another services/daemons on same server, you can use [[http://fail2ban.org|Fail2Ban]] and to block at firewall level the ip address from the attacker.
You must config and setup the sbbs log file that are explained here: [[config:nix|UNIX]]
//NOTE: These examples where made on Debian GNU/Linux, but you can adjust and apply for another distribution like Ubuntu, Arch, Fedora, etc.
//
First step, install fail2ban package:
apt-get install fail2ban
Create the file /etc/fail2ban/jail.d/sbbs.conf
[sbbs-main]
enabled = true
filter = sbbs-main
action = iptables-allports[name=SBBS-main, protocol=all]
logpath = /var/log/sbbs.log
maxretry = 3
findtime = 21600
bantime = 21600
[sbbs-ddos]
enabled = true
filter = sbbs-ddos
action = iptables-allports[name=SBBS-ddos, protocol=all]
logpath = /var/log/sbbs.log
maxretry = 8
findtime = 600
bantime = 21600
[sbbs-hack]
enabled = true
filter = sbbs-hack
action = iptables-allports[name=SBBS-hack, protocol=all]
logpath = /sbbs/data/hack.log
maxretry = 3
findtime = 21600
bantime = 21600
[sbbs-smtp]
enabled = true
filter = sbbs-smtp
action = iptables-allports[name=SBBS-smtp, protocol=all]
logpath = /var/log/sbbs.log
maxretry = 3
findtime = 21600
bantime = 21600
[sbbs-spam]
enabled = true
filter = sbbs-spam
action = iptables-allports[name=SBBS-spam, protocol=all]
logpath = /sbbs/data/spam.log
maxretry = 3
findtime = 21600
bantime = 21600
Create the filter file /etc/fail2ban/filter.d/sbbs-main.conf
[INCLUDES]
before = common.conf
[Definition]
failregex = Bad password from:
Throttling suspicious connection from:
ignoreregex =
Filter for ddos (/etc/fail2ban/filter.d/sbbs-ddos.conf)
[INCLUDES]
before = common.conf
[Definition]
failregex = !Maximum concurrent connections without login (.*) reached from host:
ignoreregex =
Filter for hack.log (/etc/fail2ban/filter.d/sbbs-hack.conf)
[INCLUDES]
before = common.conf
[Init]
maxlines=6
[Definition]
failregex = ^SUSPECTED FTP HACK ATTEMPT from .* on .* \nUsing port .* at .* \[\]\nDetails: .* \n
ignoreregex =
Filter for smtp (/etc/fail2ban/filter.d/sbbs-smtp.conf)
[INCLUDES]
before = common.conf
[Definition]
failregex = .* !TEMPORARY BAN of .* .*
SMTP BLACKLISTED SERVER on .* \(.*\)\: .* \[\]
^.*\[\].*\!TEMPORARY BAN.*$
ignoreregex =
Filter for spam (/etc/fail2ban/filter.d/sbbs-spam.conf)
[INCLUDES]
before = common.conf
[Definition]
failregex = SMTP BLACKLISTED SERVER on .* \(.*\)\: .* \[\]
Host\: .* \[\]
ignoreregex =
Reload or restart the service and verify if you jail is loaded:
# fail2ban-client status
Status
|- Number of jail: 7
`- Jail list: asterisk, nginx-botsearch, *sbbs-hack, *sbbs-main, *sbbs-smtp, *sbbs-spam, *sbbs-ddos, sshd
(*) your sbbs active jail's
After some time, you can observe via iptables that severals ip address was blocked
# iptables -L -n
Chain fail2ban-SBBS-main (1 references)
target prot opt source destination
REJECT all -- 49.64.51.116 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 187.161.208.161 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 190.130.22.81 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 94.123.59.80 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 118.175.228.237 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 220.240.252.176 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 71.248.179.3 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 185.29.71.147 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 201.69.90.121 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 78.186.210.14 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 117.247.90.134 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 37.130.109.12 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 189.110.122.99 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 24.70.18.200 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 112.164.94.30 0.0.0.0/0 reject-with icmp-port-unreachable
REJECT all -- 37.109.137.13 0.0.0.0/0 reject-with icmp-port-unreachable
RETURN all -- 0.0.0.0/0 0.0.0.0/0
Chain fail2ban-SBBS-ddos (1 references)
target prot opt source destination
REJECT all -- 110.53.221.190 0.0.0.0/0 reject-with icmp-port-unreachable
RETURN all -- 0.0.0.0/0 0.0.0.0/0
===== See Also =====
* [[:howto:|howto index]]
{{tag>linux}}