¿Cómo recuperar el acceso SSH después de ser bloqueado por iptables?

10

TL: DR

Hice cambios en mi configuración de iptables y ahora SSH está rechazando todas las conexiones. ¿Puedo arreglar esto sin contactar a mi empresa de hosting?


Versión larga

Ok, esto es probablemente 100% culpa mía ...

En preparación para mover un sitio web a un servidor dedicado, obtuvimos una nueva máquina alojada que ejecuta CentOS 5.6. La máquina tiene iptables bastante bloqueadas, solo permite ssh (22) y http (80) pero también lo necesitamos para aceptar FTP a través del puerto 20 en 21.

Esta tarde agregué líneas a mis iptables para aceptar la conexión entrante a los puertos 20 y 21. Al principio, eso no funcionó porque había una reject alllínea sobre las líneas que agregué para ftp. Así que moví esa línea hacia abajo, guardé y reinicié iptables y ftp estaba funcionando.

2 horas después, cuando intento conectarme de nuevo, lo port 22: Connection refused mismo para http.

Entonces, no puedo acceder al servidor a través de SSH, ¿hay alguna forma de que pueda solucionar esto sin contactar a mi empresa de alojamiento?

Jan Henckens
fuente

Respuestas:

13

Lamentablemente no. No, a menos que tenga alguna otra interfaz de administración disponible, como una consola serie remota, iDRAC, iLO, etc. Tómela como experiencia y recuerde probar la configuración antes de cerrar sesión la próxima vez;)

Michael Lowman
fuente
12
O si experimenta con iptables, asegúrese de establecer temporalmente un trabajo cron que restablezca el conjunto de reglas cada 15 minutos.
mailq
1
Lección aprendida :)
Jan Henckens
¿Cómo habilitaría el puerto SSH 22 con iDRAC?
terrid25
@ terrid25 iniciaría sesión utilizando la consola serie escuchando en el puerto serie al que iDRAC le da acceso. entonces puedes arreglar iptables y estar en tu camino alegre. por supuesto, si tus cosas fuera de banda no están configuradas con una consola remota y estarás tan atrapado como tu amigo sin ninguna administración remota.
Michael Lowman
7

Suponiendo que aún puede ftp en el servidor, y puede iniciar sesión como root a través de ftp (poco probable y generalmente desaconsejado) en un entorno no chrooteado (etc.):

Coloque un archivo en /etc/cron.d con estos contenidos:

* * * * * root /sbin/service iptables stop 
Mark Wagner
fuente
Esto me ayudó, porque puedo conectar remotamente una imagen de recuperación y acceder al sistema de archivos.
Daniel W.
0

Según estas instrucciones , también puede agregar:

scripts2/doautofixer?autofix=iptablesflush

... a su URL WHM. Lo hice y terminé con una URL:

https://mysite:2087/SESSION_ID/scripts2/doautofixer?autofix=iptablesflush

Restableció mis iptables y todo volvió a estar bien con el mundo. :)

coderama
fuente
0

En CentOS tiene el archivo /etc/sysconfig/iptablessi no lo tiene allí, puede crearlo simplemente usando iptables-savepara volcar el conjunto de reglas actual en un archivo.

iptables-save > /etc/sysconfig/iptables

Para cargar el archivo no necesita reiniciar la máquina, puede usar iptables-restore

iptables-restore < /etc/sysconfig/iptables
Janus Rokkjær
fuente