如何在ubt系统中安装fail2ban
如何在ubt系统中安装fail2ban

如何在ubt系统中安装fail2ban

在 ​​Ubuntu (UBT)​​ 系统上安装和使用 fail2ban 可以有效防止暴力破解攻击(如 SSH、FTP、Web 登录等)。以下是详细步骤:


​1. 安装 fail2ban​

sudo apt update
sudo apt install fail2ban

​2. 基本配置​

Fail2ban 的配置文件位于 /etc/fail2ban/。​​不要直接修改 jail.conf​,而是创建本地副本 jail.local

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

​常用配置选项(在 [DEFAULT] 部分)​​:

[DEFAULT]
# 禁止 IP 的持续时间(秒)
bantime = 1h

# 触发禁令的失败次数
maxretry = 3

# 检测时间窗口(秒)
findtime = 10m

# 邮件通知(需安装 sendmail)
destemail = your_email@example.com
sender = fail2ban@your_server
action = %(action_mwl)s  # 邮件+封禁+记录日志

​启用保护服务(示例:SSH)​​:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log

​3. 自定义规则​

​案例:保护 Nginx(防止暴力登录)​

  1. 创建 Nginx 过滤规则文件:sudo nano /etc/fail2ban/filter.d/nginx-login.conf[Definition] failregex = ^ \[error\] \d+#\d+: \*\d+ user "(?:[^"]+|.*?)":? (?:password mismatch|was not found).*, client: <HOST> ignoreregex =
  2. 在 jail.local 中添加:[nginx-login] enabled = true port = http,https filter = nginx-login logpath = /var/log/nginx/error.log maxretry = 3

​4. 管理 fail2ban 服务​

# 启动服务
sudo systemctl start fail2ban

# 开机自启
sudo systemctl enable fail2ban

# 查看状态
sudo systemctl status fail2ban

# 重新加载配置(修改后必执行)
sudo fail2ban-client reload

​5. 常用命令​

# 查看所有监狱状态
sudo fail2ban-client status

# 查看具体监狱(如 sshd)状态
sudo fail2ban-client status sshd

# 手动封禁 IP
sudo fail2ban-client set sshd banip <IP>

# 解封 IP
sudo fail2ban-client set sshd unbanip <IP>

​6. 验证是否生效​

  • 故意输错 SSH 密码(超过 maxretry 次)。
  • 检查 IP 是否被封禁:sudo iptables -L -n # 或使用 `nft list ruleset`(若用 nftables)

​7. 高级配置​

​邮件通知​

确保系统已安装邮件服务(如 sendmail):

sudo apt install sendmail

配置 action 为邮件通知(见步骤 2)。

​白名单 IP​

在 jail.local 的 [DEFAULT] 部分添加:

ignoreip = 127.0.0.1/8 192.168.1.0/24

​8. 日志位置​

  • Fail2ban 日志:/var/log/fail2ban.log
  • 被封禁记录:grep "Ban" /var/log/fail2ban.log

​注意事项​

  1. ​避免封禁自己​​:将常用 IP 加入 ignoreip
  2. ​测试规则​​:使用 fail2ban-regex 测试过滤规则:sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
  3. ​云服务器用户​​:若使用 AWS/Aliyun 等,需在安全组中同步封禁 IP(fail2ban 仅控制本地防火墙)。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注