求适配OpenVPN Access Server的Fail2Ban正则配置方案
配置Fail2Ban防护OpenVPN Access Server认证暴力破解
刚好你已经通过开启DEBUG_LOGDB=1搞定了认证失败日志的记录,接下来我帮你完成Fail2Ban的完整配置,同时也提供几个不依赖Fail2Ban的限制方案:
一、Fail2Ban完整配置步骤
1. 创建自定义Filter规则文件
在Fail2Ban的filter目录下新建一个针对OpenVPN Access Server的规则文件/etc/fail2ban/filter.d/openvpnas.conf,内容如下:
[Definition] # 匹配包含认证失败标记、真实IP字段的日志行 failregex = ^.*LOG ERR.*"real_ip": "<HOST>".*"auth": 0,.* # 忽略不需要匹配的日志行(留空即可) ignoreregex =
这个正则的作用是精准抓取**认证失败(auth:0)**的日志,并提取出攻击者的IP地址(<HOST>是Fail2Ban内置的IP占位符)。
2. 添加Jail封禁规则
编辑/etc/fail2ban/jail.local(推荐用local文件避免系统升级覆盖配置),在文件末尾添加如下规则:
[openvpnas] enabled = true # 覆盖OpenVPN Access Server的常用端口:Web管理943、VPN服务1194、HTTPS访问443 port = 443,943,1194 protocol = tcp,udp # 关联刚才创建的filter规则 filter = openvpnas # 指定日志文件路径 logpath = /var/log/openvpnas.log # 允许的最大失败次数 maxretry = 3 # 封禁时长(单位:秒,这里设置为1小时) bantime = 3600 # 统计失败次数的时间窗口(单位:秒,这里设置为10分钟) findtime = 600
3. 重启Fail2Ban生效
执行以下命令重启服务,让配置生效:
sudo systemctl restart fail2ban
你可以用下面的命令检查规则是否正常加载:
fail2ban-client status openvpnas
二、不依赖Fail2Ban的替代方案
如果不想部署Fail2Ban,也可以通过OpenVPN Access Server自身的功能来限制暴力破解:
- Web GUI登录限制:进入Access Server管理界面的
Authentication > Settings,部分版本支持设置「登录失败次数阈值」和「锁定时长」,超过次数就暂时锁定用户登录 - 启用多因素认证(MFA):给所有VPN用户启用TOTP等多因素认证,即使攻击者拿到密码,也无法完成认证,从根源降低风险
- IP白名单:在
Network Settings > Firewall中配置允许访问的IP范围,只开放给你常用的固定IP,拒绝其他未知IP的访问请求 - 缩短认证超时:调整认证会话的超时时间,减少暴力破解的时间窗口
内容的提问来源于stack exchange,提问作者user3246693
相关产品推荐
相关产品推荐

