![使用高端口号是否安全?(回复:模糊 Web 服务)](https://linux22.com/image/1241257/%E4%BD%BF%E7%94%A8%E9%AB%98%E7%AB%AF%E5%8F%A3%E5%8F%B7%E6%98%AF%E5%90%A6%E5%AE%89%E5%85%A8%EF%BC%9F%EF%BC%88%E5%9B%9E%E5%A4%8D%EF%BC%9A%E6%A8%A1%E7%B3%8A%20Web%20%E6%9C%8D%E5%8A%A1%EF%BC%89.png)
我有一个小型家庭网络,我正在尝试平衡安全性和便利性的需求。保护内部网络服务器的最安全方法是仅使用 VPN 进行连接,但这对于保护 DVR 远程网络界面(例如)来说似乎有些过头了。
作为一种折衷,使用非常大的端口号会更好吗?(例如五位数字,最多 65531)
我读到过端口扫描器通常只扫描前 10,000 个端口,因此使用非常高的端口号会更安全一些。
这是真的?
有没有更好的方法来保护网络服务器?(即应用程序的 Web GUI)
答案1
我读到过端口扫描器通常只扫描前 10,000 个端口,因此使用非常高的端口号会更安全一些。
许多人相信这一点。我不相信。
也许它更安全一些,但并不安全。编号较低的端口更常见,因此某些扫描仪会首先检查这些端口。
如果我是一名黑客,我会首先扫描高端口,只是为了抓住那些依赖这种方法进行安全保护的人。依赖隐蔽式安全保护的人可能对安全性理解不足,而且更有可能忘记使用其他安全方法。因此,这些服务可能更容易受到攻击,也更容易被破解。
有些扫描器利用了这种信念,从列表顶部开始,然后向下扫描。其他扫描器将在整个范围内随机选择端口,因此所有端口都有同等的机会被扫描。
继续使用以下方法自行测试网络映射。对端口 1-10,000 运行 nmap 扫描并查找 HTTP 服务器,然后将其与对所有 1-65,xxx 端口进行扫描的扫描进行比较。您会发现差异通常为 3-10 分钟。如果我使用 Nessus 之类的工具进行详细扫描,差异有时会达到 20-60 分钟。
优秀的饼干师是有耐心的饼干师。他们会等待。
答案2
使用奇数端口号根本没有安全性,除非您允许以非 root 用户身份运行应用程序。
这种事情可以被认为是通过隐蔽性来实现的安全性,但它实际上并不是安全性。
答案3
如果两端都使用 Linux,那么还可以使用 ssh 隧道:
ssh -f -N -L 9090:localhost:9090 user@remote-host
例如,我使用这种方法将远程主机上的端口 9090 转发到本地端口 9090 cherokee-admin
,并且我对其他 Web GUI 使用类似的设置。您可以通过在应用程序配置中指定它们仅在本地主机(即)上运行来以这种方式保护应用程序127.0.0.1
。这样,它们就无法从外部访问,但您可以使用它们进行转发ssh
。检查man ssh
使用端口转发的更多选项(包括 X,这可能会以另一种方式完全解决您的问题。)
根据您的设置,这可能是实现您的目标的合适方法,无需安装/配置额外的软件。
答案4
如果你的防火墙允许,你可以首先在防火墙级别进行身份验证,如果你的密码复杂度足够高,那么这应该可以加强所暴露服务的安全性。你也可以使用 SSL 隧道,例如隧道和相互认证。
考虑到使用更高的端口号更安全,在某种程度上,可能参考机器人扫描您的 IP 并尝试一些漏洞,但如果有人真的想闯入,使用更高的端口号不会提供更高的安全性。