560 字
3 分钟
使用Fail2ban保护服务器免受可疑IP攻击
Fail2ban是一个强大的安全工具,能够监控服务器日志文件,检测可疑活动,并自动配置防火墙规则来阻止发起这些活动的IP地址。下面是详细的配置和使用方法:
安装Fail2ban
在Debian/Ubuntu系统上:
sudo apt updatesudo apt install fail2ban在CentOS/RHEL系统上:
sudo yum install epel-releasesudo yum install fail2ban基本配置
- 首先,创建自定义配置文件:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local- 编辑自定义配置文件:
sudo nano /etc/fail2ban/jail.local- 设置全局参数,例如:
[DEFAULT]# 禁止时间(秒)bantime = 3600# 查找失败尝试的时间窗口(秒)findtime = 600# 在findtime期间允许的最大失败尝试次数maxretry = 5# 默认使用的防火墙banaction = iptables-multiport为frps创建自定义规则
- 创建自定义过滤器来匹配frps日志中的异常行为:
sudo nano /etc/fail2ban/filter.d/frps.conf- 添加以下内容来检测RDP连接尝试:
[Definition]failregex = frps\[\d+\]: .* \[proxy/proxy\.go:\d+\] \[.*\] \[rdp\] get a user connection \[<HOST>:\d+\]ignoreregex =- 创建一个专门监控HTTP代理错误的过滤器:
sudo nano /etc/fail2ban/filter.d/frps-http.conf- 添加以下内容:
[Definition]failregex = frps\[\d+\]: .* \[httputil/reverseproxy\.go:\d+\] do http proxy request \[host: .*\] error: .* <HOST> .*ignoreregex =- 在jail.local文件中添加自定义规则:
sudo nano /etc/fail2ban/jail.local- 添加以下配置:
[frps-rdp]enabled = trueport = 你的frp服务端口filter = frpslogpath = /var/log/syslog# 调整以下参数根据需要maxretry = 3findtime = 300bantime = 3600
[frps-http]enabled = trueport = 你的frp服务端口filter = frps-httplogpath = /var/log/syslog# 调整以下参数根据需要maxretry = 5findtime = 600bantime = 3600启动并测试Fail2ban
- 重启Fail2ban服务:
sudo systemctl restart fail2ban- 检查服务状态:
sudo systemctl status fail2ban- 查看当前监狱状态:
sudo fail2ban-client status- 检查特定监狱详情:
sudo fail2ban-client status frps-rdp- 手动解除IP封禁(如有需要):
sudo fail2ban-client set frps-rdp unbanip 123.45.67.89监控和维护
- 定期查看Fail2ban日志:
sudo tail -f /var/log/fail2ban.log- 查看当前被封禁的IP列表:
sudo iptables -L -n- 考虑设置永久忽略的IP(白名单): 在jail.local中的[DEFAULT]部分添加:
ignoreip = 127.0.0.1/8 192.168.1.0/24 你的固定IP地址通过这种配置,Fail2ban将自动识别并阻止对frps服务的可疑访问尝试,从而大大提高服务器的安全性。
使用Fail2ban保护服务器免受可疑IP攻击
https://louaq.github.io/posts/frp/使用fail2ban保护服务器免受可疑ip攻击-/ 最后更新于 2025-06-08,距今已过 189 天
部分内容可能已过时