什么是防止暴力破解Linux服务器上的ssh和FTP的最佳工具?
这不是每个人的口味,但我真的很喜欢DenyHosts的自动化探针sshd的广泛阻塞:
http://denyhosts.sourceforge.net/
我使用它在一个非常偏执的模式,如果你绊倒它 – 你有一个ALL:前缀hosts.deny,而不仅仅是一个SSH:一个入口。 如果您愿意,您可以允许拒绝主机定期清除拒绝列表。
检查fail2ban。 http://www.fail2ban.org/wiki/index.php/Main_Page这是非常方便的,以防止暴力破解http,ftp,stmp服务器等攻击
在SSH上,提示:
– 设置PermitRootLogin no
– 设置MaxStartups 1
– 设置MaxAuthTries 3(或更less)
这对于密码authentication。 我将避免使用RSAAuthentication的powershell攻击与公钥,只有我想要的用户可以使用一个很好的密码短语。
还要更改用于SSH的默认端口,并在可用空间范围内使用另一个不同于22的端口,并设置iptables以过滤stream量。
你也可以使用iptables来为你想要的端口进行速率限制。 这非常灵活。
我一直在使用OSSEC ,这不是很难安装和configuration。
首先,检查模块是否存在/lib/security/pam_tally2.so
为了保护用户免受暴力攻击:然后编辑/etc/pam.d/system-auth
在最后一行添加:
auth required pam_tally2.so deny=3 unlock_time=3600 account required pam_tally2.so
打开另一个terminal,并使用用户名和密码错误进行检查。
要locking特定用户:编辑/etc/pam.d/system-auth在最后一行添加
auth required pam_tally2.so deny=3 unlock_time=3600 even_deny_root account required pam_tally2.so
打开另一个terminal,并使用用户名和密码错误进行检查。
笔记:
pam_tally2 – >此命令用于存储失败logging的数量
pam_tally2 -u kannan – >仅查看kannan用户失败logging
pam_tally2 -u username –r – >重置手动locking的用户
“你也可以考虑从DNS层面保护你的域名,例如CloudFlare”
实际上,我们不能在这些端口(SSH,FTP)上代理stream量,因为我们只在Webstream量(端口像80和443)上工作。 你可能想看看像Dome9这样的东西 。
我没有用过,但是ssh看起来很有趣。
使用Netfilter的“最近的”模块,并在内核级别将其扼杀在萌芽状态。 此外,这个解决scheme不是特定于应用程序的(即不依赖于应用程序configuration)
您也可以考虑从DNS级别保护您的域名。 像CloudFlare或Incapsula 。
他们都提供免费的计划,但最终他们是支付服务。
我使用免费服务为我的网站。 它不会阻止所有的攻击,但是这一切都是关于安全的。
尝试通过从TLDP的 Linux安全HOWTO 阅读 ,然后可能改善您的问题,如果它不提供答案已经。
编辑 (问题更新后):除了上述所有(最可分类为入侵检测),还有端口敲门。
它不能防止暴力攻击,但是它以几种方式使系统变硬
我发现这个回复批评系统相当丰富。