修改SSH重试次数和IPTABLES屏蔽规则

Published: Tags: SHELL LINUX

前两天买了个小机器用于测试,所以就没弄密钥登录,然后发现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屏蔽方案。

参考: Iptables模块recent应用 Iptables防攻击模块介绍(五)