我已经看到建议说,对于私有应用程序,您应该使用不同的端口号(例如,内部网,私有数据库,没有任何外部人会使用的端口)。
我并不完全相信可以提高安全性,因为
- 存在端口扫描器
- 如果某个应用程序容易受到攻击,则无论其端口号如何,它都将继续存在。
我错过了什么还是我回答了自己的问题?
我已经看到建议说,对于私有应用程序,您应该使用不同的端口号(例如,内部网,私有数据库,没有任何外部人会使用的端口)。
我并不完全相信可以提高安全性,因为
我错过了什么还是我回答了自己的问题?
Answers:
它没有针对目标攻击提供任何严肃的防御。如您所说,如果您的服务器是目标服务器,则它们将对您进行端口扫描,并找出您的门在哪里。
但是,将SSH从默认端口22移开将阻止一些非目标性和业余脚本的儿童类型的攻击。这些是相对不老练的用户,他们使用脚本一次扫描端口较大的IP地址,以专门查看端口22是否打开,并在发现端口22时对它们发起某种攻击(强力攻击,字典攻击,等等)。如果您的计算机位于要扫描的IP块中,并且未在端口22上运行SSH,则它不会响应,因此不会在计算机列表中显示此脚本小子来攻击。因此,提供了一些低级安全性,但仅针对这种机会性攻击。
举例来说,如果您有时间-在服务器上登录潜水(假设SSH在端口22上),然后撤出所有唯一的失败SSH尝试。然后将SSH移出该端口,等待一段时间,然后再次进行日志潜水。无疑,您将发现更少的攻击。
我曾经在公共Web服务器上运行Fail2Ban,当我将SSH从端口22移开时,这确实非常明显。这将机会性攻击减少了几个数量级。
保持日志清洁非常有帮助。
如果您看到在端口33201上运行sshd的尝试失败,则可以放心地认为此人以您为目标,并且您可以根据需要选择采取适当的措施。例如,与当局联系,调查此人可能是谁(通过与您的注册用户的IP或其他IP进行交叉引用等)。
如果您使用默认端口,那么就不可能知道有人在攻击您,还是只是白痴在随机扫描。
不,不是。并不是的。术语是“ 默默无闻的安全性”,这不是可靠的做法。您的两点都正确。
默默无闻的安全性充其量可以阻止那些偶然的尝试,这些尝试只是为了寻找默认端口而已,因为他们知道在某个时候他们会发现有人打开了前门。但是,如果您面临任何严重的威胁,则更改防御端口最多只会减慢最初的攻击速度,但是由于您已经指出的情况,这种影响只会很小。
帮自己一个忙,并正确配置端口,但要采取适当的预防措施,使用适当的防火墙,授权,ACL等将其锁定。
这只是一个微不足道的水平,但是在黑客入侵的道路上并不是一个明显的速度颠簸。这是一个难以长期支持的配置,因为必须告知与该特定服务有关的所有信息有关不同的端口。
曾几何时,为了避免网络蠕虫是一个好主意,因为这些蠕虫往往只扫描一个端口。但是,蠕虫迅速繁殖的时代已经过去。
正如其他人指出的那样,更改端口号并不能为您提供很大的安全性。
我想补充一点,更改端口号实际上可能对您的安全有害。
想象以下简化方案。破解程序可扫描100台主机。这些主机中有九十九个在以下标准端口上提供服务:
Port Service
22 SSH
80 HTTP
443 HTTPS
但是随后有一个主机在人群中脱颖而出,因为系统所有者试图混淆他们的服务。
Port Service
2222 SSH
10080 HTTP
10443 HTTPS
现在,这对于破解者可能很有趣,因为该扫描显示出两件事:
如果您是黑客,那么您会选择查看在标准端口上运行标准服务的99台主机之一,还是使用端口混淆的一台主机?
我将至少部分地与大趋势背道而驰。
就其本身而言,更改为其他端口可能会在搜索时使您花费几秒钟的时间,因此,从根本上讲,您不会获得任何收益。但是,如果将非标准端口与反端口扫描措施结合使用,则可以真正提高安全性。
这是适用于我的系统的情况:非公共服务在非标准端口上运行。在指定的时间内,尝试从单个源地址到两个以上端口的连接(无论成功与否)都将导致来自该源的所有流量被丢弃。
要击败该系统,将需要运气(在被阻塞之前先击中正确的端口)或需要触发其他措施的分布式扫描,或者需要很长的时间才能注意到并采取措施。
我认为移动应用程序运行的端口根本不会提高安全性-仅仅是因为同一应用程序仅在不同的端口上运行(具有相同的优点和缺点)。如果您的应用程序存在漏洞,则将其侦听的端口移动到另一个端口将无法解决该漏洞。更糟糕的是,它会积极地鼓励您不要解决该弱点,因为现在自动扫描并不会不断对其施加不利影响。它隐藏了真正的问题,这是应该实际解决的问题。
一些例子:
真正的问题是管理上的:人们期望SSH达到22,MSSQL达到1433,依此类推。解决这些问题又是一层复杂性和所需的文档。坐在一个网络上并且不得不使用nmap只是想弄清楚事情已经转移到哪里很烦人。安全性充其量只是短暂的,缺点也不是很小的。不要这样 解决实际问题。
您是正确的,它不会带来太多的安全性(因为TCP服务器端口范围只有16位熵),但是您可能出于其他两个原因而这样做:
备注:我并不是说您应该更改服务器端口。我只是在描述更改端口号的合理原因(IMO)。
如果这样做,我认为您需要向所有其他管理员或用户明确说明,这不应被视为安全功能,并且所使用的端口号甚至都不是秘密,并且应将其描述为安全功能。带来真正安全性的行为不被视为可以接受的行为。
我可以看到一种假设的情况,即在备用端口上运行sshd可能会带来安全方面的好处。在这种情况下,您正在运行的sshd软件中发现了一个被利用的远程漏洞。在这种情况下,在备用端口上运行sshd可能会给您额外的时间,而您不必成为随机的随身目标。
我本人确实在私人计算机上的备用端口上运行sshd,但这主要是为了减少/var/log/auth.log中的混乱情况。在多用户系统上,我真的不认为上面介绍的假设的安全性小好处是没有在标准部件上发现sshd引起额外麻烦的充分原因。
它稍微增加了安全性。因为攻击者发现开放端口后,现在必须弄清端口上正在运行的内容。无法访问您的配置文件(尚未:-)),他不知道端口12345是否正在运行http,sshd或其他一千种常见服务,因此它们需要做一些额外的工作来弄清楚正在运行的内容,然后才能认真对待攻击它。
同样,正如其他发布者指出的那样,尝试登录端口22可能是笨拙的脚本小子,僵尸木马甚至是错误输入IP地址的真实用户。几乎可以肯定,尝试登录端口12345可能是真实用户,还是严重的攻击者。
另一个策略是拥有一些“陷阱”端口。由于没有真正的用户知道这些端口号,因此任何连接尝试都必须被认为是恶意的,您可以自动阻止/报告有问题的IP地址。
在特殊情况下,使用不同的端口号肯定会使您的系统更安全。如果您的网络运行的是诸如Web服务器之类的公共服务,而且还运行内部仅供内部使用的Web服务器,则可以通过在其他端口号上运行并从该端口阻止任何外部访问来绝对阻止任何外部访问。
x
一段时间。它已被证明对端口扫描有效。当然,这只是安全性工具箱中的一种工具。