centos7.4 可以利用 /etc/hosts.deny,写脚本搞定,
但是centos8 不能用 /etc/hosts.deny 了,于是另辟蹊径,采用fail2ban 。
1. 安装
# sudo su
# dnf -y install fail2ban
-- 查看状态
# sudo systemctl status fail2ban
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:fail2ban(1)
2. 配置
参考: cnblogs.com, /a5idc/p/13650056.html
ll /etc/fail2ban/
sudo cp /etc/fail2ban/jail.{conf,local}
sudo vi /etc/fail2ban/jail.local
主要修改的参数:
ignoreip = 127.0.0.1/8 ::1 123.123.123.123 192.168.1.0/24
bantime = 1d <要永久禁止IP,请使用负数。>
findtime = 10m <findtime是设置禁令前的失败次数之间的持续时间。例如,如果将Fail2ban设置为在5次失败后禁止IP(maxretry请参见下文),则这些失败必须在findtime持续时间内发生。>
maxretry = 5 <maxretry是禁止IP之前的失败次数。默认值设置为5,这对于大多数用户来说应该没问题。>
# 邮件发送和接收者 -- 可以修改,可以默认
destemail = red_boxer001@sohu.com
sender = 22933160@qq.com
[sshd]
enabled = true
3. 加入开机启动
# systemctl enable fail2ban
Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /usr/lib/systemd/system/fail2ban.service.
# systemctl status fail2ban
4. 常见命令
systemctl stop fail2ban 停止
systemctl start fail2ban 启动
systemctl restart fail2ban 重启
sudo fail2ban-client status 查看状态是否运行了
sudo fail2ban-client 最上面能看到fail2ban版号
ps -ef | grep fail2ban 查看是否有fail2ban进程
5. 查看被禁止的IP地址。
iptables -L -n