Centos7安装fail2ban

1. 安装EPEL源

yum -y install epel-release.noarch

2. 安装支持firewalld的fail2ban

yum -y install fail2ban-firewalld fail2ban-systemd

3.添加配置文件

cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

4.在配置文件尾部添加ssh配置

[sshd]
enabled = true
port = ssh
#action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

5.启动fail2ban并开机自启

systemctl start fail2ban
systemctl enable fail2ban

6.查看fail2ban运行的jail

fail2ban-client status

7.查看SSH服务监护状态,能看到当前被禁IP

fail2ban-client status sshd

8.在SSH监护服务忽略IP列表(白名单)中添加IP 192.168.111.111

 fail2ban-client set sshd addignoreip 192.168.111.111

9.在SSH监护服务忽略IP列表(白名单)中删除IP 192.168.111.111

fail2ban-client set sshd delignoreip 192.168.111.111

10.查看fail2ban日志

tail -f /var/log/fail2ban.log

11.解除某个IP锁定状态

fail2ban-client set sshd unbanip 192.168.1.8

配置说明:

  • 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的自定义端口。

查看登陆IP统计

cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}'
原文链接:,转发请注明来源!

发表回复