配置 Fail2ban 监控 SSH 连接和自动封禁 IP
Fail2ban 是一个简单高效的入侵防御工具,可以有效减少暴力破解等攻击的风险。对于需要公网访问的服务器来说是一个不错的安全防护选择。
Fail2ban 支持多种服务的保护,如SSH、Apache、Nginx等,这里主要介绍一下监控 SSH 连接和自动封禁 IP。
- 安装Fail2ban
sudo apt install fail2ban
- 创建一个本地配置文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- 编辑 jail.local 文件
sudo nano /etc/fail2ban/jail.local
- 在 [sshd] 部分添加或修改以下配置
[sshd]
# 启用SSH监控
enabled = true
# 监控SSH端口
port = ssh
# 使用sshd过滤器
filter = sshd
# 监控/var/log/auth.log日志文件
logpath = /var/log/auth.log
# 3次失败尝试后封禁IP
maxretry = 3
# 时间窗口为5分钟,5分钟内3次失败尝试后封禁IP
findtime = 5m
# 封禁时间为1小时(3600秒)
bantime = 3600
# 需要忽略的IP,此IP连接失败不会被封禁
ignoreip = 192.168.1.111
- 重启 Fail2ban 服务
sudo systemctl restart fail2ban
- 查看 Fail2ban 状态
#查看当前状态,例如有多少 IP 被封禁
sudo fail2ban-client status sshd
- 手动封禁 IP
sudo fail2ban-client set sshd banip 192.168.1.122
- 手动解封 IP
sudo fail2ban-client set sshd unbanip 192.168.1.144
Fail2ban 非常简单易用,并且可以很好的保护 SSH 不被暴力破解。同时如果禁止 SSH 密码登陆,用私钥登陆 SSH 的话,基本可以做到 SSH 完美保护。