服务器系统是 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 1
分享 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 |