Fail2Ban
是一个非常有用的安全工具,它可以帮助你保护服务器免受暴力破解攻击。它通过监控日志文件中的登录失败尝试来检测潜在的攻击,并自动禁止这些 IP 地址。以下是如何安装和使用 Fail2Ban
的指南:
1. 安装 Fail2Ban
首先,在你的 Debian 12 系统上安装 Fail2Ban
:
sudo apt update
sudo apt install fail2ban
2. 启动并启用 Fail2Ban
安装完成后,启动 Fail2Ban
并设置为开机自动启动:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
3. 配置 Fail2Ban
Fail2Ban
的默认配置通常已经足够好用,但你可以根据需要进行自定义配置。
编辑 jail.local
配置文件
Fail2Ban
的主要配置文件是 /etc/fail2ban/jail.conf
,但为了避免在软件更新时覆盖你的自定义配置,建议创建一个 jail.local
文件来覆盖默认设置。
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
在这个文件中,你可以配置全局设置和特定服务的 jail
。
全局设置
你可以在 jail.local
中定义以下全局设置:
-
ignoreip: 列出你希望 Fail2Ban 永不禁止的 IP 地址(如你的本地网络或管理 IP 地址)。
ignoreip = 127.0.0.1/8 ::1
-
bantime: 定义 IP 地址被禁止的时间(默认是 10 分钟)。你可以增加这个时间,比如 1 小时(3600 秒):
bantime = 3600
-
findtime: 定义在多长时间内达到禁止条件(默认是 10 分钟)。
findtime = 600
-
maxretry: 定义在
findtime
时间段内允许的最大失败次数,超过此次数 IP 地址将被禁止。maxretry = 5
启用和配置 SSH 保护
默认情况下,Fail2Ban
已经包含了一个 ssh
jail 用于保护 SSH 服务。如果你希望自定义这个 jail,可以在 jail.local
文件中进行配置:
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
确保 enabled
设置为 true
以启用 SSH 保护。
启用和配置其他服务保护
如果你想保护其他服务(如 nginx
, apache
, ftp
),可以在 jail.local
中启用相应的 jail。例如,要保护 Nginx,可以添加以下内容:
[nginx-http-auth]
enabled = true
port = http,https
logpath = /var/log/nginx/error.log
maxretry = 3
4. 重启 Fail2Ban
服务
每当你修改配置文件后,重新启动 Fail2Ban
以应用新配置:
sudo systemctl restart fail2ban
5. 检查 Fail2Ban
状态
你可以检查 Fail2Ban
的状态,查看哪些 jails 已经启用以及当前被禁止的 IP 地址:
sudo fail2ban-client status
如果你想查看某个特定 jail 的状态,比如 ssh
,可以使用:
sudo fail2ban-client status sshd
6. 手动解除禁止
如果你想手动解除某个被禁止的 IP 地址,可以使用以下命令:
sudo fail2ban-client set sshd unbanip <IP地址>
总结
Fail2Ban
是一个强大的工具,可以帮助你自动保护服务器免受暴力破解攻击。安装和基本配置相对简单,你可以根据需要进一步自定义它的行为和保护范围。如果你有更多问题或需要进一步的帮助,随时告诉我!
停留在世界边缘,与之惜别