Step 1:
Install fail2ban. If you have not already done so, install the epel repository.
wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -ivh epel-release-6-8.noarch.rpm
And install the application.
yum install fail2ban
Step 2:
Copy the configuration file.
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Step 3:
Set up the policy of the application. There are a number of options that you can set in the newly created jail.local configuration file. For the purposes of this post, only a few options will be modified:
#any ip that crosses the threshold will be banned for 24 hours, or 86400 seconds. #bantime=600 bantime=86400 #an ip has 5 chances to log in successfully within the "findtime", defined below, before being banned for 24 hours. #maxretry=3 maxretry=5 #an ip has 5 chances within one hour to log in successfully to a system before being banned for 24 hours. #Note that after one hour, the threshold resets and the ip has another five attempts. #findtime=600 findtime=3600
Modify the iptables rules to send mail to whatever address you want. More importantly, ensure the "logpath" option specifies the log file to check for failed login attempts.
enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] sendmail-whois[name=SSH, dest=youraddress@yourdomain.com, sender=fail2ban@example.com] logpath = /var/log/secure maxretry = 5
Step 4:
Enable fail2ban.
service fail2ban start chkconfig fail2ban on
Verify the iptables chain is now active. Execute "iptables -L". The INPUT chain should have the line
Chain INPUT (policy ACCEPT) target prot opt source destination fail2ban-SSH tcp -- anywhere anywhere tcp dpt:ssh
And the chain fail2ban should be available, although empty right now.
Chain fail2ban-SSH (1 references)
target prot opt source destination RETURN all -- anywhere anywhere
Step 5:
Verify operation. Attempting to log in from 192.168.1.15 to the server that now has fail2ban active (192.168.1.16) and failing five times results in the source ip being added to the fail2ban chain.
REJECT all -- 192.168.1.15 anywhere reject-with icmp-port-unreachable
And the source machine can not even make an attempt for the next 24 hours.
ssh root@192.168.1.16 ssh: connect to host 192.168.1.16 port 22: Connection refused
No comments:
Post a Comment