在 Linux 中,~1000 以下的端口具有特权。也就是说只有root才能绑定它们。原因有多种,其中包括安全性:知道绑定这些端口之一的任何东西CAP_NET_BIND_SERVICE
在占用该端口时都在服务器上具有 root (或由 root 指定)。它不太可能是伪装成您的应用程序的东西。
我想将 SSH 移至一个不起眼的端口。这样做很容易,但如果被黑客攻击,有可能会用更糟糕的东西取代本机 OpenSSH,这可能会给我带来更多问题。
出于这些原因,我想将我的高端口指定为特权端口,以便只有我的 root 运行的 OpenSSH 实例可以绑定它。
Linux 中是否存在任何机制允许我这样做?
答案1
我不相信您可以更改特权端口,但您可以通过使用iptables
将高端口重定向到ssh
在端口 22 上运行来执行类似的操作。
我自己没有做过,但类似:
iptables -t nat -A PREROUTING -p tcp --dport <high port number> -j REDIRECT --to-ports 22
可能有效。