用fail2ban屏蔽SSH爆破
故事背景
SSH爆破真是令人厌烦,动不动上万次的密码尝试属实难绷。
爆破密集到一定程度甚至有点浪费我宝贵的服务器带宽,并且有点担心我那并不算长的密码被试出来。
改端口和禁用密码验证是可行方案,但是会造成一定程度上的不便,本懒狗暂时不考虑。
初步尝试
网上随便搜了搜教程,了解到可以用pam_tally2模块来防爆破。
配置好这个模块后才发现,该模块的行为是
限制登录失败时可以锁定用户一段时间,就算密码输入正确也无法登录,等恢复之后才可以再次进入。
也就是说,检测到多次密码失败后会锁定账户,然后我自己也登不上去了,不太符合云服务器的使用场景。
使用fail2ban
随后搜到个叫fail2ban的包,可以检测到多次密码尝试错误后封禁IP,很贴合需求。
我这里用的是CentOS 7.9,其他发行版可能在实际配置上有差异。
安装
yum install fail2ban
配置
根据文档建议,新建一个配置文件vim /etc/fail2ban/jail.local
内容如下:
1 |
|
可以根据需要修改数值。
按Esc
后:wq
保存,懂的都懂。
应用并开启开机自启动
1 |
|
查询阻挡状态
1 |
|
说点废话
部署这个之后,用lastb
查到的登陆失败日志大幅减少,再也不怕SSH爆破了。
看到有的文章中改了很多配置项,有点麻烦,实测只要配置jail.local
中几行就能够正常工作了,
参考文献
用fail2ban屏蔽SSH爆破
https://zhouym.tech/2021/fail2ban/