防止暴力攻击

什么是防止暴力破解Linux服务器上的ssh和FTP的最佳工具?

这不是每个人的口味,但我真的很喜欢DenyHosts的自动化探针sshd的广泛阻塞:

http://denyhosts.sourceforge.net/

我使用它在一个非常偏执的模式,如果你绊倒它 – 你有一个ALL:前缀hosts.deny,而不仅仅是一个SSH:一个入口。 如果您愿意,您可以允许拒绝主机定期清除拒绝列表。

在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)

请参阅http://blog.andrew.net.au/2005/02/16

您也可以考虑从DNS级别保护您的域名。 像CloudFlare或Incapsula 。

他们都提供免费的计划,但最终他们是支付服务。

我使用免费服务为我的网站。 它不会阻止所有的攻击,但是这一切都是关于安全的。

尝试通过从TLDP的 Linux安全HOWTO 阅读 ,然后可能改善您的问题,如果它不提供答案已经。

编辑 (问题更新后):除了上述所有(最可分类为入侵检测),还有端口敲门。

它不能防止暴力攻击,但是它以几种方式使系统变硬

  • 使系统不那么有趣(由于端口显示closures)
  • 增加了另一层保护,增加了成功攻击的难度(在可能的256个端口上的10个端口敲击的可能组合是256 ^ 10> 94 ^ 10,其中94是所有可打印字符的数量)
  • “大声”发起攻击(更容易被入侵检测系统捕获)
  • 早期采用者可以从“低挂果”区域获得好处(类似于使用强密码只会使您不再成为某些攻击者的目标)

我发现这个回复批评系统相当丰富。