raíz bloqueada de EC2

8

Estaba en el proceso de deshabilitar los inicios de sesión de raíz en una instancia de AWS EC2. Justo después de configurar PermitRootLogin no y reiniciar sshd, cerré la terminal por accidente, antes de configurar usuarios con privilegios de sudo. El resultado es que mi clave para ingresar a la instancia como root no funciona (sshd lo prohíbe) y cuando inicio sesión en la instancia con mi usuario habitual no puedo obtener privilegios de root (la contraseña de root nunca se configuró). La instancia ejecuta ubuntu 8.10. Alguien tiene alguna idea de cómo puedo solucionar esto?

Jeff Atwood
fuente

Respuestas:

9

No, no termines la instancia, ¡no todo está perdido!

  1. arranque otra instancia y apague la mala instancia.
  2. separe el volumen EBS de la instancia incorrecta y adjúntelo a la nueva instancia.
  3. Móntelo en la nueva instancia (es decir, algo así como sudo mount / dev / xvdf1 / mnt /)
  4. chroot en él (sudo chroot / mnt) y escriba passwd.
  5. restablecer la contraseña o realizar cualquier otro cambio que desee (vi / etc / ssh / sshd_config, por ejemplo!)
  6. Presione control-D o escriba exit para salir del chroot.
  7. umount / mnt
  8. separe el volumen EBS de su instancia temporal
  9. vuelva a adjuntar o tome un chasquido y cree un nuevo AMI basado en esa instantánea
  10. ¡Arranca la caja fija de nuevo!

PD: la próxima vez intente Userify para administrar las claves de sus usuarios :)

error fatal
fuente
1
Nota: esto no funcionará si inició la instancia desde el mercado de AWS (esas instancias no pueden tener sus volúmenes raíz montados en otro lugar). Esto incluye ciertas distribuciones de código abierto como CentOS.
fatal_error
3

Sin encontrar una vulnerabilidad, la única forma de obtener acceso de root en una máquina Linux es arrancar en modo de usuario único y restablecer la contraseña. Sin embargo, no tiene acceso de nivel KVM en una instancia EC2, por lo que esto no es posible.

Tendrá que terminar esa instancia EC2 y lanzar otra. Pero deshabilitar los inicios de sesión de raíz está en contra del paradigma general en EC2. Amazon sugiere que proporcione una clave pública en el momento del lanzamiento de la instancia y que instale un script de inicio que se instale en /root/.ssh/authorized_keys, con sshd configurado en 'PermitRootLogin sin contraseña' para forzar solo los inicios de sesión de par de claves. De esta manera, nunca puede bloquearse accidentalmente de su cuenta raíz (siempre que no pierda su clave privada).

En el futuro, sugiero que cree un usuario con acceso a sudo y luego inicie una sesión de 'pantalla' tan pronto como inicie sesión para que una desconexión no detenga / interrumpa su trabajo. Después de configurar e instalar su aplicación, agrupe, cargue y agrupe su AMI para que pueda iniciar nuevas instancias cuando sea necesario.

Victor Trac
fuente
+1 para la sugerencia de pantalla, aunque prefiero tmux .
h0tw1r3
La solución a continuación: montar el volumen de EBS funcionaría en este caso, suponiendo que la instancia tenga un EBS.
AliGibbs
1

¿Tiene una AMI guardada con los cambios que realizó en su instancia antes de deshabilitar los inicios de sesión raíz? De lo contrario, deberá volver a la base AMI con la que comenzó y crear una nueva instancia de EC2.

gareth_bowles
fuente
-1

Una forma de hacerlo es encontrar vulnerabilidades locales en su sistema que puedan otorgarle un shell raíz. Obtenga una lista del software que está instalado en la caja y google / securityfocus cada uno de ellos.


fuente