fail2ban按网上教程结果是假拉黑,自己摸索了正确的配置,成功真拉黑

好像搞明白了

有的系统 没有syslog这个服务,或者是挂掉了、没有日志文件启动失败等原因,

因为没有syslog服务输出的登录日志,所以fail2ban监测不到登录信息,就不能ban

touch /var/log/auth.log #确保日志文件存在,有的系统日志文件不存在会导致服务启动失败。如果本来就已存在是不会覆盖掉的
apt install -y syslog #安装syslog服务
systemctl enable syslog #设置syslog服务为开机自启
systemctl start syslog #启动syslog服务
systemctl status syslog #查看服务状态

我之前参照网上的教程也是发现,按照教程fail2ban日志显示拉黑了IP,但根本没用照样能连接验证密码错误,被拉黑了再输正确密码照样能登录成功

然后我自己测试了一下,找到了正确的能真的拉黑后拒绝登录的配置文件

这是我自己实测有效的jali.local,超过错误次数,直接拒绝登录,无法连接的配置文件。

以下是/etc/fail2ban/jail.local的内容,就这么些内容,

不是从jali.conf复制得到的jali.local,没有其他的参数,网上教程叫cp jail.conf得到的jail.local,然后再加参数就是假拉黑

自己新建个空白的,nano /etc/fail2ban/jail.local,就填以下内容,重载即可真拉黑。我的SSH端口是2222,改成你自己的


[sshd]
enabled = true
port = 2222
findtime = 30m
maxretry = 5
bantime = 365d
ignoreip = 192.168.0.0/16 10.0.0.0/8 172.16.0.0/12 127.0.0.1/8 ::1
logpath = /var/log/auth.log
backend = %(sshd_backend)s


#重载生效

systemctl restart fail2ban
systemctl status fail2ban
fail2ban-client status sshd



现在去找另一台设备去用错误密码(不能是空密码),连接试试,超过次数就会被拉黑,并且直接拒绝连接了,这样才是真拉黑

#其他命令
#重启并查看服务状态
systemctl restart fail2ban
systemctl status fail2ban

#查看sshd规则的封禁列表
fail2ban-client status sshd

#在sshd规则中手动拉黑某个IP 可以写多个,用空格分开
fail2ban-client set sshd banip 1.2.3.4

#从sshd规则黑名单中移除某个IP
#是从黑名单移出,不是加入白名单,如果再符合封禁条件会再次被拉黑
fail2ban-client set sshd unbanip 1.2.3.4

#查看fail2ban的日志  看密码输入错误计数
tail -f /var/log/fail2ban.log

#查看SSH登录日志
tail -f /var/log/auth.log

有大佬说,删掉这个参数 banaction 可能就可以了,我没测试成

还有大佬说,apt install -y fail2ban后什么都不做就自带了ssh的爆破防护,但我测试那样是假拉黑,无效的拉黑