每秒从不同的IP获得1次失败的SSH连接尝试。 我能做什么?

我从我的服务器上的不同IP(使用不同的用户名)获得了很多SSH连接尝试。 每秒1到5次。 它看起来像一个蛮力攻击。 我能做些什么来防止呢? 阻止IP? 更改SSH端口? 别的东西?

谢谢!

DenyHosts软件包是一个免费的软件包,可以阻止“机器人”尝试对您的ssh端口进行重复攻击。

http://denyhosts.sourceforge.net/

伟大的软件阻止他们。

注意:默认情况下它也包含在许多发行版中。

  • 你可以安装fail2ban。 它完全是为了这个目的,阻止暴力尝试。 它可以与其他服务器,如http / ftp / etc也可以。
  • 您可以手动阻止该IP,但这更多是一个临时解决scheme。
  • 您可以根据您的build议更改SSH端口。 除非你需要在标准端口上运行它,否则这是一个非常好的主意。 大多数攻击者不会花时间来查明是否有公共的ssh服务器在运行,在什么端口上,除非攻击是针对你的。

改变SSH端口解决了它很好。 从来没有任何问题(一旦有这么多的机器与默认端口一次,蛮力扫描范围是太昂贵了)。

不要改变端口(永久)对任何复杂的攻击毫无意义,只会造成阻塞。 好的安全政策是好的,而不是默默无闻的。 如果您可以考虑限制访问一组已知的IP,如果您不能考虑拒绝主机 ,如上所述。 你也应该跟你的ISP讨论这个问题,也许他们的networking上有一个网段的攻击,他们并不知情。

你可能会发现http://www.snowman.net/projects/ipt_recent/对此有用 – 你可以这样做:

iptables -A INPUT -m recent --rcheck --seconds 60 -j DROP iptables -A INPUT -i eth0 -d 192.2.0.1 -m recent --set -j DROP 

所以我做了一个组合:

  • IPTablesconfiguration
  • 的DenyHosts
  • SSHconfiguration

如果你设置了很多来自不同IP地址的故障,你的服务器将遭受分布式的暴力攻击。 一些关键点:

  • 如果你在22以外的端口上运行ssh,这个攻击将永远不会攻击你
  • 运行类似denyhosts的东西通常不会有任何帮助,因为像这样的攻击被调整为每个IP都有足够低的尝试次数 – 这样的最后一次攻击使用了几千个IP

所以,保护您的SSH服务器的步骤如下:

  1. 更改端口。 每一次自动攻击只能扫描22号端口。如果你在22号端口运行ssh,并且你开始看到login失败,那就意味着你在某个时候在端口22上扫了一眼。 如果您在端口12501上运行ssh,并且您开始看到login失败,则会遇到更大的问题。 如果一切都失败了,没有打开端口22可以防止你成为一个简单的目标。
  2. 阻止访问从任何地方,但您的networking的SSH端口。 如果你没有一个静态IP,然后设置敲门或一个VPN,让你从任何地方连接。 设置knockd比设置VPN简单得多。

要求基于密钥的身份validation并不能确保ssh服务器的安全,它确保了身份validation。 如果你只依靠基于密钥的身份validation来保护服务器,那么你就可以自由地利用openssh。 如果针对openssh发布了0day漏洞,并且您在端口22上运行ssh,并依靠密钥来“保护”您的服务器,则会在几小时内被黑客入侵。

更好的做法是,甚至不允许人们首先连接到ssh服务器。

+1用于更改端口。

如果您始终拥有静态IP,请阻止除IP之外的所有访问。

如果你有一个dynamicIP,或者你的powershell攻击来自多个IP,就很难阻止IP。

如果这些IP是共同的,即它总是一个范围内的10个IP地址进行攻击,找出哪个ISP拥有它们,并提交包含日志条目的滥用报告。

另一个+1更换端口 – 在最低限度。 否则,build立VPN和防火墙除了VPN连接以外的所有东西。 在我看来,这是两全其美的。

如果它是一个(或只有less数)远程IP尝试login,则可以使用127.0.0.1(环回接口)的网关安装IP的主机路由。 这样,他们不能build立一个TCP会话,但是运行内核资源的风险(每秒1-5次,应该没问题)。

这已经得到了回答,但只是添加一些我没有看到提到的东西…

您可以禁用根login。

如果你要在Centos中这样做,你可以在/ etc / ssh / sshd_config中更改以下内容:

 PermitRootLogin no 

大多数暴力攻击都是针对root用户的。

确保其他系统用户没有通用名称,即“admin”或“public”或你的名字,即“dave”。 攻击者将不得不暴力强制用户名和密码,这是不会发生的。