使用Fail2ban保护服务器免受可疑IP攻击
发表于:2025-06-08 | 分类: frp
字数统计: 584 | 阅读时长: 2分钟 | 阅读量:

Fail2ban是一个强大的安全工具,能够监控服务器日志文件,检测可疑活动,并自动配置防火墙规则来阻止发起这些活动的IP地址。下面是详细的配置和使用方法:

安装Fail2ban

在Debian/Ubuntu系统上:

1
2
sudo apt update
sudo apt install fail2ban

在CentOS/RHEL系统上:

1
2
sudo yum install epel-release
sudo yum install fail2ban

基本配置

  1. 首先,创建自定义配置文件:
1
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  1. 编辑自定义配置文件:
1
sudo nano /etc/fail2ban/jail.local
  1. 设置全局参数,例如:
1
2
3
4
5
6
7
8
9
[DEFAULT]
# 禁止时间(秒)
bantime = 3600
# 查找失败尝试的时间窗口(秒)
findtime = 600
# 在findtime期间允许的最大失败尝试次数
maxretry = 5
# 默认使用的防火墙
banaction = iptables-multiport

为frps创建自定义规则

  1. 创建自定义过滤器来匹配frps日志中的异常行为:
1
sudo nano /etc/fail2ban/filter.d/frps.conf
  1. 添加以下内容来检测RDP连接尝试:
1
2
3
[Definition]
failregex = frps\[\d+\]: .* \[proxy/proxy\.go:\d+\] \[.*\] \[rdp\] get a user connection \[<HOST>:\d+\]
ignoreregex =
  1. 创建一个专门监控HTTP代理错误的过滤器:
1
sudo nano /etc/fail2ban/filter.d/frps-http.conf
  1. 添加以下内容:
1
2
3
[Definition]
failregex = frps\[\d+\]: .* \[httputil/reverseproxy\.go:\d+\] do http proxy request \[host: .*\] error: .* <HOST> .*
ignoreregex =
  1. 在jail.local文件中添加自定义规则:
1
sudo nano /etc/fail2ban/jail.local
  1. 添加以下配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[frps-rdp]
enabled = true
port = 你的frp服务端口
filter = frps
logpath = /var/log/syslog
# 调整以下参数根据需要
maxretry = 3
findtime = 300
bantime = 3600

[frps-http]
enabled = true
port = 你的frp服务端口
filter = frps-http
logpath = /var/log/syslog
# 调整以下参数根据需要
maxretry = 5
findtime = 600
bantime = 3600

启动并测试Fail2ban

  1. 重启Fail2ban服务:
1
sudo systemctl restart fail2ban
  1. 检查服务状态:
1
sudo systemctl status fail2ban
  1. 查看当前监狱状态:
1
sudo fail2ban-client status
  1. 检查特定监狱详情:
1
sudo fail2ban-client status frps-rdp
  1. 手动解除IP封禁(如有需要):
1
sudo fail2ban-client set frps-rdp unbanip 123.45.67.89

监控和维护

  • 定期查看Fail2ban日志:
1
sudo tail -f /var/log/fail2ban.log
  • 查看当前被封禁的IP列表:
1
sudo iptables -L -n
  • 考虑设置永久忽略的IP(白名单):
    在jail.local中的[DEFAULT]部分添加:
1
ignoreip = 127.0.0.1/8 192.168.1.0/24 你的固定IP地址

通过这种配置,Fail2ban将自动识别并阻止对frps服务的可疑访问尝试,从而大大提高服务器的安全性。

上一篇:
配置失败登录尝试限制
下一篇:
FRP配合Nginx实现域名访问Windows远程桌面的配置方案