Fail2ban 安装与配置全攻略:从入门到实战

Fail2ban 安装与配置全攻略:从入门到实战

引言

Fail2ban 是一款开源的入侵防御工具,通过监控日志文件并自动封禁恶意 IP,有效防止暴力破解、DDoS 等攻击。本文将基于实际案例,详细介绍在 CentOS 系统上安装、配置 Fail2ban 的完整流程,并解答常见配置问题。


一、安装 Fail2ban

1. 更新系统并安装依赖

sudo yum update -y
sudo yum install epel-release -y
sudo yum install fail2ban -y

2. 启动服务并设置开机自启

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

二、基础配置

1. 核心配置文件

  • 主配置文件:/etc/fail2ban/jail.conf(默认配置,不要直接修改

  • 用户自定义配置:/etc/fail2ban/jail.local(推荐在此文件修改)

2. 创建自定义配置

sudo vi /etc/fail2ban/jail.local

三、实战配置示例

案例 1:保护 SSH 服务

[sshd]
enabled = true                # 启用 Jail
port = 22                     # 监控端口
logpath = /var/log/secure     # 日志路径
maxretry = 5                  # 最大尝试次数(超过则封禁)
bantime = 3600                # 封禁时长(秒,默认 10 分钟)

案例 2:保护 Nginx 认证

[nginx]
enabled = true
port = http,https
logpath = /var/log/nginx/error.log
filter = nginx-http-auth      # 使用认证失败过滤器
maxretry = 3
bantime = 300

四、常见错误与解决

错误 1:Wrong value for 'maxretry'

原因:未定义 maxretry 或值类型错误。 解决:显式设置有效整数值(如 maxretry = 5)。

错误 2:Found no accessible config files for 'filter.d/...'

原因:过滤器名称被注释破坏。 错误配置

filter = nginx-http-auth  # 中文注释导致名称解析失败

正确配置

filter = nginx-http-auth  # 注释需独立一行或用英文

错误 3:服务启动失败

排查步骤

  1. 检查配置文件语法:

    sudo fail2ban-client -vvv
    # 查看配置是否有问题
    fail2ban-server --test
  2. 查看日志定位错误:

    sudo journalctl -u fail2ban -f

五、查看与管理封禁 IP

1. 查看所有 Jail 状态

sudo fail2ban-client status

2. 查看特定 Jail 的封禁列表

sudo fail2ban-client status sshd

3. 手动解封 IP

sudo fail2ban-client set <jail名称> unbanip <IP地址>
# 示例:解封 SSH Jail 中的 192.168.1.123
sudo fail2ban-client set sshd unbanip 192.168.1.123

4. 查看防火墙规则(iptables)

sudo iptables -L -n | grep fail2ban

六、进阶技巧

1. 自定义过滤器

  1. /etc/fail2ban/filter.d/ 下新建文件(如 myfilter.conf)。

  2. 定义正则匹配规则:

    [Definition]
    failregex = ^<HOST> -.*"POST /login HTTP/1.1".* 401
    ignoreregex =

2. 邮件告警通知

  1. 安装邮件发送工具:

    
    sudo yum install sendmail -y
  2. jail.local中配置:

    [DEFAULT]
    destemail = admin@example.com
    sender = fail2ban@example.com
    action = %(action_mwl)s

3. 日志轮转配置

确保 /etc/logrotate.d/fail2ban 存在以下配置:

/var/log/fail2ban.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
    create 640 root adm
}

七、注意事项

  1. 备份配置:修改前备份 jail.localfilter.d/ 目录。

  2. 测试配置:使用 fail2ban-client -vvv 检查语法。

  3. 监控日志:定期查看 /var/log/fail2ban.log 捕获异常。

  4. 性能影响:高流量场景建议优化正则规则,避免过度消耗资源。


结语

通过本文,你已掌握 Fail2ban 的核心配置与问题排查方法。实际部署时,请根据业务需求调整 maxretrybantime 等参数,并结合日志分析持续优化规则。遇到问题时,优先检查配置文件语法和日志输出,也可通过 fail2ban-client 命令进行交互式调试。

所有用户都可以去薅羊毛,192元充值200元话费!先到先得!导航栏话费充值,正规可靠,快充慢充自由选择。
欧阳逸资源站 » Fail2ban 安装与配置全攻略:从入门到实战

发表评论