La Gaceta de Linux ...¡ haciendo a Linux un poco más divertido !

Como restaurar contraseñas de root olvidadas

Por Suramya Tomar

Traducción al español por Joan G. Villaraco
el día 5 de Enero de 2005, para La Gaceta de Linux

1.0 Introducción

Supón que tomas el control del puesto de administrador de sistemas que otra persona dejo, y olvidó darte la contraseña de root. Ahora, digamos que tienes que instalar la ultima versión de PHP en el sistema para que el sitio departamental de ventas funcione de la forma que debe de hacerlo. Tienes que tener el sitio web funcionando mañana ya que se está perdiendo dinero cada minuto que que no lo hace, o simplemente tienes que añadir otro usuario al sistema.

Los escenarios anteriores son simplemente dos posibles casos en que puedes necesitar restaurar la contraseña de root en un sistema, hay cientos de otros casos posibles en los que se necesitaría hacer, pero no voy a escribirlos todos. La mayoría de nosotros sabe que hacer cuando alguna cosa parecida ocurre en una maquina Windows, pero no muchos de nosotros sabe como recuperar contraseñas perdidas de maquinas Linux. Este documento intenta rectificar esta situación explicadote las diferentes opciones disponibles para recuperar contraseñas de TUS máquinas. (No utilices esto para entrar en los sistemas de otras personas ya que eso sería estúpido y te traería muchos problemas si te pescan).

1.1 Renuncia de responsabilidad

Utiliza la información de este documento bajo tu propia responsabilidad. Desautorizo cualquier responsabilidad por el contenido de este documento. La utilización de los conceptos, ejemplos, y/o otro contenido de este documento es enteramente bajo tu responsabilidad.

La información de este documento solo debería ser utilizada para la recuperación de contraseñas de máquinas sobre las que tengas acceso legal. Si utilizas esta información para introducirte en sistemas de otras personas no seré el responsable y merecerás ese destino si te pescan. Entoces no me culpes.
Has sido fuertemente avisado de realizar una copia de seguridad de tu sistema antes de cualquiera de las acciones escritas en este documento.

1.2 Reconocimientos

En esta versión, tengo el placer de reconocer a las siguientes personas sin las aportaciones de la cuales no habría visto nunca la luz del sol:

1.3 Antes de que comiences

Antes de que comiences a cambiar la contraseña de cualquier máquina, confirma el permiso del administrador autorizandolo, ya que de otro modo puede ser malentendido como un intento de intrusión en la máquina , lo que no sería bueno para ti.

Segundo, realiza una copia de seguridad de todos los datos importates antes de hacer ninguna otra cosa, así, si cualquier cosa va mal, todavía tienes una copia de tus datos. Si no lo haces y algo va mal no me culpes. He probado la mayoría de esto en mi sistema y ha funcionado, pero tu eres el responsable de tu sistema, no yo, así que no me culpes si algo va mal.

2.1 Diferentes opciones posibles

Hay varios metodos disponibles para restaurar una contraseña de root, en esta sección, voy a listar la mayoría, y veremos cada uno en detalle posteriormente. También repasaré algunos pasos para evitar que cualquier otra persona haga esto y penetre en tu máquina.

Los diferentes metodos son:

2.1.1 Restaurando contraseñas mediente el arranque en modo single-user

Este es el método más sencillo y más rápido para restaurar las contraseñas. Los pasos a seguir son un poco diferentes si estas usando GRUB o lilo como gestor de arranque

Arrancado en modo single-user desde LILO

Sigue los siguientes pasos para restaurar la contraseña usando LILO:

Lilo Boot Menu
Figura 1. Menu de arranque de lilo

Si tienes una version nueva de LILO que te enseña un selector de menu con los diferentes kernels disponibles pulsa  Tab para acceder al prompt LILO: y entonces procede como lo anterior.

Arrancando en modo single-user desde GRUB

Sigue los siguientes pasos para restaurar la contraseña si utilizas GRUB:

GRUB boot screen
Fig. 2: Pantalla de arranque de GRUB

2.1.2 Restaurando contraseñas utilizando un disco de arranque y editando el fichero de contraseñas

Este método es un poco más complicado que el anterior y tiene una probabilidad mayor de éxito (asumiento que tu sistema de ficheros no sea encriptado y si lo es, no hayas olvidado la clave para desencriptarlo). Como anteriormente, obtén el permiso para hacerlo.

Para comenzar, necesitas un disco de arranque de Linux o un disco de recuperación (si no lo creaste cuando se te pregunto durante la instalación entoces esta será una lección para ti). Puedes usar el CD de instalación como disco de recuperación; la mayoría de las distros tienen una opción que permite arrancar el modo de recuperación del sistema. Con mi CD Redhat Linux, tengo que escribir linux rescue para iniciar el modo de recuperación, pero puede ser un poco diferente en cada distro. Puedes usar un CD de linux autoarrancable como Knoppix o Gnoppix para una recuperación de sistema (pulsa aquí para una lista de todos los CD autoarrancables de Linux). En este tutorial utilizo Knoppix como CD de rescate pero el proceso es casi el mismo para cualquier otro que se quiera utilizar.

[También puedes descargar una de las distribuciones de un único disquette (p.e. Tom's RootBoot ) y utilizarla para arrancar la máquina como se ha descrito. Esto es, por supuesto, mucho más rápido que descargar y tostar un CD de recuperación, especialmente con una conexión lenta. --Ben]

Sigue estos pasos para restaurar la contraseña utilizando Knoppix:

Knoppix boot screen
Fig. 3: Pantalla de arranque de Knoppix

2.1.2 Restaurando contraseñas mediante el montando del disco en otro sistema y editando el fichero de contraseñas

Esta opción requiere un poquito más de trabajo que las anteriores, pero es casi seguro que funciona (excepto si el sistema de ficheros es encriptado)

Sigue estos pasos para regenerar la contraseña:

3.1 Como prevenir que otros restauren tu contraseña

Si eres un administrador medianamente preocupado por la seguridad, las secciones anteriores deben haber activado todas tus alarmas mientras las estabas leyendo, ¿es realmente tan fácil introducirse en un sistema Linux? Si y No. Todo depende de una cosa: acceso físico es acceso de root. Esto quiere decir que si das a alguien acceso físico al sistema, entonces le estás dando una buena oportunidad para conseguir acceso root a tu máquina. Esto es cierto para Windows, Linux u otros SO existentes.

Pero ... ¿has dicho que se necesita dar a alguien acceso físico al servidor? Existen alguna precauciones que puedes tomar para reducir los ataques y parar los de los novatos. En esta sección hablaré acerca de varias formas de hacer tu ordenador más seguro contra esos tipos de ataques. Comencemos.

3.1.1 Protección de GRUB y LILO con contraseña

Primero, edita el fichero /etc/inittab e inserta la siguiente línea, justo despues de la linea "initdefault": ~~:S:wait:/sbin/sulogin. Esto hará que se pida una contraseña para arrancar en modo single-user forzando a ejecutar 'sulogin' antes de poner la máquina en línea de comandos de root. 'sulogin' requiere la entrada del usuario para introducir la contraseña de root antes de continuar.

Desafortunadamente, el paso anterior no nos protege contra las personas que saben lo que están haciendo e introducen init=/bin/bash al kernel en el prompt de LILO. Para prevenir acceso no autorizado yo sugeriría que protegieras LILO/GRUB con los siguientes pasos:

Como proteger LILO:

Como proteger con contraseña GRUB

3.1.2 Protección de la BIOS con contraseña

Existen dos razones principales para proteger la BIOS de un ordenador:

Debido a que los métodos para definir la contraseña de la BIOS varían entre fabricantes de ordenadores, deberías consultar el manual del tuyo. Si te olvidas de la contraseña de la BIOS, a menudo puede ser eliminada con jumpers en la placa base o desconectando la batería de la CMOS. De todas formas deberías consultar el manual de tu ordenador o placa base antes de intentar este procedimiento.

4.1 Conclusión

Hasta ahora, espero, haberte salvado de un montón de problemas explicándote como restaurar la contraseña de root y hacer mucho más difícil a los otros conseguirla. Si crees que este documento te ha ayudado o tienes algún comentario o pregunta que hacer, puedes hacerlo sin compromiso a contactame. De todas formas tengo que avisarte que soy una persona lenta que puede tardar un poco en responder a tus correos.


[BIO]

Nací en 1980 en un pequeño hospital de las fuerzas armadas en Hashimara, India. Gasté 18 años de mi vida recorriendo la India durante los cuales tuve el placer de asistir a 7 escuelas para completar 12 años de cursos.

Comencé a usar Linux al final del 1999 cuando un amigo me dejó un CD de instalación de una Rehat 7.1 y otro amigo me 'donó' un disco duro de 6Gb. Esto fue justo despues de que mi Win98 fallara por enésima vez, así que decidí dar a Linux una oportunidad. Los probé y quedé enganchado casi instantáneamente. Después de 2 años actualicé a Redhat 7.3, pero cuando Redhat decidió dejar de dar soporte de RH 7.3 pasé a Debian y he estado viviendo feliz desde entonces.

Me gusta programar bastante y recientemente he entendido como descifrar el revoltijo de caracteres que algunas personas utilizan para programar Perl y me he dado cuenta que me gusta. Para sitios web me gusta usar PHP con MySQL y puedo programar con C, C++, VB y .Net. También estoy muy interesado en seguridad informática e inteligencia artificial y trato de leer todo lo que puedo sobre ello.

Aparte de trabajar con ordenadores, me gusta leer (mayormente fantasía y ciencia ficción, pero leo cualquier cosa excepto novelas románticas), escuchar música (mis cantantes favoritos incluyen: Shania Twain, In-Grid, Crystal Waters) y desmontar cosas para ver como funcionan.

Si estas realmente aburrido y quieres leer más acerca de mi, puedes visitarme sin compromiso en: http://www.suramya.com donde encontrarás tanta información sobre mi como quieras.

Copyright © 2004, Suramya Tomar. Publicado bajo Open Publication license

Publicado en Linux Gazette número 107, Octubre 2004

1.- Nota del Traductor: Para la localización en castellano o español introducir 'lang=es' y para el teclado español 'keyboard=es', sin las comillas.