Debian/Ubuntu系统:
更新系统:
sudo apt-get update
sudo apt-get upgrade
安装fail2ban:
sudo apt-get install -y fail2ban
如果需要邮件支持(用于邮件通知),还可以安装sendmail:
sudo apt-get install sendmail-bin sendmail
CentOS/RHEL系统:
更新系统并启用EPEL存储库::
yum update yum install epel-release
安装fail2ban:
yum install fail2ban
如果需要邮件支持(用于邮件通知),还可以安装sendmail:
yum install sendmail
配置Fail2ban:
Fail2ban的配置主要通过编辑其配置文件来实现,这些文件通常位于/etc/fail2ban/
目录下
如果/etc/fail2ban/jail.local
文件不存在,可以复制/etc/fail2ban/jail.conf
作为模板来创建它:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
使用文本编辑器编辑jail.local
文件,如使用vim:
sudo vim /etc/fail2ban/jail.local
在文件中,你可以配置如下参数:
bantime
:封禁时间,单位为秒,默认为600秒(10分钟)。findtime
:在该时间段内,如果发现多次失败的登录尝试,则触发封禁。maxretry
:最大的登录尝试次数,超过该次数会触发封禁。backend
:指定Fail2ban使用的后端,默认为auto。对于某些系统,可能需要手动更改为systemd
。destemail
:指定发送邮件通知的收件人地址(如果配置了邮件支持)。action
:指定触发封禁后的操作,如使用iptables、iptables-multiport等
例如,为SSH服务配置Fail2ban,可以添加或修改如下行:
[sshd]
ignoreip = 127.0.0.1/8 0.0.0.0 #把0.0.0.0改成自己所需要的白名单ip即可
enabled = true
port = ssh端口
filter = sshd
logpath = /var/log/auth.log
backend = %(sshd_backend)s
如果需要忽略某些IP地址的封禁,可以在jail.local的【sshd】下
添加ignoreip
设置,例如:
[sshd]
ignoreip = 127.0.0.1/8 0.0.0.0
把0.0.0.0改成自己所需要的白名单ip即可
如果 jail.local
不存在,您可能需要创建一个,并添加上述行(确保 [sshd]
部分存在)
重启 fail2ban
:
修改配置文件后,重启 fail2ban
以使更改生效:
sudo systemctl restart fail2ban
验证配置:
使用 fail2ban-client
检查 sshd
监狱的配置,确保 ignoreip
已正确设置:
sudo fail2ban-client status sshd
在输出中查找 Ignored IP list:
部分,确认 自己设置的ip 是否在列出的 IP 地址中
监控日志:
继续监控 fail2ban
的日志,以查看是否有任何与 自己设置的ip 相关的封禁尝试:
tail -f /var/log/fail2ban.log
检查系统时间和时区:
虽然这与 fail2ban
封禁特定 IP 地址不直接相关,但您之前提到的时间戳问题可能会影响日志的准确性和 fail2ban
的性能。确保系统时间和时区设置正确
解决时间和时区时间戳问题:
于日志文件中的时间戳问题,您应该检查系统时间和时区设置,确保它们与您的地理位置相匹配。使用 timedatectl
命令来查看和设置时区,使用 date
命令来查看系统时间,并使用 NTP 来同步时间:
sudo timedatectl
sudo timedatectl set-timezone Asia/Shanghai # 示例时区,根据您的位置修改
sudo systemctl restart ntpd # 如果您的系统使用 ntpd 来同步时间
请注意,NTP 服务器的名称(如 ntpd
)可能因您的 Linux 发行版而异(例如,在某些系统上可能是 systemd-timesyncd
)