Answers:
它并不像某些人所声称的那样有用,但是它至少会减少对日志文件的影响,因为许多暴力登录尝试仅使用默认端口,而不是扫描以查看SSH是否在其他地方监听。不过,有些攻击会在其他地方扫描SSH,因此这不是灵丹妙药。
如果您的服务器将成为某种类型的共享主机,而不仅仅是满足项目需求,那么使用非默认端口可能会很麻烦,因为您将不得不一遍又一遍地向用户解释它。当他们忘记了他们的客户端程序无法连接到端口22时!
在非标准端口上使用SSH的另一个可能的问题是,如果遇到一个客户端,该客户端具有受限的外发过滤器集,该客户端无法连接到自定义端口,因为它们的过滤器仅允许使用例如22、53、80端口443为新的外发连接的目的地。这是罕见的,但肯定不是闻所未闻的。与此类似,某些ISP可能会在除通常预期的端口(端口443或HTTPS,22的SSH等)之外的其他端口上看到加密的流量,以试图隐藏P2P连接和限制(或阻止)连接不方便。
为了方便起见,我个人将SSH保留在标准端口上。只要采取通常的预防措施(严格的密码/密钥策略,限制root用户登录等等),就不必担心,并且可以使用诸如此类的工具来缓解暴力攻击造成的日志文件增长问题。作为fial2ban可以暂时阻止在给定时间间隔内提供过多不良身份验证凭据集的主机。
无论您选择哪个端口,如果您确实远离22,请确保端口低于1024。在大多数类似Unix-a的默认配置中,只有root(或root组中的用户)可以监听1024以下的端口,但任何用户都可以在更高的端口上监听。在较高的端口上运行SSH会增加流氓(或被黑客入侵)用户设法使SSH守护程序崩溃并用其自己的代理或代理替换它的机会。
这是一种通过隐蔽实现的简单(但出奇的有效)安全形式。
如果您的SSH服务器不在端口22上,那么那些扫描整个Internet并在默认帐户中查找弱密码的人就不太可能找到它。如果要扫描整个网络,则无法检查所有可能的64k端口来查找SSH服务器。
但是,如果有人主动将您作为目标,则它没有任何好处,因为简单的一次性nmap
扫描将显示其实际运行的端口。
为了真正避免暴力攻击,请务必遵循以下步骤:
是的,它很有用,因为它有助于避免所有蛮力攻击并有助于保持日志清晰:)
至于由您决定的端口号,我看到公司经常使用1291。我使用更高的内容,尽管只是为了帮助避免使用某些脚本。
不允许root ssh登录并更改端口号,也许不能使用诸如fail2ban之类的东西,那么您应该很聪明。添加iptables以取得良好效果,并使您的内容保持最新,并且您应该不会有任何问题。
使用非标准的ssh端口将需要更多说明和文档,并回答“我无法登录”电子邮件。
我认为在非标准端口上运行sshd 的以下好处比它所产生的问题更重要:
而且,如果您想真正讨厌,可以始终在标准端口22上运行伪造的sshd(使用DenyUsers *),而常规sshd则在端口54321上运行。这将确保您所有的漫游器和入侵者都将永远受益。尝试登录到拒绝所有登录的服务,因为没有人会想到尝试找到真正的 sshd服务。
我的2美分。
出于任何“安全”原因这样做都是虚假的。这是默默无闻的安全性的最佳示例,而不是安全性。
如果您想使日志更轻便,更整洁,那么可以,它很有用,因为您不会得到太多的端口敲门/脚本式暴力破解尝试。
我会在标准端口上运行ssh并使用诸如fail2ban或denyhosts之类的东西来限制字典攻击的数量。
另一个选项是禁用使用密码altogheter的登录,而仅允许使用ssh-keys登录。
我想说的是,更改SSH端口时保护自己免受最大威胁的事情是自动扫描,它将尝试使用标准的用户名/密码来获得访问权限,如果您的密码策略严格,则不必担心他们。
如果禁用密码登录到服务器(强烈建议使用),则更改SSH端口完全没有用。通过禁用密码登录(并要求基于密钥的身份验证),您消除了尝试强行输入密码的可能性,因此,您不必担心端口号。
如果您继续允许基于密码的身份验证,那么您将有可能尝试成功进行暴力破解,或者-根据我的经验,更常见的是-您的密码被盗用,因为您在运行系统时输入密码键盘记录器。
man ssh-keygen
以获取大量信息。
没有答案,但是评论太久了,所以我来做这个CW。
我已经思考了一段时间,得出的结论是,朱利安诺(Juliano)在对阿尼塔克(Alnitak)的回答的评论中所说的话有很多道理。尽管如此,我发现通过在端口22上运行SSH使得对它发起任何形式的攻击实在太容易了。
为了解决此问题,我确实在端口22上运行内部SSH服务器,并使用防火墙将高端口转发到目标计算机上的22。正如朱利安诺指出的那样,这通过隐蔽性提供了一些安全性,同时又保留了低端端口的安全性。
我通常不会通过模糊处理来保证安全,并且经常指出,简单的端口扫描将揭示目标端口,从而使模糊处理毫无用处。为了解决这个问题,无论是在办公室还是在家里,我的防火墙(Smoothwall Express)都使用一个名为Guardian Active Response的脚本,该脚本由Snort警报触发。通过观察,我可以告诉您,当您从同一源中击中3个以上不同的端口时,您的数据包将被丢弃直到预设的重置时间。这使得运行端口扫描变得相当困难并且非常耗时,这使得晦涩难懂实际上是物有所值的。实际上,这使我在过去被拒之门外,以至于我为源(家庭或办公室)IP地址设置了一个排除项。
您遇到的问题是,将防火墙设置为仅允许某些IP连接,而老板在他出门在外时厌倦了打开特定IP。如果您要在防火墙上锁定某些IP,那可能会很麻烦。
我在这里想到两件事。更改端口可防止自动攻击。就是这样,但这是那里平均攻击流量的很大一部分...自动化脚本扫描网络。如果更改默认端口,这些攻击应该立即消失。因此在这方面确实有意义。但这对定向攻击没有任何作用,因为如果您有一个特别讨厌的小朋友,攻击者可以从Nessus或NMAP进行扫描以确定您正在使用的端口。
其次,如果您使用的是类似UNIX的服务器,则可以安装Denyhosts之类的实用程序来阻止攻击。如果安装denyhosts,它将监视错误的登录尝试,并且在尝试失败(无论确定次数)之后,它将在指定的时间内禁止IP。Denyhosts还可以与其他denyhost主机进行对话并传递禁令列表,因此,如果攻击者被锁定在Montana的Fred的Linux系统之外,您的系统也将获得该IP的禁止。只要您的用户记住他们的密码,它就非常有用。
这完全取决于您的使用方案。您拥有多少个程序,这些程序对于更改SSH / SCP的连接端口是“痛苦的事情”(并且,如果它们不允许这样做或使您感到痛苦,那么您确实需要亲自考虑更改供应商)。如果只是潜在的恐惧,我会说这不是问题。这是您的老板,要求做的事情不是完全古怪的,因为许多系统管理员确实打开了SSH端口(有些人讨厌那些讨厌任何因模糊而闻到安全隐患的人……但确实确实减少了)自动扫描产生的背景杂讯。)
失败了-更改端口会阻止自动脚本和大多数不良流量。不会阻止定向攻击者。也可以考虑安装自动禁止实用程序。如果正确执行,层的安全不会对您造成伤害,更改端口所带来的好处比在大多数情况下所带来的伤害还要大。
我已经在端口> 1024上运行SSH超过5年了。从那以后,我再也没有看到任何端口可以在我的日志文件中尝试(除了我自己)。我管理的服务器使用端口> 1024运行。
许多在端口> 1024上运行的SSH服务器都有自己的网站,该网站非常受欢迎。
如果SSH服务器在我自己的公司中运行,则也许我已经在此处发布了该服务器的IP地址,以便你们可以尝试入侵该服务器。不幸的是,SSH服务器不是我自己的。;-)
但是,您还必须设置其他东西才能使其安全。仅SSH> 1024还是不够的。端口号不能在/ etc / services中,必须使用端口转发(例如,端口1124-> 22),必须禁用对Root的直接访问。
因此,如果您想争论一点,最好在几年内在端口> 1024上运行SSH。
p / s:1124不是我的SSH端口号。哈哈。
无论“默默无闻的安全”人群的抱怨声如何,它的效果都很好。
傻兔子,一切安全就是默默无闻的安全。仅仅因为您认为晦涩的加密协议Z [需要DNA样本,共享密钥的组合以及不可能由人类密码实际键入的组合]实际上是安全的,所以并非如此。事实是,任何安全措施都取决于用户的概率和假设。如果我知道如何利用这个假设,那对您来说太糟糕了,但是确实存在。
无论如何,
我们已经这样做了多年,同时还包括:a)限制连接尝试的速度(但是,我不知道我们如何设置它,在ssh配置中有所设置),以及b)禁止任何主机使用字典攻击进行脚本攻击的脚本X在Y分钟内猜错了。我们禁止主机建立连接一段时间,这使得更容易适应不断变化的网络拓扑。
如果您的密码足够复杂,并且只能在15分钟内进行3次尝试,则不必担心。同样,监视分布式攻击也不难-我们通常通过子网和ip进行整理,以排除这种情况。
最后,您只需要一个秘密的松鼠方法,即可通过修改f / w规则来允许连接到您的端口。它可以是任何东西... smtp,web,魔术dns查询。诸如SecurID或Wikid之类的东西只会将更多信息移交给第三方。而且不要让我开始通过第三方获取安全证书。