关于VPS安装使用Fail2ban

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 许可协议。

转载请注明来自 网上另居

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注