如果您拥有强密码和/或证书,
编辑:
我还应该提到我正在使用iptables规则限制蛮力攻击,每个IP每分钟仅允许5次登录尝试地址。
#1 楼
互联网是一个狂野而令人恐惧的地方,充满了不满情绪,其动机从好奇心一直到犯罪活动。这些令人讨厌的东西正在不断扫描运行希望利用的服务的计算机。通常是较常见的服务,例如SSH,HTTP,FTP等。扫描通常分为以下两类之一:侦察扫描以查看这些服务打开了哪些IP地址。 br />利用漏洞扫描程序扫描发现正在运行特定服务的IP地址。
考虑到Internet的规模,通常无法查看每个IP地址的每个端口来查找正在侦听的内容到处。这是更改默认端口的建议的症结所在。如果这些不满的人想找到SSH服务器,他们将开始探测端口22上的每个IP地址(他们还可能添加一些常见的替代名称,例如222或2222)。然后,一旦开放端口22的IP地址列表,他们将开始使用密码蛮力猜测用户名/密码或启动他们选择的利用工具包,并开始测试(至少对他们而言)目标系统上的漏洞。
这意味着,如果将SSH端口更改为34887,则该扫描将绕过您,可能导致后续入侵未将您作为目标。
看起来红润吧?但是存在一些缺点。
客户端支持:连接到服务器的每个人都需要知道并使用更改后的端口。如果您处于受严格管理的环境中,则可以将此配置下推到客户端,或者如果用户数量少,则应该易于通信。
文档例外:大多数网络设备(例如防火墙和IDS)都是为在公共端口上运行的公共服务预先设置的。该设备上与此服务相关的所有防火墙规则都需要检查并可能需要修改。同样,将对IDS签名进行调整,以便仅在端口22上执行SSH检查。您需要在每次更新时使用新端口修改每个签名。 (作为数据点,目前有136个涉及SSH的VRT和ET snort签名)。
系统保护:现代Linux经常附带内核层MAC和/或RBAC系统(例如,基于RedHat的SELinux或基于Debian的AppAmor。 ),并且仅允许应用程序完全执行其预期的操作。范围从访问
/etc/hosts
文件到写入特定文件或在网络上发送数据包。根据系统的配置方式,默认情况下,它可能禁止sshd
绑定到非标准端口。您需要维护一个允许该策略的本地策略。其他方监视:如果您有外部信息安全部门或外包监视,则需要使他们知道更改。在执行安全评估或分析日志以查找安全威胁时,如果我看到在非标准端口上运行的SSH服务器(或者在非UNIX / Linux上运行的SSH服务器),则将其视为潜在的后门程序并调用事件处理过程的受损系统部分。有时,在致电管理员并被告知是合法的之后的5分钟内就可以解决该问题,此时我会更新文档,而其他时候确实需要妥善处理。无论如何,这可能会导致您的停机时间,或者至少当您接听电话并听到以下消息时会产生紧张的电话:“嗨,这是信息安全办公室的鲍勃。我有几个问题要问您。 。”
在更改端口之前,您需要考虑所有这些因素,以使您知道自己在做出最佳决定。这些缺点中的一些可能并不适用,但肯定会适用。还请考虑您要保护自己免受攻击的内容。通常,仅将防火墙配置为仅允许从特定主机(而不是整个Internet)访问22个主机会更容易。
评论
此外,像fail2ban这样的软件将比任意更改端口号更好地保护您的系统。
– Shadur
13年9月9日在19:41
@Shadur的确,那或denyhosts是很好的主动防御。
–斯科特包
13年3月9日在20:12
@Shadur:请参阅http://en.wikipedia.org/wiki/Defense_in_depth_(计算)。如果X是比Y更好的安全策略,则可能是使用X的原因,但(它本身)并不是避免使用Y的原因。ScottPack的回答给出了使用默认端口可能更好的实际原因。 ;您的评论没有。
–ruakh
13年3月9日在22:03
请注意,在超过1024个端口(即非特权端口)上运行SSH实际上可能是一个安全漏洞。只有root用户可以绑定特权端口(<1024),因此您可以知道,此处运行的服务至少是由root用户启动的。假设您在端口2222上运行SSH,而sshd由于某种原因而崩溃。现在,任何本地用户都可以在端口2222上启动自己的(伪)sshd,这可能会做坏事,例如窃取密码!
–汤姆·马修纳尔(Tom Marthenal)
13 Mar 10 '13 at 6:42
@ RandomUs1r:我相信我们中至少有一个人误解了另一个。更改端口不会对传输速度产生任何影响。
–斯科特包
13年3月18日在17:35
#2 楼
是的,可以这样做,不是通过提高安全性,而是可以减少服务器上失败的登录尝试次数。我总是更改默认的ssh以减少从ossec收到的警告。另外,如果您使用的是真正随机的端口,但仍然有人试图访问您的计算机,则很有可能是有针对性的攻击,而不是随机的扫描程序。#3 楼
就像其他人所说的那样,将SSH放置在22以外的端口上将更不可能使它受到随机扫描的攻击。如果攻击者试图获取您的服务器,而不是任何服务器,您将成为目标。我有一台
ssh
绑定到随机高端口的服务器。而且我在端口22上有一个ssh honeypot,它将通过“拒绝访问”消息来响应任何登录尝试。我不认为这是默默无闻的防御,而是深度防御:要攻击我的服务器,攻击者必须首先找到端口。如果我有几个虚假的蜜罐(很多端口重定向到同一个蜜罐),则攻击者将击中大量的虚假对象,并且无法知道它是否击中了真实的ssh。
这是不过,只有防守。我也处于活动状态,因此如果有人尝试使用portcan,他们将被封锁一个小时。如果他们在正确的ssh上强行破解密码,他们将在一个小时内收到“拒绝访问”信息。如果他们成功猜出了密码,则会向他们显示PAM提示,要求您提供Google Auth令牌。
更改端口的成本非常低,我认为不利的一面是有好处的。
#4 楼
由于大多数人都在谈论缺点(这是真实的),因此我想在这里分享几个优点:您真的想避免自动攻击。除非您是知名用户,否则绝大多数攻击都不会针对您,而是自动尽力而为攻击,而这些攻击只会尝试默认端口。避免它们有多种帮助:
减少攻击面(大多数自动攻击)
由于sshd或使用的scrypt或加密库中的错误,可以减少暴露。诸如heartbleed之类的一些错误仅通过连接到开放端口即可利用服务器,即使不知道任何密码或密钥也是如此。通过使用非标准端口,您可以避免这种情况。
诸如弱专用密钥之类的一些错误使自动攻击可以在应用补丁之前将服务器归零。再次使用非标准端口可避免出现第一波攻击者,并为您提供更多的修补时间。
您可以减少日志中的混乱情况,从而节省了查看日志时的大量管理时间,使您可以将精力集中于更具问题性的针对性攻击上。
与提到的纠缠相比,它可以以更少的工作量提供更好的保护更新(5次错误登录后阻止IP,这将允许某些攻击,尤其是在IP不断变化的情况下;尤其是在IPv6世界中,每个攻击者将拥有数十亿的空闲资源;而恶意信息会产生误报,从而将合法用户拒之门外,有时,甚至是好的密码也会遭到破坏(可能是由于其他地方的一些其他错误,或者是不小心的用户在键盘记录的计算机上输入了这些错误),并存储在以后用于攻击的字典中。同样,随机端口将避免此类自动化攻击的绝大多数(大多数键盘记录程序将仅保存用户名/密码对,而不会在配置中寻找端口)。
不管攻击者没有想到的是,它总是要么完全将其关闭,要么为他创造更多的工作,要么使您成为一个不太有趣的目标。并且也增加了您检测和防御攻击的时间。
在端口> 1024上运行不需要sshd以root用户身份运行,这允许只需要一个用户即可运行它,从而避免了一个完整的类错误(即使某些sshd实现在不需要时以降低的特权运行时也应格外小心)。
#5 楼
更改端口只会停止对SSH和某些脚本小子的自动攻击。如果有人将您作为目标,那么他们可以完善新的SSH端口。好处是,它可以停止日志中失败的登录尝试。我通常在另一个端口上运行Logwatch和SSH之类的东西,并且在我的sshd_config中将PasswordAuthentication设置为no。#6 楼
我想这取决于您对服务器进行修补的速度,以及服务器前面是否有任何类型的防火墙。如果要让服务器对服务器开放世界,并且没有任何设置来提醒您或自动安装OpenSSH补丁,那么我建议将服务器移至随机的高编号端口。
最终,尽管移动端口号并不能阻止所有人它会阻止只检查端口80、22、23等的脚本小子,但不会阻止有人进行1-65535扫描。
评论
但是需要大量资源才能对目标列表上的每个主机执行1-65535扫描,因此这种情况不太可能发生。那些只检查公共端口的人不仅是脚本小子。熟练的攻击者也这样做是为了快速找到最容易受到攻击的主机(即,如果他们确实找到了SSH并且它位于不同的端口上,则意味着管理员很聪明,并且可能还需要采取一些其他安全措施,因此这是一个困难的目标甚至都不值得寻找)。
–米歇尔·约翰逊(Micheal Johnson)
16年3月3日在14:36
#7 楼
正如其他人已经指出的那样,从安全角度来看,更改默认的SSH端口并不会给您带来多少好处。但是,如果您打算从管理员锁定端口22的网络连接到计算机,这样做仍然是有利的。(除默认情况下,许多学校,工作场所和免费WiFi热点都阻止了所有传出流量。 DNS,HTTP和HTTPS端口。)在这种情况下,将SSH端口更改为53、80或443(或将路由器将其中一个端口转发为22)通常可以让您在学习/工作/出行。在极少数情况下,这些网络可能不仅会阻塞端口,还会检查流量以过滤出ssh连接。对于这种情况,您需要研究其他替代方法。
#8 楼
这是一个哲学问题:“控制X有用吗?”正如最佳答案所指出的那样,您还应该考虑“控制X的成本是什么(客户支持,文档豁免,系统支持,监视支持,以及我将直接支付的成本,许可成本等)?”在某些情况下,任何事情都是有帮助的。询问自己所处的上下文是一个好主意。有时,上下文是合规性之一-您正在部署控件X以满足特定要求。 “我必须移动ssh端口,因为系统策略禁止端口22上的侦听器。”然后要么做,申请例外,要么努力更改策略。 [恕我直言,这是不明智的政策。]
在这里,上下文可能是“我是一个随机的人,主机处于不受控制的网络中,我不想失去控制我的盒子。”攻击始终处于调查阶段-如果调查是“在端口22上发送SYN并查看谁回答”,则说明您正在防御该特定威胁媒介。 (如果调查是“执行端口扫描,收集标语,然后查看是否出现任何有趣的事情”,那么您的控制就无效了。)但是现在,您已经为自己做了很多工作-如果您使用的是工具要连接到服务器,您需要弄清楚如何在该非标准端口上工作-以及使用某些工具,这甚至是不可能的。总的来说,在这种情况下,我不建议更改端口。
注意到的一个好处是减少了与误报相关的日志事件。我实际上发现那是负面的!端口22上持续不断的入站攻击实际上可能会有所帮助-如果它们停止了,则说明Internet订阅源有问题。我认为感知到的好处是错误的-正确的答案是调整异常检测系统,以过滤掉来自外部网络的失败登录尝试。
评论
如果您能确定此要求是否来自专业办公环境,我将不胜感激?我只是未删除我以前删除的帖子,因为我得到站点前辈的负面反馈:)。感谢您提供表达我思想的空间。
我更改了可访问Internet的NAS驱动器上的SSH端口,以便该驱动器不必每小时仅旋转两次以记录一次失败的登录尝试。
有理由将“默默无闻的安全性”视为一个粗鲁的词。
这篇博文很好地解释了为什么不应该在其他端口上使用SSH。我想两种观点都有点,但这确实让我思考。 >为什么将SSH放置在22以外的其他端口上不是一个好主意>adayinthelifeof.nl/2012/03/12/…