我意外地禁止通过SSH连接到远程服务器...接下来是什么?


61

再说一遍,我们都犯了错误,而我刚刚犯了一个错误

简要的历史记录:当我注意到某些奇怪的行为时,我正在租用的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
不,因为他阻止了计算机上的所有ssh数据包。在配置错误的子网中,您只需为该mac地址设置tcpdump,将其获取到该子网,然后将虚拟nic配置到同一子网并与之对话。
jfalcon又名Don Fanning,2015年

50
好吧,您肯定至少删除了未经授权的个人的访问权限。
CVn

2
对于下一次,也许死人的开关会派上用场。
韦恩·康拉德

2
你的主人是谁?许多VM主机提供了一个串行控制台,在无法从远程位置进行访问时,可以使用该控制台进行SSH。
2015年

Answers:


60

有几种选择:

  • 查看他们是否对服务器具有IPMI /“ KVM” /控制台访问权限,从而可以像控制物理键盘一样对其进行控制。
  • 如果他们不提供此功能,请查看是否可以将VM引导至恢复linux CD(某些提供商提供了此功能),然后以这种方式更正防火墙规则,然后像通常一样引导它。
  • 如果您没有控制台访问权,则在启动以恢复或将卷附加到另一个VM之前(例如,在Amazon中,请记入user3550767的答案),如果您尚未保存规则,则可以尝试先重启Ankh2054的答案(可能是因为您在有机会储蓄之前就踢了出去)。使用控制面板或要求某人使用非正常的重置/关机(也称为硬重启或硬关机)来关闭电源,以防init脚本在正常重启时自动保存规则(信誉@ jfalcon,@ joshudson)。

    权衡其缺点(例如在重新引导期间写入的数据可能会丢失,并且在引导时可能需要文件系统检查,因此引导时间更长,尽管该延迟可能少于引导到恢复的时间)。


1
根据vps服务器的不同,他可能无法访问远程访问。vmware,kvm,xen等系统具有控制台,但未设置供公众使用。关闭确实允许这种形式的公共控制是openstack。
jfalcon又名Don Fanning,2015年

4
也就是说,如果它在亚马逊/谷歌空间中,他可以对该驱动器进行快照并从另一台虚拟机挂载它以进行修复。
jfalcon又名Don Fanning,2015年

47

如果尚未保存IPtables规则,则可以在VPS上重新引导服务器(如果可用),并且该规则应消失。


除非init脚本在关闭期间保存iptables。
jfalcon又名Don Fanning,2015年

3
@jfalcon:这就是为什么您可以要求他们拔出虚拟插头。
joshudson

22
@jfalcon这也就是为什么在关机时自动保存是个坏主意的原因...让保存由sysadmin明智地决定,而不是由系统盲目执行。
CVn 2015年

@joshudson:您必须确切地告诉重启猴子该怎么做,然后强制关闭电源。不只是启动关机。
jfalcon又名Don Fanning,2015年

@MichaelKjörling:这种哲学也是错误的。这是一个VPS,因此他很可能会沙箱化其应用程序,并且无法控制谁按下电源开关。而且您不知道VPS托管如何配置其构建。保存关闭状态没有错。他的错误是他的错误。首先,明智的做法是将SSH放在非标准端口上,或者使用fail2ban而不是做出惊慌的反应。
jfalcon又名Don Fanning,2015年

30

这就是人员配备热线的用途。致电服务提供商,让他们的运营商之一为您删除规则。


3

修复损坏的实例的一般方法是将其关闭并将根卷附加到工作实例。然后,您可以在此处安装该卷并查看日志或编辑配置文件。然后,您可以分离卷并在其自己的实例中启动它。


2
适用于AWS VPSes; 通常不正确。
MadHatter 2015年

@MadHatter确切的详细信息可能有所不同,但是如果VPS提供者不提供任何方法来引导已知的工作映像,您可以从该映像中挂载和修复根文件系统,那么我希望它们一旦客户就停止营业。了解到该限制。
kasperd 2015年

通常,它们通过提供控制台访问权限来完成此操作,因此您可以以单用户模式启动,也可以从应急媒体(通常抽象为ISO)启动。我认为,这实际上比AWS处理该问题的奇怪方法(通常需要第二个VPS)要正常得多。
MadHatter 2015年

@MadHatter两种方法中哪一种看起来很奇怪,可能取决于您最熟悉的方法。两种方法都可以完成工作。这是我最无法评论的最常见的情况,因为到目前为止,我只需要在单个VPS提供程序上进行此类访问。
kasperd 2015年

@kasperd:否,您所使用的取决于给定的VPS提供程序所支持的;这不是选择的问题。如果使用的是AWS,则将卷安装在另一个VPS上。如果您使用的是更普通的VPS提供程序,则可以启动单用户或从应急媒体启动。我并不是说这是鸡巴(不是,不是全部),而是因为必须认识到提供者支持的方法是什么,然后使用它们,这一点很重要。尝试将AWS方法与Hetzner一起使用根本就行不通,因为一个Hetzner虚拟服务器看不到另一个的FS(afaik)。
MadHatter

3

正式答案:转到VPS管理面板,以某种方式获得本地访问(虚拟KVM)或致电给他们。

防止再次跌倒的步骤/规则的解释:

  1. IP,路由和防火墙规则更改可能会变坏并阻止您的访问。
  2. 并且它也适用于专用网络设备配置,而不仅仅是VPS

所以,除非你是100%肯定可以恢复。我建议总是一种方式来网络配置恢复到以前的状态..喜欢,开放的背景会话使用两种screennohup或者tmux,甚至cron可能对这项工作,并添加iptables -F或其他所需的手段,将任何东西重置为以前的状态。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.