三个月前,我偶然发现了有关移植SSH端口的需求的
讨论 。 许多讨论参与者相信,无需将端口转移到非标准端口。
切换到密钥授权并安装Fail2ban就足够了,这已经是安全的保证。 不幸的是,我们生活在一个不断变化的现实世界中,提议的安全措施不再总是足够的。
让我们看看-密钥授权留下了两个相对安全的ssh密钥-RSA-4096和ED25519,DSA密钥不再包含在最新版本的OpenSSH中。 在这种情况下,必须考虑到Internet上对ED25519可靠性的某些疑问,如果有人感兴趣,Google会提供帮助。
除了密钥之外,建议为密钥使用至少较长的密码短语,密码至少要使用大小写和数字不同的随机字符。
蛮力攻击-让我们简要地看看如果您的主机遭到有目的攻击会发生什么。
第1阶段-收集主机信息,包括开放端口
这种信息收集远未总是反映在您的日志中,例如,端口扫描可以在不建立连接的情况下进行。 Fail2ban在这里没有用,它仅适用于日志条目。 在第一阶段,还可以监视已安装的保护系统。 例如,确定阻塞之前的授权尝试次数,阻塞时间。
第2阶段-尝试通过黑客SSH访问系统
具有数千个地址的僵尸网络用于黑客攻击,在简单的情况下,扫描会绕过成千上万个地址绕过Fail2ban的默认设置,并认真进行扫描,同时考虑到受害者保护系统的设置。 Fail2Ban在这里也没有用,特别是如果SSH在端口22上并且默认情况下保留Fail2Ban设置。
在我的其中一台服务器的外部边界上,所有端口均已关闭,但是在几天之内,多达数千个主机正试图与标准端口建立连接。 此外,扫描考虑了可能的保护,通常一个分钟的时间间隔就会从一个地址发送数据包。
当然,对于主机和服务,使用非标准设置,Fail2ban可以有效地保护某些其他服务。
由于某种原因,第二阶段似乎总是最危险的,实际上,第一阶段寻找主机上可能存在的漏洞,它们比简单的蛮力SSH更为危险。 当附近有漏洞的门户时,为什么要破坏SSH。
至于更改标准端口,最近有
一份关于SSH安全性的BestPractic评论,更改标准端口的成本为8点,密钥授权为第一项,而安装Fail2ban或类似产品则为10点。
Top 20 OpenSSH Server最佳安全性实践 。
将SSH端口切换为非标准端口可以使您将标准端口用作陷阱来跟踪扫描尝试,并长时间阻止接收到的IP地址,并且对于所有端口,这是BestPractic文章中的11点。 自然,必须指定白色地址以免获得随机锁定,这在BestPractic文章中分别为7和8点。
因此,我们增加了收集有关系统信息的成本。 有关开放端口的信息将花费数千个IP地址或数月来扫描我们的系统。 如果潜在的攻击者不知道我的SSH端口,即使出现漏洞,他也将无法使用它。