
服务器系统是 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 规则真正生效了?
1 formaxin 2020-04-05 12:38:05 +08:00 via Android fail2ban-client status sshd 就能看到几百个被封的 ip 了 |
2 saytesnake 2020-04-06 02:53:04 +08:00 via Android fail2ban-client status xxx 完全默认的情况下,会优先使用 ufw,虽然实际上本体也是 iptables,另外封掉的信息会累积在用户目录 ~ 的 dead_latter 里面可以查看。 |
3 ps1aniuge 2020-04-07 10:45:02 +08:00 分享 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 |