![保护 SSH 服务器免遭暴力破解](https://linux22.com/image/522801/%E4%BF%9D%E6%8A%A4%20SSH%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%8D%E9%81%AD%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3.png)
我有一台小型 SVN 服务器,旧的戴尔 optiplex 运行 debian。我对我的服务器没有那么高的要求,因为它只是一个小型 SVN 服务器……但我希望它是安全的。
我刚刚将我的服务器更新为更新更好的 optiplex,并开始研究旧服务器。遇到问题后,我将其关闭。当我检查日志时,它充满了暴力破解尝试,不知何故有人成功进入了我的计算机。这个人创建了一个名为“knarkgosse”的额外卷,其中包含两个目录“root”和“swap1”之类的东西。我真的不知道他们为什么这样做,也不知道他们做了什么,但确实想防止这种情况再次发生。不过我觉得这有点奇怪,因为我每隔几个月就会更改一次密码,而且密码总是由随机字母和数字组合而成……不容易暴力破解。
我知道我可以阻止 root 登录,并使用 sudoers...并更改 SSH 端口,但我还能做什么?
我有几个问题:
如何才能在尝试错误次数达到 X 次后 5 分钟内阻止登录。或者在每次尝试错误后放慢登录速度?
是否存在某种服务器可以连接的中央黑名单?黑名单会跟踪“不安全”且永远不应授予访问权限的 IP 地址?
我还能做什么来确保我的服务器的安全?
就像我之前说的,我正在运行 Debian 5,其中包含 Apache(www-data 用户问题?)、svn、mysql、php、phpmyadmin、hudson。它位于家庭网络上,端口转发在 80、443、8080、8180、23 和 22 上。
答案1
答案2
安全密码和密钥认证是无可替代的。 话虽如此,失败禁止是一款出色的工具,可用于禁止尝试验证次数过多的用户的 IP。它还作为大多数发行版的预构建包提供。请注意,您可能会意外被禁止,因此请确保您也有一个恢复白名单 IP 或方便的控制台访问...
Fail2Ban 提供了几个很好的例子,教你如何配置你问到的所有内容……但是,它没有一个通用的错误地址存储库。我认为任何地方都没有这样的存储库,因为很容易获得另一个 IP(dhcp 更新/僵尸网络攻击/等等)。我还会禁用使用常见的“管理员”类型用户名(root/admin/administrator/sysop/等等)通过 ssh 登录,因为这些是最常被使用的。
答案3
我已使用以下方法阻止了暴力攻击:
- 失败2ban
- sshd.配置:
- 密码验证否
- PermitRootLogin 否
- 使用 iptables 限制 SSH 连接速率(http://www.debian-administration.org/articles/187)
答案4
我一直是脑脊液/肝纤维化它可以阻止试图暴力破解、端口扫描和其他一些选项的人的 IP 地址。它基本上是 IP 表的大型 perl 包装器,但配置文件并不难读,文档也不错。