修改SSH重试次数和IPTABLES屏蔽规则
前两天买了个小机器用于测试,所以就没弄密钥登录,然后发现SSH被暴力破解的频率有点高。 因此修改了SSH的最大重试次数,并且加上IPTABLES的屏蔽规则,当然最好的解决方法是使用密钥。
vi /etc/ssh/sshd_config
,去掉MaxAuthTries的注释,设值为1次(默认6次),再reload下SSH即可。
然后添加两行IPTABLES的规则,在3600秒的时间内,对22端口建立超过20次链接,则丢包处理,如下:
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSHBAN --set
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSHBAN --update --seconds 3600 --hitcount 20 -j DROP
被屏蔽的IP列表,可以在 /proc/net/xt_recent/ 目录中找到(部分发行版在ipt_recent目录下)
以上的方法有个问题,就是如果用于GIT项目管理之类,使用了22端口,而某个IP在设定的时间内, 提交了超过20次的话,那么之后的提交都会失败(连接服务器超时),可以换用fail2ban屏蔽方案。