首页 > 运维 > linux运维 > 正文

Linux暴力破解如何防御_使用fail2ban自动封禁策略深入说明【技巧】

舞夢輝影
发布: 2025-12-14 23:03:06
原创
142人浏览过
Fail2ban防御暴力破解需日志监控、规则触发、封禁动作三者协同,不替代强密码但可大幅降低自动化攻击成功率;安装后须手动配置jail.local,确保ignoreip、logpath、banaction三项精准匹配。

linux暴力破解如何防御_使用fail2ban自动封禁策略深入说明【技巧】

用 Fail2ban 防御 Linux 上的暴力破解,核心不是“装上就完事”,而是让日志监控、规则触发、封禁动作三者严丝合缝。它不替代强密码或密钥登录,但能大幅降低自动化脚本的成功率和干扰量。

安装与基础服务启动

不同系统命令略有差异,但逻辑一致:先确保仓库可用,再安装,最后启用服务。

  • Ubuntu/Debian:sudo apt update && sudo apt install -y fail2ban && sudo systemctl enable --now fail2ban
  • RHEL/CentOS/Rocky 8+:sudo dnf install epel-release -y && sudo dnf install -y fail2ban && sudo systemctl enable --now fail2ban
  • Fedora:sudo dnf install -y fail2ban && sudo systemctl enable --now fail2ban

安装后服务默认不启用任何防护 jail(监禁规则),必须手动配置才生效。运行 sudo systemctl status fail2ban 确认 Active: active (running),说明后台进程已就绪。

配置文件怎么写才安全又不误封

永远不要直接编辑 /etc/fail2ban/jail.conf。它会被升级覆盖。正确做法是创建 /etc/fail2ban/jail.local(全局覆盖)或 /etc/fail2ban/jail.d/*.local(模块化管理)。

推荐最小可行配置示例(适配多数场景):

[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 192.168.1.100  # 替换为你自己的管理IP
bantime = 1h                            # 封禁1小时(可设为 86400 或 -1 永久)
findtime = 10m                          # 10分钟内统计失败次数
maxretry = 5                            # 累计失败5次即触发封禁
backend = systemd                       # 推荐,比 file 轮询更准、更省资源
<p>[sshd]
enabled = true
port = ssh                              # 若改过SSH端口,这里写具体数字如 2222
logpath = /var/log/auth.log             # Ubuntu/Debian 路径</p><h1>logpath = /var/log/secure             # CentOS/Rocky 路径</h1><p>filter = sshd
banaction = firewallcmd-ipset           # 配合 firewalld(Rocky/CentOS 默认)</p><h1>banaction = iptables-multiport        # 配合 iptables(旧系统或自定义环境)</h1>
登录后复制

关键点:
ignoreip 必须填你常用登录的公网或内网IP,否则可能把自己锁在外面;
logpath 必须和真实 SSH 日志路径一致,错一条路径,Fail2ban 就完全“看不见”攻击;
banaction 要匹配你实际启用的防火墙服务(firewalld 或 iptables),否则封禁动作无效。

Pippit AI
Pippit AI

CapCut推出的AI创意内容生成工具

Pippit AI 133
查看详情 Pippit AI

验证是否真在工作

配置保存后,重启服务:sudo systemctl restart fail2ban。然后分三步确认:

  • 查状态:sudo fail2ban-client status sshd → 显示 “Number of jail: 1” 和 “Status: started” 表示 jail 已加载
  • 看日志:sudo journalctl -u fail2ban -n 20 -f → 尝试用错误密码连 SSH,应看到类似 “Found xxx.xxx.xxx.xxx” 和 “Ban xxx.xxx.xxx.xxx” 的记录
  • 查封禁列表:sudo fail2ban-client status sshd → 输出中 “Banned IP list” 下应出现被封 IP

如果没反应,优先检查:
sudo tail -20 /var/log/auth.log 是否真有 “Failed password” 记录;
sudo fail2ban-client get sshd logpath 输出是否和日志实际路径一致;
sudo firewall-cmd --list-rich-rules | grep fail2ban(firewalld)或 sudo iptables -L f2b-sshd(iptables)是否生成了规则。

日常运维与应急处理

封禁不是一劳永逸,要兼顾防护与可用性:

  • 手动封 IPsudo fail2ban-client set sshd banip 203.0.113.42
  • 手动解封sudo fail2ban-client set sshd unbanip 203.0.113.42
  • 临时停用某 jailsudo fail2ban-client stop sshd(排查问题时用)
  • 查看所有活跃 jailsudo fail2ban-client status

注意:解封后 IP 不会自动重试登录,但下次再触发规则仍会被封。若发现某 IP 频繁误触(比如公司出口 NAT 共享 IP 下多个用户输错),可调高 maxretry 或加入 ignoreip

基本上就这些。Fail2ban 不复杂,但容易忽略日志路径、防火墙匹配、白名单设置这三个关键点。配好之后,每天少看几百条失败登录告警,服务器也安静不少。

以上就是Linux暴力破解如何防御_使用fail2ban自动封禁策略深入说明【技巧】的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号