技术解析

如何检验 fail2ban ssh 真正生效了?
0
2021-06-17 14:23:40
idczone

服务器系统是 Ubuntu 19.10 ,用 ufw 只放行 443 和 5230 端口,禁止 root 登录和密码登录,只允许密钥登录,修改 ssh 的端口为 5230,并安装了 fail2ban 。然后把复制出来的 /etc/fail2ban/jail.local 里面内容全部删除了,写入如下配置:

[sshd]
enabled = true
port    = 5230
logpath = %(sshd_log)s
backend = %(sshd_backend)s

接着 fail2ban 启动后,输入以下命令得出:

$ systemctl --no-pager status fail2ban
● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2020-04-05 10:09:52 CST; 1h 45min ago
     Docs: man:fail2ban(1)
  Process: 31898 ExecStartPre=/bin/mkdir -p /var/run/fail2ban (code=exited, status=0/SUCCESS)
 Main PID: 31908 (fail2ban-server)
    Tasks: 9 (limit: 1078)
   Memory: 12.1M
   CGroup: /system.slice/fail2ban.service
           └─31908 /usr/bin/python3 /usr/bin/fail2ban-server -xf start

Apr 05 10:09:52 vps systemd[1]: Starting Fail2Ban Service...
Apr 05 10:09:52 vps systemd[1]: Started Fail2Ban Service.
Apr 05 10:09:52 vps fail2ban-server[31908]: Server ready

$ fail2ban-client status
Status
|- Number of jail:  1
`- Jail list:   sshd

$ fail2ban-client ping
Server replied: pong

这只能证明 fail2ban 正在运行,输入 iptables -L | grep '*f2b*' 没有任何结果,看网上的文章里是会有带 f2b 的输出,这是否意味着 fail2ban 只是启动但是没有真正生效呢。接下来清空并滚动输出 /var/log/fail2ban.log ,发现在另一个终端用 ssh 口令登录时,没带密钥和带错密钥导致登录失败,都不会记录在 fail2ban.log 上。

请问如何验证这段 fail2ban ssh 规则真正生效了?


fail2ban-client status sshd
就能看到几百个被封的 ip 了

fail2ban-client status xxx
完全默认的情况下,会优先使用 ufw,虽然实际上本体也是 iptables,另外封掉的信息会累积在用户目录 ~ 的 dead_latter 里面可以查看。

分享 Linux 中执行的 powershell 脚本:ssh-deny-host
这是 powershell 版的 ssh deny host,
支持 centos7,centos8,debian9,debian10,Ubuntu1604,Ubuntu1804
用任务计划 每分钟执行即可。
* * * * * /usr/bin/pwsh -file /tmp/sshdenyhost.ps1
我的所有 powershell 脚本,下载地址:
https://pan.baidu.com/s/16deKKe3ZnCg809lffiVZWg

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服