我们再说一遍,我们都会犯错,我刚刚做了一个。
简要历史:我在租用的 VPS(Debian)上做一些事情时,注意到了一些奇怪的行为。使用命令时,netstat
我看到了通过 SSH 的未经授权的连接。我不知道该怎么做,所以我决定使用以下命令关闭他的连接iptables
:
iptables -A INPUT -p tcp --dport ssh -s IP -j DROP
但我很累,我写道
iptables -A INPUT -p tcp --dport ssh -j DROP
然后我把自己(和所有人)踢出去了……
我该如何解决?
答案1
还有几种替代方案:
- 查看他们是否具有 IPMI /“KVM”/控制台对服务器的访问权限,这样您就可以像插入物理键盘一样控制它。
- 如果他们不提供该服务,请查看是否可以将 VM 启动到恢复 Linux CD(某些提供商提供此功能),然后通过这种方式更正防火墙规则,然后像正常一样启动它。
如果您没有控制台访问权限,在启动恢复或将卷连接到另一个虚拟机之前(如 Amazon 的情况,感谢 user3550767 的回答),您可以尝试 Ankh2054 的回答,即如果您尚未保存规则(很可能是因为您在有机会保存之前就退出了),则先重新启动。使用控制面板或请某人使用非正常重置/关机(也称为硬重启或硬关机)对其进行电源循环,以防 init 脚本在正常重启时自动保存规则(感谢 @jfalcon、@joshudson)。
权衡这样做的缺点(例如,重启期间写入的数据可能会丢失,并且在启动时可能需要检查文件系统,因此启动时间会更长,尽管该延迟可能比启动到恢复的时间要短)。
答案2
如果你还没有保存 IPtables 规则,你可以重启 VPS 上的服务器(如果可用)并且规则应该消失。
答案3
这就是人工帮助热线的作用。致电服务提供商,让他们的接线员为您移除规则。
答案4
正式答复:进入 VPS 管理面板,以某种方式获取本地访问权限(虚拟 KVM)或致电他们。
解释防止再次上当的步骤/规则:
- IP、路由和防火墙规则的变化可能会出现问题并阻止您的访问。
- 并且它也适用于专用网络设备配置,而不仅适用于 VPS。
因此,除非您 100% 确定可以恢复,否则我建议始终找到一种方法将网络配置重置为以前的状态,例如,使用screen
、nohup
或打开后台会话tmux
,甚至cron
可能适用于此,并添加iptables -F
或其他所需方法将任何内容重置为以前的状态。