2015年3月19日
fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则表达式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽)。比如有人在试探你的SSH、SMTP、FTP密码,只要达到你预设的次数,fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员。
yum -y install epel-release.noarch
yum -y install fail2ban-firewalld fail2ban-systemd
yum -y install postfix whois fail2ban-sendmail
systemctl enable postfix
systemctl start postfix
新建配置文件jail.local
vi /etc/fail2ban/jail.local
输入以下内容后保存退出
[DEFAULT]
bantime = 86400
findtime = 300
maxretry = 3
sender = fail2ban@ifshow.com
destemail = admin@ifshow.com
action = %(action_mwl)s
[sshd]
enabled = true port = 2345
[sshd-ddos]
enabled = true port = 2345
bantime是被封IP禁止访问的时间,设定值为24小时,单位是秒。 findtime是检测时间,在此时间内超过规定的次数会激活fail2ban,单位是秒。 maxretry是允许错误登录的最大次数,和findtime配合使用。 sender为邮件发送者,destemail为接收通知邮箱。 action是触发fail2ban采取的动作,action_mwl为禁IP+发通知邮件+写入日志。 sshd区块的enabled = true开启对SSH服务的防护,port为SSH的自定义端口。 sshd-ddos区块的enabled = true开启SSH-DDOS防护,port为SSH的自定义端口。
如果装有vsftpd,在配置文件最后加上以下内容(port为vsftpd的登录和数据端口)
[vsftpd]
enabled = true
port = 2121,2122
systemctl enable fail2ban
systemctl start fail2ban
查看SSH服务监护状态,能看到当前被禁IP。
fail2ban-client status sshd
在SSH监护服务忽略IP列表(白名单)中添加IP 192.168.111.111
fail2ban-client set sshd addignoreip 192.168.111.111
在SSH监护服务忽略IP列表(白名单)中删除IP 192.168.111.111
fail2ban-client set sshd delignoreip 192.168.111.111
查看fail2ban日志
tail /var/log/fail2ban.log