在ubuntu 或centos 下 fail2ban 的安装使用


在ubuntu 或centos 下 fail2ban 的安装使用

简介

Fail2ban 是一款开源入侵防御软件,主要用于防止各种服务(如 SSH、HTTP、SMTP 等)的暴力破解攻击。它通过监控日志文件,根据预定义的规则识别可疑活动,然后通过动态修改防火墙规则来阻止攻击者的 IP 地址。

功能有:

  1. 日志监控,监控配置的服务日志文件,入SSH,WEB服务器,邮件服务器等日志
  2. 可以活动识别,根据预定义的过滤规则,识别日志中可以的活动,如多次失败的登录尝试
  3. 动态阻止,一旦识别出可以活动,fail2ban就会通过修改防火墙规则来阻止攻击IP
  4. 多服务支持,fail2ban支持多个服务,如SSH,HTTP,SMTP等
  5. 报警通知,Fail2ban支持邮件、短信、微信等报警通知

作用:

  1. 防止暴力破解攻击
  2. 减少服务器负载
  3. 增强安全性
  4. 自动化管理

安装

Debian/Ubuntu系列

  sudo apt-get update
  sudo apt-get install fail2ban

RHEL/CentOS系列

  sudo yum install epel-release
  sudo yum install fail2ban

配置

  1. 创建本地配置文件
    • 默认配置文件为:/etc/fail2ban/jail.conf。为了防止误操作,还请新建一个本地配置文件
    • 新建一个本地配置文件 sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    • 编辑本地配置文件 sudo vi /etc/fail2ban/jail.local 找到 [sshd] 部分进行配置
      • enabled:启用 sshd 监控。
      • port:SSH 服务的端口(默认是 22)。
      • filter:要应用的过滤器(默认为 sshd)。
      • logpath:建议使用默认即可 日志文件路径(在 Debian/Ubuntu 上为 /var/log/- auth.log,在 CentOS/RHEL 上为 /var/log/secure)。
      • maxretry:允许的最大失败登录次数。
      • bantime:禁止时间(秒)。
      • findtime:查找时间窗口(秒)。
        [sshd]
        enabled  = true
        port     = ssh
        filter   = sshd
        logpath  = /var/log/auth.log
        maxretry = 3
        bantime  = 600
        findtime = 600
        

启动服务

  1. 启动 Fail2Ban 服务 sudo systemctl start fail2ban
  2. 设置 Fail2Ban 开机自启动 sudo systemctl enable fail2ban
  3. 检查 Fail2Ban 状态 sudo fail2ban-client status
  4. 查看 sshd (jail)的状态【推荐】 sudo fail2ban-client status sshd

其他

  1. 解除 IP 禁止 sudo fail2ban-client set sshd unbanip <IP_ADDRESS>
  2. 手动禁止 IP 地址 sudo fail2ban-client set sshd banip <IP_ADDRESS>

参考

  1. fail2ban
  2. fail2ban wiki