Views: 8
为防止公网 IP 被恶意扫描器的“重点照顾对象”。只要机器开着 22 端口,时常都会有成千上万次暴力破解尝试。在机器上安装Fail2ban是非常有必要的,特别是甲骨文云该类机器。估计是这些IP被公示了,f2b作用:
1、防止暴力破解:防止利用密码字典不断尝试登录。Fail2ban 监测到多次失败记录后,会直接通过防火墙封禁对方 IP。
2、减轻系统负载:虽然你使用的是 SSH 密钥登录,黑客很难破译,但大量的登录尝试会产生海量日志,并消耗 CPU 资源
3、保护其他服务:安装了emby、Vertex、qBittorrent 等,Fail2ban 也可以配置保护这些 Web 端。
安装
# 1. 安装 sudo apt update && sudo apt install fail2ban -y # 2. 复制配置文件(不要直接改 jail.conf,改 .local) sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # 3. 启动并设置开机自启 sudo systemctl start fail2ban sudo systemctl enable fail2ban
推荐设置
推荐配置(修改 /etc/fail2ban/jail.local): 建议找到 [sshd] 部分,设置如下参数: bantime = 1h (封禁 1 小时) findtime = 10m (10 分钟内尝试) maxretry = 5 (失败 5 次就封)
如何查看
sudo fail2ban-client status sshd
举个栗子
root@amd:~# sudo fail2ban-client status sshd Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 2 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 0 |- Total banned: 1 `- Banned IP list:
Currently failed: 1:当前有 1 个 IP 正在尝试登录但失败了(还没触发封禁阈值)。
Total failed: 2:自从 Fail2ban 启动以来,一共记录到 2 次登录失败。
File list: /var/log/auth.log:这是 Fail2ban 盯着的“监控探头”。Ubuntu 所有的登录尝试(成功的和失败的)都会记在这个文件里。
Currently banned: 0:当前没有被封锁的 IP。
Total banned: 1:关键指标。 说明之前已经有一个倒霉蛋因为尝试次数过多被你踢出去了。
Banned IP list 为空:因为你设置的 bantime 是 1 小时,之前的那个 IP 封禁时间已到,被自动放出来了。
Fail2ban 常用维护命令
fail2ban-client status 查看当前开启了哪些防护(比如 sshd, 3x-ui 等) tail -f /var/log/fail2ban.log 实时查看 封禁动态(谁被封了,谁被放了) last -f /var/log/auth.log 查看最近有哪些 IP 尝试登录过你的系统
Fail2ban 只是拦截,如果你想看看黑客到底用了什么用户名在撞你的门,可以运行这行“黑话”:
grep "Failed password for" /var/log/auth.log | awk '{print $(NF-5)}' | sort | uniq -c | sort -nr | head -n 10
版权声明:本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。
转载请注明来自 网上另居。



