Accidentalmente prohíbo la conexión SSH a un servidor remoto ... ¿Qué sigue?

61

Digámoslo de nuevo, todos cometemos errores , y acabo de cometer uno.

Una breve historia: estaba haciendo algunas cosas en un VPS (Debian) que estoy alquilando, cuando noté un comportamiento extraño. Usando el netstatcomando vi una conexión no autorizada a través de SSH. No sabía qué hacer, así que decidí cerrar su conexión usando iptables:

iptables -A INPUT -p tcp --dport ssh -s IP -j DROP

Pero estoy cansado y escribí

iptables -A INPUT -p tcp --dport ssh -j DROP

y me eché a mí mismo (y a todos los demás) ...

¿Cómo puedo solucionar esto?

tomateGuy
fuente
1
no, porque está bloqueando todos los paquetes ssh en la máquina. en una subred mal configurada, simplemente debe hacer tcpdump para esa dirección mac, obtener la subred en la que se está armando, luego configurar un nic virtual en la misma subred y hablar con ella.
jfalcon alias Don Fanning
50
Bueno, ciertamente eliminó el acceso para el individuo no autorizado, al menos.
un CVn
2
Para la próxima vez, quizás el cambio de un hombre muerto sería útil.
Wayne Conrad
2
¿Quién es tu anfitrión? Muchos hosts VM ofrecen una consola en serie que le permite SSH en casos donde no puede hacerlo desde una ubicación remota.
Jon

Respuestas:

60

Hay varias alternativas:

  • Vea si tienen acceso IPMI / "KVM" / consola al servidor que le permite controlarlo como si tuviera un teclado físico conectado.
  • Si no ofrecen eso, vea si puede iniciar la VM en un CD de recuperación de Linux (algunos proveedores ofrecen esto) y luego corrija las reglas del firewall de esa manera y luego inicie como de costumbre.
  • Si no tiene acceso a la consola, antes de iniciar la recuperación o adjuntar el volumen a otra VM (como en el caso de Amazon, acredite la respuesta del usuario 3550767), puede probar la respuesta de Ankh2054 de reiniciar primero si no ha guardado las reglas ( probablemente el caso ya que te echaste antes de tener la oportunidad de ahorrar). Use el panel de control o pídale a alguien que lo reinicie usando un reinicio / apagado no agraciado (también conocido como reinicio forzado o apagado forzado) en caso de que el script de inicio guarde las reglas automáticamente al reiniciar con gracia (crédito @jfalcon, @joshudson).

    Sopese los inconvenientes de esto (por ejemplo, los datos que se escriben durante el reinicio pueden perderse y la verificación del sistema de archivos puede ser necesaria en el arranque, por lo que el tiempo de arranque es mayor, aunque ese retraso puede ser menor que el arranque para la recuperación).

g491
fuente
1
dependiendo del servidor vps, puede que no haya un acceso remoto al que pueda llegar. Los sistemas como vmware, kvm, xen, etc. tienen consolas pero no están configurados para el consumo público. cierra que sí permite que esta forma de control público sea tachuela abierta.
jfalcon alias Don Fanning
44
Dicho esto, si está en Amazon / Google Space, podría capturar la unidad y montarla desde otra máquina virtual para hacer la reparación.
jfalcon alias Don Fanning
47

Si aún no ha guardado la regla de IPtables, puede reiniciar el servidor en VPS (si está disponible) y la regla debería desaparecer.

Ankh2054
fuente
a menos que el script de inicio guarde las iptables durante el apagado.
jfalcon alias Don Fanning
3
@jfalcon: Es por eso que puedes pedirles que desconecten el enchufe virtual.
joshudson
22
@jfalcon Esa es también la razón por la cual es una mala idea guardar automáticamente en el apagado ... hacer que el guardado sea una decisión consciente del administrador del sistema, no algo ejecutado a ciegas por el sistema.
un CVn
@joshudson: Tienes que decirle al mono de reinicio exactamente qué hacer y forzar el apagado. No solo iniciar un apagado.
jfalcon alias Don Fanning
@ MichaelKjörling: Esta filosofía también está mal. Este es un VPS tan probable que esté haciendo sandbox en sus aplicaciones y no tiene control sobre quién toca el interruptor de encendido. Y no tiene idea de cómo el alojamiento VPS configuró sus compilaciones. No hay nada de malo en guardar en el apagado. Su error fue su error. El movimiento inteligente en primer lugar habría sido colocar SSH en un puerto no estándar o usar fail2ban en lugar de reaccionar con una reacción de pánico.
jfalcon alias Don Fanning
30

Para eso están las líneas de ayuda con personal humano. Llame al proveedor de servicios y haga que uno de sus operadores elimine la regla por usted.

RobertG
fuente
3

Una forma general de arreglar una instancia rota es cerrarla y adjuntar el volumen raíz a una instancia de trabajo. Luego puede montar el volumen allí y ver registros o editar archivos de configuración. Luego puede separar el volumen e iniciarlo en su propia instancia.

usuario3550767
fuente
2
Verdadero para AWS VPSes; No es generalmente cierto.
MadHatter
@MadHatter Los detalles exactos pueden variar, pero si un proveedor de VPS no ofrece ningún método para arrancar con una imagen de trabajo conocida desde donde puede montar y reparar su sistema de archivos raíz, entonces esperaría que cerraran su negocio una vez que los clientes aprendí sobre esa limitación.
kasperd el
Por lo general, lo hacen ofreciendo acceso a la consola, por lo que puede arrancar en modo de usuario único o desde medios de rescate (generalmente abstraídos como un ISO). Declaro que, de hecho, eso es mucho más normal que la extraña forma de manejar el problema de AWS, donde un segundo VPS es (temporalmente) un requisito.
MadHatter
@MadHatter ¿Cuál de los dos enfoques parece extraño puede muy bien depender de con qué esté más familiarizado? Y cualquier enfoque hace el trabajo. Cuál es el más común sobre el que realmente no puedo comentar, ya que hasta ahora solo necesitaba ese acceso en un solo proveedor de VPS.
Kasperd
@kasperd: No, lo que use depende de lo que admita un proveedor de VPS determinado; No es una cuestión de elección. Si usa AWS, monta el volumen en otro VPS; Si está utilizando un proveedor VPS más normal, inicia un solo usuario o desde medios de rescate. No considero que este punto sea un imbécil (bueno, no del todo), sino que es importante apreciar que uno tiene que averiguar cuáles son los métodos admitidos por el proveedor y luego usarlos. Intentar utilizar el método AWS con, digamos, Hetzner simplemente no funcionará , porque un servidor de Hetzner no puede ver el FS de otro (afaik).
MadHatter
3

Respuesta formal: vaya al panel de administración de VPS, obtenga acceso local (KVM virtual) de alguna manera o llámelos.

Explicación de pasos / reglas para evitar caer de nuevo:

  1. Hay cambios en las reglas de ip, enrutamiento y firewall que pueden salir mal y bloquear su acceso.
  2. y se aplica también a la configuración de dispositivos de red dedicados, no solo a VPS

Así que a menos que esté 100% seguro de que se puede recuperar .. Recomiendo hacer siempre una manera de restablecer config de la red a su estado anterior .. como, sesión de fondo abierto, ya sea con screen, nohupo tmuxincluso cronpuede trabajar para esto, y añadir iptables -Fo otros medios deseados para restablecer cualquier cosa al estado anterior.

kagali-san
fuente