Fail2Ban扫描/var/log/auth.log之类的日志文件,并禁止IP地址进行过多的失败登录尝试。它通过更新系统防火墙规则以在可配置的时间内拒绝来自那些IP地址的新连接来实现此目的。 Fail2Ban开箱即用,可以读取许多标准日志文件,例如sshd和Apache的文件,并且可以轻松配置为读取您选择的任何日志文件,以解决所需的任何错误。
在这篇文章中,我将指导您如何使用Fail2Ban保护SSH服务。
首先,您需要安装Fail2ban:
linuxidc@linuxidc:~/www.linuxidc.com$ sudo systemctl start fail2ban
安装后,Fail2ban将立即开始工作,但仅适用于SSH和默认设置。现在添加我们需要的设置。整个配置在文件/etc/fail2ban/jail.conf中。我们将需要更改SSH部分:
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 findtime = 3600 bantime = 86400
maxretry:在findtime参数指定的时间内最大错误连接数
findtime:日志文件中分析错误连接数的时间。以秒计算
bantime:阻塞时间(以秒为单位)
您将要使用以下命令启动并启用Fail2ban服务:
linuxidc@linuxidc:~/www.linuxidc.com$ sudo systemctl start fail2ban
[sudo] linuxidc 的密码:
linuxidc@linuxidc:~/www.linuxidc.com$ sudo systemctl enable fail2ban
Synchronizing state of fail2ban.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable fail2ban
linuxidc@linuxidc:~/www.linuxidc.com$ sudo systemctl restart fail2ban
现在,在一小时内输入5个错误密码后,该地址将被封锁一天。您可以使用以下命令找到包含的保护列表:
fail2ban–client status
您可以使用以下命令查找每个服务的受阻止客户端的统计信息:
fail2ban–client status service_name