自学内容网 自学内容网

fail2ban检查配置自动黑名单策略

安装 fail2ban

  1. 更新系统包索引(以 Ubuntu/Debian 为例)

    sudo apt update
    
  2. 安装 fail2ban

    sudo apt install fail2ban
    

基本配置

  1. 复制默认配置文件

    • fail2ban 的默认配置文件位于 /etc/fail2ban/jail.conf。为避免升级软件时覆盖自定义配置,建议将其复制为 jail.local

      sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
      
  2. 编辑 jail.local 文件

    • 使用文本编辑器打开该文件进行编辑:

      sudo nano /etc/fail2ban/jail.local
      
    • 可以在此文件中进行如下配置:

      • 全局设置:如 ignoreip(忽略特定 IP 不被封禁)、bantime(封禁时间)、findtime(触发封禁的时间窗口)和 maxretry(最大重试次数)。
      • 启用或禁用特定的 jails:根据需要启用或配置特定服务的监控,如 SSH、Nginx。
  3. 配置特定服务的监控规则(以 Nginx 为例):

    • 创建过滤器文件

      sudo nano /etc/fail2ban/filter.d/nginx-suspicious.conf
      
    • 添加过滤规则

      [Definition]
      failregex = ^<HOST> -.*"(GET|POST|HEAD).*(/etc/passwd|/etc/shadow|/root|/wp-admin|/wp-login.php|/phpinfo.php|/cgi-bin|/config|\.git|\.svn|\.env|\?cmd=ls|../../../../etc/passwd|\?file=../../../../etc/passwd|; DROP TABLE users|\?page=php://input|/phpMyAdmin|/pma|/dbadmin|/mysql-admin|/sqladmin|/server-status|/shell.php|/cmd.php|/backup.zip|/backup.sql|/xmlrpc.php).*"$
      ignoreregex =
      
      
    • 配置 jail 设置

      sudo nano /etc/fail2ban/jail.local
      
      [nginx-suspicious]
      enabled = true
      port = http,https
      filter = nginx-suspicious
      action = iptables[name=nginx-suspicious, port=http, protocol=tcp]
      logpath = /var/log/nginx/access.log
      maxretry = 5
      findtime = 600
      bantime = 3600
      [DEFAULT]
      ignoreip = 127.0.0.1/8 XXXXXX
      
      

XXXXXX 这个可以是放在白名单中的IP

管理操作

  1. 启动、停止和重启 fail2ban

    • 启动服务:

      sudo systemctl start fail2ban
      
    • 停止服务:

      sudo systemctl stop fail2ban
      
    • 重启服务:

      sudo systemctl restart fail2ban
      
  2. 检查 fail2ban 状态和被封禁的 IP 列表

    • 检查服务状态:

      sudo fail2ban-client status
      
    • 查看特定 jail 的状态:

      sudo fail2ban-client status nginx-suspicious
      
  3. 处理误封 IP 地址

    • 解封 IP 地址:

      sudo fail2ban-client set nginx-suspicious unbanip XXX.XX.XX.XXX
      
    • 添加 IP 地址到白名单,防止将来误封:

      • 编辑 jail.local,在 [DEFAULT] 部分添加或修改 ignoreip 选项:

        [DEFAULT]
        ignoreip = 127.0.0.1/8 XXXXXX
        

日志监控与维护

  • 查看 fail2ban 的日志

    sudo less /var/log/fail2ban.log
    
  • 审查 Nginx 访问日志以确定导致封禁的请求

    sudo less /var/log/nginx/access.log
    

原文地址:https://blog.csdn.net/sunyuhua_keyboard/article/details/137720265

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!