BFD (Brute Force Detection) is a script that runs on your linux server and checks log files for authentication errors. When it sees recurring authentication failures from a certain IP address it will instruct APF (Advanced Policy Firewall) to block the IP address.
It’s simple to configure, just make sure you have APF running before you continue. Let’s download it:
[[email protected] ~]# wget http://www.rfxnetworks.com/downloads/bfd-current.tar.gz
Now extract it:
[[email protected] ~]# tar -xzvf bfd-current.tar.gz
Open the folder:
[[email protected] ~]# cd bfd-1.5/
Now we can install it:
[[email protected] bfd-1.5]# ./install.sh
After installation we can edit the BFD configuration file:
[[email protected] bfd-1.5]# vim /usr/local/bfd/conf.bfd
Make sure you enable e-mail notifications:
EMAIL_ALERTS="1"
And configure your e-mail address:
EMAIL_ADDRESS="[email protected]"
It’s also a good idea to configure BFD to ignore your own IP address so you don’t lock yourself out. Just add your IP address to the following file:
[[email protected] bfd]# vim /usr/local/bfd/ignore.hosts
If you want to run BFD you can do this using the following command:
[[email protected] bfd]# bfd -s
It will also run automatically thanks to a cronjob:
[[email protected] bfd]# vim /etc/cron.d/bfd */3 * * * * root /usr/local/sbin/bfd -q
By default each 3 minutes it will run the script and check your log files. When BFD finds anything it will instruct APF to block the IP address and you’ll receive an e-mail that looks like this:
The following is a summary event for exceeded login failures on VPS1.RMCSHOSTING.NL: SOURCE ADDRESS: 20.20.20.2 TARGET SERVICE: proftpd FAILED LOGINS: 15 EXECUTED COMMAND: /etc/apf/apf -d 20.20.20.2 {bfd.proftpd} SOURCE LOGS FROM SERVICE 'proftpd' (GMT +0200): Apr 19 02:13:30 VPS1 proftpd[15133]: 127.0.0.1 (10.10.10.1[10.10.10.1]) - USER [email protected]: no such user found from 10.10.10.1 [10.10.10.1] to 20.20.20.2:21 Apr 19 02:41:30 VPS1 proftpd[17222]: 127.0.0.1 (10.10.10.1[10.10.10.1]) - USER [email protected]: no such user found from 10.10.10.1 [10.10.10.1] to 20.20.20.2:21 Apr 19 03:10:32 VPS1 proftpd[19741]: 127.0.0.1 (10.10.10.1[10.10.10.1]) - USER [email protected]: no such user found from 10.10.10.1 [10.10.10.1] to 20.20.20.2:21
As you can see it has discovered a number of failed authentications for proftp. It instructed APF to block the IP address.
That’s all there is to it. I hope this helps you to protect your linux server(s)! If you have any questions or suggestions please leave a comment.
Comments