三二互联专业提供速度最快最稳定的美国服务器、香港服务器。中美直连,亚洲优化![ 代理登陆 ] [ 付款方式 ] [ 找回密码 ][ 电子协议责任书 ]
硬件资源保障

采用高配品牌服务器

主流强悍CPU配置

确保服务高速稳定运行

中美直连线路

中美直连亚洲优化

采用中国CN2骨干网络

保证速度飞快稳定高效

怎样配置Fail2ban工具的参数?

美国、香港服务器

怎样配置Fail2ban工具的参数?

10-21   来源:

 配置 Fail2ban 工具的参数,核心是通过调整全局默认参数和具体服务规则参数,让防护策略贴合服务器的实际攻击场景(如 SSH 暴力破解、Web 登录攻击),既避免误封正常 IP,又能精准拦截恶意行为。以下是详细的参数配置方法和优化建议:

一、参数配置的核心文件
Fail2ban 的参数配置通过两个核心文件实现,优先级为:
/etc/fail2ban/jail.local:自定义配置文件(推荐修改),优先级高于默认配置,升级工具时不会被覆盖。
/etc/fail2ban/jail.conf:默认配置文件(不建议直接修改),仅作参考,包含所有可配置参数的默认值。
所有参数配置均在 jail.local 中进行,文件结构分为 [DEFAULT] 全局配置段 和 [服务名] 规则配置段(如 [sshd] 对应 SSH 服务)。
二、全局参数配置([DEFAULT] 段)
全局参数对所有启用的服务规则生效,核心参数如下(需在 jail.local 的 [DEFAULT] 段中添加或修改):
参数名 作用说明 推荐配置(参考) 注意事项
ignoreip 白名单 IP / 网段,不会被封禁(如管理员 IP、内网 IP) 127.0.0.1/8 192.168.1.0/24 203.0.113.100 务必添加常用管理 IP,避免误封自己
bantime 封禁时长(单位:秒),-1 表示永久封禁 轻度攻击:3600(1 小时);重度攻击:86400(24 小时) 不建议轻易用 -1,避免误封后无法恢复
findtime 检测时间窗口(单位:秒),窗口内超过 maxretry 次失败则触发封禁 600(10 分钟) 与 maxretry 配合,窗口越小防护越严格
maxretry 时间窗口内的最大失败次数,超过则封禁 5(次) 若攻击频繁,可降至 3 次;避免设为 1(易误封)
backend 日志读取方式,auto 自动适配,polling 主动轮询(兼容所有日志) auto 若日志读取异常(如未检测到攻击),可改为 polling
banaction 封禁动作,默认 iptables-multiport(通过 iptables 封禁 IP + 端口) iptables-multiport 云服务器可改为 cloudflare(联动 Cloudflare 封禁)
action 封禁时执行的操作,默认仅封禁,可配置 “封禁 + 邮件告警” %(action_mw)s(封禁 + 邮件通知) 需提前配置邮件参数(见下文 “扩展配置”)
logencoding 日志文件编码格式,默认 auto,中文日志需设为 utf-8 auto 若日志中有乱码,改为 utf-8
全局参数配置示例:
ini
[DEFAULT]
ignoreip = 127.0.0.1/8 192.168.0.0/24 114.222.33.44  # 白名单:本地、内网、管理员IP
bantime = 7200  # 封禁2小时
findtime = 300  # 5分钟内超过失败次数则封禁
maxretry = 4    # 最大失败4次
backend = auto
action = %(action_mw)s  # 封禁后发送邮件告警(含攻击IP和日志)
三、服务规则参数配置(如 [sshd] 段)
针对具体服务(如 SSH、Nginx、MySQL)的规则参数,会覆盖全局参数(若单独配置),核心参数如下:
参数名 作用说明 配置示例(以 SSH 为例)
enabled 是否启用该规则,true 启用,false 禁用 enabled = true
port 目标服务端口,支持单个端口(如 22)、多个端口(如 http,https)、服务名(如 ssh) port = ssh(默认 22);自定义端口:port = 2222
filter 引用的日志过滤规则文件(位于 /etc/fail2ban/filter.d/ 目录),定义 “如何识别攻击日志” filter = sshd(对应 /etc/fail2ban/filter.d/sshd.conf)
logpath 服务日志文件路径,Fail2ban 通过监控该日志识别攻击 Ubuntu/Debian:logpath = /var/log/auth.log;CentOS:logpath = /var/log/secure
maxretry 单独为该服务设置最大失败次数(覆盖全局 maxretry) maxretry = 3(比全局更严格)
bantime 单独为该服务设置封禁时长(覆盖全局 bantime) bantime = 86400(仅 SSH 封禁 24 小时)
服务规则配置示例(SSH 服务):
ini
[sshd]
enabled = true          # 启用SSH防护规则
port = 2222             # 若SSH端口改为2222,需同步修改
filter = sshd           # 用默认的sshd过滤规则
logpath = /var/log/secure  # CentOS系统的SSH日志路径
maxretry = 3            # 单独设置:3次失败即封禁(比全局严格)
bantime = 86400         # 单独设置:SSH攻击封禁24小时
四、扩展配置:满足特殊需求
1. 配置 “封禁 + 邮件告警”
当有 IP 被封禁时,Fail2ban 自动发送邮件通知管理员,需在 [DEFAULT] 段添加邮件参数:
ini
[DEFAULT]
# 邮件告警相关参数
destemail = admin@example.com  # 接收告警的邮箱
sender = fail2ban@example.com  # 发送告警的邮箱(可自定义)
mta = smtp                     # 邮件发送方式(smtp/pure-sendmail)
# SMTP服务器配置(以QQ邮箱为例)
smtp-server = smtp.qq.com
smtp-port = 587                # QQ邮箱SMTP端口
smtp-user = your-qq@qq.com     # 发送邮件的QQ邮箱账号
smtp-password = your-smtp-code # QQ邮箱SMTP授权码(不是登录密码)
smtp-auth = true               # 启用SMTP认证
smtp-enable-starttls = true    # 启用TLS加密
action = %(action_mw)s          # 启用“封禁+邮件通知”(含攻击IP和日志摘要)
注意:需先在邮箱服务商(如 QQ、阿里云邮箱)中开启 SMTP 服务,获取授权码。
2. 配置 “永久封禁重复攻击 IP”
对多次被封禁的 IP(如 1 个月内被封禁 3 次),设置永久封禁,需添加 [recidive] 规则(针对 “重复攻击” 的防护):
ini
[recidive]
enabled = true
filter = recidive              # 过滤“被多次封禁”的日志
logpath = /var/log/fail2ban.log  # 监控Fail2ban自身的日志
banaction = iptables-allports   # 封禁该IP的所有端口(而非单个服务)
bantime = -1                    # 永久封禁
findtime = 2592000              # 30天内(30*24*3600=2592000秒)
maxretry = 3                    # 30天内被封禁3次,触发永久封禁
3. 配置 “自定义端口的 Web 服务防护”(如 Nginx 登录攻击)
若 Web 服务用非默认端口(如 8080),需添加 [nginx-http-auth] 规则:
ini
[nginx-http-auth]
enabled = true
port = 8080                     # Web服务端口
filter = nginx-http-auth        # 引用Nginx登录过滤规则
logpath = /var/log/nginx/error.log  # Nginx错误日志路径(记录登录失败)
maxretry = 5
bantime = 3600
五、配置生效与验证
重启 Fail2ban 服务:修改 jail.local 后,需重启服务让配置生效:
bash
sudo systemctl restart fail2ban
验证配置是否生效:
查看服务状态:sudo systemctl status fail2ban,确保无报错。
查看规则状态:sudo fail2ban-client status sshd(以 SSH 为例),确认 Enabled 为 true,Log file list 正确。
查看日志:sudo tail -f /var/log/fail2ban.log,模拟攻击(如多次错误登录),确认日志中出现 Ban 攻击IP 记录。
六、参数优化建议
根据攻击频率调整:
若服务器频繁遭遇 SSH 暴力破解,可将 [sshd] 段的 maxretry 改为 3,bantime 改为 86400。
若误封频繁(如正常用户输错密码),可将全局 maxretry 改为 5,findtime 改为 600。
针对不同服务差异化配置:
核心服务(如 SSH、数据库):bantime 更长(24 小时),maxretry 更严格(3 次)。
非核心服务(如 Web 登录):bantime 较短(1 小时),maxretry 宽松(5 次)。
避免过度防护:
不建议全局用 bantime = -1(永久封禁),优先对 [recidive] 规则用永久封禁,减少误封风险。
白名单 ignoreip 务必包含所有正常访问 IP(如公司内网、管理员家庭 IP)。
通过以上配置,可让 Fail2ban 的防护策略更贴合实际需求,既能有效拦截恶意攻击,又能避免影响正常用户访问。
要不要我帮你整理一份Fail2ban 参数配置模板?包含全局参数、SSH 防护、邮件告警、永久封禁重复攻击 IP 的完整配置,你可直接修改后使用。

三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快

上一篇:如何重启Fail2ban服务使配置生效? 下一篇:如何查看Fail2ban工具的日志信息?

美国GIA服务器三二互联版权所有 WWW.250.cc 2008-2015 All Rights Reserved
三二互联 - 专业的美国C3服务器、香港vps、抗DOOS流量清洗、云备份系统、网站加速系统、美国GIA服务器和香港云服务器产品提供商
三二互联24小时在线工单系统为您提供全面、专业、周到的技术支持与服务
咨询热线:400-679-9994(免长话费)