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

采用高配品牌服务器

主流强悍CPU配置

确保服务高速稳定运行

中美直连线路

中美直连亚洲优化

采用中国CN2骨干网络

保证速度飞快稳定高效

如何配置Fail2ban工具以阻断SSH暴力破解攻击?

美国、香港服务器

如何配置Fail2ban工具以阻断SSH暴力破解攻击?

10-20   来源:

 Fail2ban 是一款通过监控日志文件识别恶意行为(如 SSH 暴力破解)并自动阻断攻击 IP 的工具,配置步骤如下(以 Linux 系统为例,适用于 CentOS/Ubuntu/Debian):

一、安装 Fail2ban
根据系统包管理器选择对应命令:
CentOS/RHEL:
bash
sudo yum install epel-release  # 先安装 EPEL 源(Fail2ban 在 EPEL 仓库中)
sudo yum install fail2ban -y
Ubuntu/Debian:
bash
sudo apt update && sudo apt install fail2ban -y
二、核心配置:创建自定义规则文件
Fail2ban 的默认配置文件为 /etc/fail2ban/jail.conf,但不建议直接修改(升级时可能被覆盖),需创建 jail.local 自定义配置(优先级高于 jail.conf):
bash
sudo vi /etc/fail2ban/jail.local
添加以下内容(针对 SSH 暴力破解的核心配置):
ini
[DEFAULT]
# 全局默认配置,适用于所有规则
ignoreip = 127.0.0.1/8 192.168.1.0/24  # 白名单IP/网段(不封禁,如内网IP)
bantime = 3600          # 封禁时间(秒),建议设为 3600(1小时),严重攻击可设为 86400(24小时)
findtime = 600          # 检测时间窗口(秒),600秒内超过 maxretry 次则触发封禁
maxretry = 5            # 最大失败次数,5次失败则封禁
 
# SSH 服务规则([sshd] 为规则名称,需与 filter 匹配)
[sshd]
enabled = true          # 启用该规则(必须设为 true)
port = ssh              # 目标端口(ssh 对应默认 22 端口,若修改过 SSH 端口需改为实际端口,如 2222)
filter = sshd           # 引用的过滤规则(对应 /etc/fail2ban/filter.d/sshd.conf)
logpath = /var/log/auth.log  # SSH 登录日志路径(CentOS 可能为 /var/log/secure)
backend = auto          # 日志读取方式(auto 自动适配)
三、关键参数说明(根据需求调整)
ignoreip:白名单 IP 或网段,避免误封禁管理员 / 内网 IP。例如:ignoreip = 127.0.0.1/8 10.0.0.0/24 203.0.113.100(允许本地、内网 10.0.0.x、IP 203.0.113.100 访问)。
bantime:封禁时长,可根据攻击频率调整:
轻度攻击:3600(1 小时);
持续攻击:86400(24 小时);
永久封禁:-1(谨慎使用,避免误封后无法恢复)。
findtime 与 maxretry:
findtime = 600(10 分钟)内,若某 IP 失败登录次数超过 maxretry = 5 次,则触发封禁。
若攻击频繁,可收紧规则(如 findtime = 300,maxretry = 3)。
logpath:SSH 日志路径需与系统匹配:
Ubuntu/Debian:/var/log/auth.log;
CentOS/RHEL:/var/log/secure;
若自定义过 SSH 日志路径,需改为实际路径。
port:若 SSH 端口不是默认 22(如改为 2222),需将 port = ssh 改为 port = 2222。
四、启动并验证 Fail2ban
启动服务并设置开机自启:
bash
# 启动服务
sudo systemctl start fail2ban
# 设置开机自启
sudo systemctl enable fail2ban
# 查看状态(确认是否运行正常)
sudo systemctl status fail2ban
检查 SSH 规则是否生效:
bash
sudo fail2ban-client status sshd
正常输出示例(初始状态无封禁 IP):
plaintext
Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 0
   |- Total banned:     0
   `- Banned IP list:
五、模拟攻击测试(验证拦截效果)
从另一台机器尝试多次错误登录:
bash
# 连续输入错误密码 6 次(超过 maxretry=5)
ssh 目标服务器IP
查看 Fail2ban 状态,确认 IP 被封禁:
bash
sudo fail2ban-client status sshd
若成功封禁,输出会显示被封禁的 IP:
plaintext
Status for the jail: sshd
...
`- Actions
   |- Currently banned: 1
   |- Total banned:     1
   `- Banned IP list:   攻击IP
验证被封禁的 IP 无法登录:从被封禁的 IP 再次尝试 SSH 登录,会提示 “连接超时” 或 “拒绝连接”(因已被防火墙拦截)。
六、管理操作(解封 IP / 调整规则)
手动解封某个 IP:
bash
sudo fail2ban-client set sshd unbanip 被封禁的IP
临时禁用 SSH 规则:
bash
sudo fail2ban-client stop sshd
修改规则后重启服务生效:
bash
sudo systemctl restart fail2ban
七、注意事项
避免误封管理员 IP:务必在 ignoreip 中添加管理员常用 IP 或内网网段,防止自己被封禁(若误封,可通过服务器本地控制台或 VNC 登录后解封)。
配合防火墙使用:Fail2ban 默认通过 iptables(Linux 防火墙)封禁 IP,需确保 iptables 服务正常运行(systemctl status iptables)。
日志权限:确保 Fail2ban 有 SSH 日志文件的读取权限(默认日志文件权限为 640,属组 adm,Fail2ban 运行用户 root 可正常读取)。
通过以上配置,Fail2ban 可自动识别并阻断 SSH 暴力破解攻击,大幅降低服务器被破解的风险。建议定期查看 /var/log/fail2ban.log 日志,监控攻击趋势(如是否有持续攻击源),必要时调整 bantime 等参数加强防护。
 

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

上一篇:如何查看Fail2ban工具的日志信息? 下一篇:服务器怎么设置有攻击后进行紧急止损?

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