如果我设置规则,sudo ufw allow from *MY IP* to any port 22
它只允许我访问我的服务器,但如果我的 IP 发生变化,会发生什么?我会失去对服务器的访问权限吗?
答案1
如果您仅允许从您的 IP 进行 ssh 访问,而您的 IP 随后发生变化,那么您将无法访问服务器。但是,使用 进行的更改sudo ufw
不是永久性的,因此,由于您可能无需登录即可以某种方式重新启动服务器,因此您可以恢复。即使您将更改设为永久性的(使用iptables-save
),根据您从哪里获得服务器,您也可能能够使用控制台密码或其他解决方案将其恢复。
我假设您想要做的是保护您的服务器不被整个互联网上的 ssh 端口扫描?我建议让 ssh 监听另一个随机端口,介于 10000 和 49191 之间。
选择流量不大的端口(例如,端口 11111有一些东西,显然被一些木马利用,但是端口 11114似乎大部分都没用过,让我们假设你为了举例子而选择了那一个。
通过在 /etc/ssh/sshd_config 中添加一行,即可让 sshd 监听您选择的端口。该文件已包含该行Port 22
。添加另一行Port 11114
。
您还必须添加防火墙规则以允许从“任何”端口访问您的附加端口。
然后您需要重新加载 sshd。这不会终止您当前的会话。
要进行测试,请先运行lsof -i :11114
和lsof -i :22
。每个运行都应返回以 LISTEN 结尾的行(如果服务器上有 IPv6,则可能返回两个)。如果没问题,请打开第二ssh 会话使用附加端口(这样,如果您弄乱了文件,您将能够使用第一个会话来纠正它)。
完成此操作后,您可以使用所选端口从任何地方登录。然后,您可以将端口 22 与整个互联网隔离开来。
当然可以修改您的 ssh 客户端(可能是 Windows 上的 PuTTY,可能是 Linux 上的 ssh)的配置,以便在联系您的服务器时默认使用您的自定义端口,这样您就不必再考虑它了。
希望这可以帮助!