Fail2ban

1 安装

RedHat / CentOS

1、安装 epel 源

  1. yum install -y epel-release

2、安装 Fail2ban

  1. yum install -y fail2ban

3、启动 Fail2ban 服务

  1. systemctl start fail2ban

4、开机自启动

  1. systemctl enable fail2ban

5、查看 Fail2ban 服务状态。

  1. systemctl status fail2ban

Ubuntu / Debian

1、安装 Fail2ban

  1. sudo apt-get install fail2ban

2、Debian 12 及以上的版本需要手动安装 rsyslog

  1. sudo apt-get install rsyslog

3、启动 Fail2ban 服务

  1. sudo systemctl start fail2ban

4、开机自启动

  1. sudo systemctl enable fail2ban

5、查看 Fail2ban 服务状态。

  1. sudo systemctl status fail2ban

2 默认配置

1Panel 会默认使用以下配置:

  1. #DEFAULT-START
  2. [DEFAULT]
  3. bantime = 600
  4. findtime = 300
  5. maxretry = 5
  6. banaction = firewallcmd-ipset
  7. action = %(action_mwl)s
  8. #DEFAULT-END
  9. [sshd]
  10. ignoreip = 127.0.0.1/8 # 白名单
  11. enabled = true
  12. filter = sshd
  13. port = 22 # 端口
  14. maxretry = 2 # 最大尝试次数
  15. findtime = 300 # 发现周期 单位s
  16. bantime = 600 # 封禁时间,单位s。-1为永久封禁
  17. action = %(action_mwl)s
  18. banaction = iptables-multiport # 禁用方式
  19. logpath = /var/log/secure # SSH 登陆日志位置

3 故障排除

  • 如之前已经手动安装过 Fail2ban,需要将 [sshd] 部分的配置信息写入到 jail.local 中,重启 fail2ban 服务,否则可能出现获取黑名单报错的问题;
  • 如果选择的禁用方式为 -muliport,则在封禁时,只会禁用配置中的端口,如默认配置中的 22;
  • 如果需要修改禁用方式,需要先判读对应服务是否正常可用;
    • RedHat/CentOS 使用的是 Firewall 防火墙。
    • Debian/Ubuntu使用的是 UFW 防火墙。
  • 日志路径需要根据操作系统修改。
    • RedHat/CentOS 日志为 /var/log/secure。
    • Debian/Ubuntu 日志为 /var/log/auth.log
  • Debian 从 12 开始弃用了 rsyslog,使用时需要先自行安装;