我看到过一些建议说你应该为私有应用程序(例如内部网、私有数据库以及任何外部人员不会使用的东西)使用不同的端口号。
我不完全相信这可以提高安全性,因为
- 存在端口扫描器
- 如果某个应用程序存在漏洞,那么无论其端口号是多少,它都存在漏洞。
我是否遗漏了什么或者我已经回答了我自己的问题?
答案1
它无法提供任何针对目标攻击的严肃防御。如果您的服务器成为目标,那么正如您所说,他们会对您进行端口扫描并找出您的门户在哪里。
但是,将 SSH 从默认端口 22 移出将阻止一些非针对性和业余脚本小子类型的攻击。这些是相对不熟练的用户,他们使用脚本一次对大量 IP 地址进行端口扫描,专门查看端口 22 是否开放,当他们发现端口 22 开放时,他们会对其发起某种攻击(暴力破解、字典攻击等)。如果您的机器位于被扫描的 IP 块中,并且没有在端口 22 上运行 SSH,那么它将不会响应,因此不会出现在该脚本小子攻击的机器列表中。因此,它提供了一些低级安全性,但仅针对这种类型的机会性攻击。
例如,如果您有时间,请对您的服务器进行日志挖掘(假设 SSH 在端口 22 上),并找出所有唯一失败的 SSH 尝试。然后将 SSH 从该端口移出,等待一段时间,然后再次进行日志挖掘。您无疑会发现更少的攻击。
我曾经在公共网络服务器上运行过 Fail2Ban,当我将 SSH 从端口 22 移开时,这一点非常非常明显。它将机会性攻击减少了几个数量级。
答案2
这对于保持日志清洁非常有帮助。
如果你看到在端口 33201 上运行 sshd 的尝试失败,那么你可以放心地假设该人的目标是你如果您愿意,您可以选择采取适当的行动。例如联系当局,调查此人是谁(通过交叉引用您注册用户的 IP 或其他方式)等。
如果您使用默认端口,那么就不可能知道是否有人在攻击您,或者只是随机的白痴在进行随机扫描。
答案3
不,不是。不是的。这个术语是隐秘的安全而且这不是一个可靠的做法。你的两点都是正确的。
通过隐蔽性实现的安全最多只能阻止那些四处寻找默认端口的随意尝试,因为他们知道在某个时候他们会找到某人谁把前门打开了。但是,如果您面临任何严重威胁,更改默认端口最多会减缓初始攻击,但正如您已经指出的那样,这种减缓作用非常有限。
帮自己一个忙,正确配置你的端口,但采取适当的预防措施,用适当的防火墙、授权、ACL 等锁定它们。
答案4
正如其他人指出的那样,更改端口号并不能给您带来太多的安全性。
我想补充一点,更改端口号实际上可能会损害您的安全。
想象一下以下简化的场景。一个黑客扫描了 100 台主机。其中 99 台主机在以下标准端口上提供服务:
Port Service
22 SSH
80 HTTP
443 HTTPS
但是有一家主机商脱颖而出,因为系统所有者试图混淆他们的服务。
Port Service
2222 SSH
10080 HTTP
10443 HTTPS
现在,这可能会让破解者感兴趣,因为扫描结果表明了两件事:
- 主机所有者试图隐藏其系统上的端口号。也许所有者认为系统上有一些有价值的东西。这可能不是一个普通的系统。
- 他们选择了错误的方法来保护他们的系统。管理员犯了一个错误,相信端口混淆,这表明他们可能是一个缺乏经验的管理员。也许他们使用端口混淆来代替适当的防火墙或适当的 IDS。他们可能还犯了其他安全错误,并且可能容易受到其他安全攻击。现在让我们进一步探究一下,好吗?
如果你是一名破解者,你会选择查看 99 台在标准端口上运行标准服务的主机中的一台,还是查看这台使用端口混淆的主机?