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;}'