技术解析
服务器系统是 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 规则真正生效了?