Fail2ban 安装使用教程
本文最后更新于 2024年5月29日 00:53
Fail2Ban 是一个入侵检测系统框架,它可以监控服务器的日志文件,当发现有暴力破解行为时,会自动封禁攻击者的 IP 地址,保护电脑服务器免受暴力破解。它用 Python 编写。能够在具有本地安装的数据包控制系统或防火墙(如 iptables)接口的 POSIX 系统上运行。
1. 安装 Fail2ban
以 Debian/Ubuntu 为例,使用以下命令安装 Fail2ban:
1 |
|
需要特别注意的是,Debian 12 及以上的版本需要手动安装 rsyslog
来保证其正常运行:
1 |
|
原因见:Github Issue
2. 启动并设置 Fail2ban 开机自启
1 |
|
4. 查看 Fail2ban 状态
1 |
|
5. 配置 Fail2ban
编辑 /etc/fail2ban/jail.local 文件:
1 |
|
在文件中输入以下内容:
1 |
|
[DEFAULT] 部分是全局配置,[sshd] 部分是针对 SSH 服务的配置,可以根据自己的需求进行修改。
其中:
bantime
:封禁时间,单位为秒。-1 表示永久封禁。findtime
:检测时间,单位为秒。如果在这个时间内有超过maxretry
次的尝试,就会被封禁,如 300 秒内有 5 次尝试失败就会被封禁。maxretry
:最大尝试次数。ignoreip
:不会被封禁的 IP 地址列表。filter
:指定用于匹配日志的过滤器,这里使用了 sshd 过滤器,用于匹配 SSH 登录日志。
修改完成后 保存并退出编辑器,重启 Fail2ban 服务:
1 |
|
6. 常用命令
查看 sshd 所有被封禁的 IP 地址:
1
sudo fail2ban-client status sshd
手动封禁 IP 地址:
1
sudo fail2ban-client set sshd banip 6.6.6.6
手动解封 IP 地址:
1
sudo fail2ban-client set sshd unbanip 6.6.6.6
参考文章:
Fail2ban 安装使用教程
https://blog.ovvv.top/posts/1acd162e/