配置fail2ban
要让 Fail2Ban 封锁所有访问日志中来自 https://servicewechat.com 的请求来源 IP,只要出现一次就立即封锁,可以通过以下步骤实现:
🛠️ 步骤一:创建 Fail2Ban 过滤器
创建新的过滤器文件:
1 | sudo vi /etc/fail2ban/filter.d/servicewechat.conf |
内容如下(精准匹配 servicewechat.com):
1 | [Definition] |
解释:
会自动提取 IP。 - 匹配你 access.log 中包含 servicewechat.com 的请求。
你可以先用 grep 确认是否能匹配:
1 | grep 'servicewechat.com' /root/nginx/logs/access.log |
📦 步骤二:创建 Jail 配置
新建 Jail 配置文件:
1 | sudo vi /etc/fail2ban/jail.d/servicewechat.conf |
内容如下:
1 | [servicewechat] |
说明:
- maxretry = 1:出现一次即封锁。
- bantime = 86400:封锁 24 小时。
- action:使用 iptables 阻止 HTTP 请求。
🔁 步骤三:重启 Fail2Ban
1 | sudo systemctl restart fail2ban |
查看状态确认规则生效:
1 | sudo fail2ban-client status servicewechat |
你应该能看到:
1 | Status for the jail: servicewechat |
✅ 完成!
现在,一旦有访问 servicewechat.com 的记录出现在 /root/nginx/logs/access.log,对应的 IP 就会立刻被封禁 24 小时。
如果你需要更高级的匹配规则(如匹配 POST、特定 User-Agent、Referer),也可以告诉我,我来帮你精细化调整。