I-2015 GUIA DE LABORATORIO #3 Nombre de

Anuncio
UNIVERSIDAD DON BOSCO
FACULTAD DE ESTUDIOS TECNOLÓGICOS
ESCUELA DE COMPUTACIÓN
CICLO: I-2015
GUIA DE LABORATORIO #3
Nombre de la Practica: Recuperación de la contraseña root
Lugar:
Laboratorio de Redes
Tiempo Estimado:
2 Horas y 30 Minutos
Materia:
Seguridad en Redes
1. OBJETIVOS
Que el estudiante:



Sea capaz de poder recuperar la contraseña del súper usuario (ROOT).
Pueda proteger con contraseña el gestor de arranque múltiple (GRUB).
Sea capaz de proteger los archivos menu.lst y grub.conf por medio de encriptación sencilla.
2. INTRODUCCIÓN TEÓRICA
Como administrador de sistemas siempre debemos de tener la contraseña de nuestro usuario root bien
guardas, pero que pasa cuando a alguien se le olvida o el administrador de este sistema se va y nos deja
sin la contraseña de root. Por lo cual tendremos que recuperar la contraseña al usuario root, ya que es el
administrador del sistema; al mismo tiempo es preocupante saber que este método es de fácil
reproducción, ya que hoy en día, cualquier persona con conocimientos básicos de linux y acceso a
internet, podrá saber los pasos para cambiar la contraseña del root.
Es por ello que se debe poder proteger este método, para que así la seguridad de su servidor o firewall
sea aún más robusta. Para ello aprenderemos cómo poner contraseña al gestor de arranque múltiple
(GRUB). Se recomienda que al hacer esto, se ponga una contraseña que sea lo más segura posible, pero
que al mismo tiempo sea fácil de recordar por el administrador, ya que de no ser así con el tiempo
podríamos olvidar la contraseña del GRUB y podría perjudicarnos, y en vez de ayudarnos puede llegar a
ser un dolor de cabeza.
Con lo dicho anterior mente bastaría para poder tener una seguridad muy fuerte de nuestro súper
usuario root. Pero vamos a ver un caso extremo; imaginemos el caso, de un ambiente en el cual muchas
personas deben de tener necesariamente la contraseña del root, como es el caso de esta práctica, pero
no se les da la contraseña del GRUB, para que no puedan cambiar la contraseña del root, si en algún
momento se les olvida. Podrá haber alguien, que por curiosidad, maldad o simple comodidad quiera
quitar la contraseña del GRUB, y como se verá en esta guía, eso es muy fácil de lograr si se tienen los
privilegios adecuados. ¿Cómo hacer ante tal interrogante?
La respuesta es sencilla, lo que se hará es encriptar los archivos que guardan la contraseña del root, los
cuales son el grub.conf y el menu.lst, los cuales se encuentran en la ubicación de /boot/grub/. Pero esto
no será suficiente, pues para completar la tarea, haremos que estos archivos sean inmodificables, por así
decirlo, de tal manera que, aun que los puedan borrar y volver a crear, esto al apagarse la computadora,
vuelvan a restaurarse a su estado original.
3. MATERIALES Y EQUIPO
No.
1
2
Requerimiento
Guía de Laboratorio
VirtualBox con Sistema operativo CentOS
Cantidad
1
1
4. PROCEDIMIENTO
PARTE I: RECUPERAR LA CONTRASEÑA DEL ROOT
1. Reiniciamos el sistema operativo.
2. Al momento de iniciar nos mostrara una pantalla como la siguiente en la cual solamente
tendremos que presionar la tecla ESC para que nos mande a un menú, en caso de que no
le hayamos presionado la tecla ESC este inicia el sistema.
3. En caso de que tengamos otras versiones más del kernel instaladas dentro del servidor,
estas aparecerán dentro de este menú en el cual nos podremos mover con las flechas de
dirección, siempre recomendamos utilizar la última versión del kernel para entrar a
modo de emergencias o modo monousuario este siempre se encontrara primero en la
parte superior. Ya seleccionada la versión del kernel solamente presionamos la tecla “e”.
4. Esto nos mandara a las opciones que tiene nuestro kernel, nos podemos mover con la
flechas de dirección del teclado para después seleccionar en la opción del kernel y
presionar la tecla “e”.
5. Mostrará los parámetros de configuración del kernel por lo cual solamente es necesario
agregar el número 1 al final de la linea de grub edit.
6. Agregado este cambio en kernel solamente presionamos enter, estos nos devolverá al
menú de las opciones del kernel por lo cual solamente presionamos la tecla “b”. con esto
iniciara el booteo del sistema en modo emergencias o modo monousuario. Si por algún
motivo, esto no llegara a funcionar, repita el paso 5, y reemplace el número 1, que
agrego al final de la línea, por la palabra “single” (sin comillas).
7. Iniciado el sistema solamente tendremos que cambiar el password del root con el
comando passwd.
8. Solo queda reiniciar el sistema y ya tendrán el acceso al usuario root.
PARTE II: CONTRASEÑA DEL GRUB
La forma más fácil de poner contraseña al grub, es cuando se está instalando el SO, en este caso
CentOS, como muestra la imagen a continuación:
Pero como es de esperar, habrán algunas ocasiones en las que después de instalado el SO, se
quiera ponerle contraseña al GRUB, para ello deberemos seguir los siguientes pasos (recuerde
estar logeado como root):
1. Lo primero será crear copias de respaldo de los archivos que modificaremos, los cuales
son menu.lst y grub.conf para ello ejecute los siguientes comandos:
cp /boot/grub/menu.lst /boot/grub/menu.lst.original
cp /boot/grub/grub.conf /boot/grub/grub.conf.original
2. A continuación, generaremos una contraseña encriptada para asignársela al GRUB,
ejecute el comando grub-md5-crypt al realizar esto el sistema le pedirá una contraseña,
para esta práctica usaremos la contraseña “123456” sin comilla; pedirá que confirma la
contraseña, y después de esto le mostrara un línea con la contraseña digitada, ya
encriptada, como se muestra en la figura siguiente:
Esta contraseña encriptada es la que utilizaremos para poner al GRUB, recuerde que esto es
muy delicado, ya que si llegásemos a olvidar la contraseña del root, y también la del grub, será
imposible cambiar la contraseña del root, por lo cual ya no tendremos privilegios como super
usuario en nuestro SO.
3. Ahora abriremos el archivo menu.lst, usando cualquier editor de texto (vim, vi, gedit,
etc.), que se encuentra en la ruta /boot/grub/ y añadiremos lo siguiente, después de la
linea “timeout”: password --md5 $1$/Vf66$Ni.gpYhWv5u.k613CwZsB. deberá quedar
como se muestra en la figura siguiente
Guarde el archivo y cierre el editor de texto que utilizo.
4. Este archivo, por ser un enlace simbólico hacia el archivo grub.conf, afectara dicho
archivo automáticamente cada vez que se le realice un cambio.
5. Ahora lo único que queda es reiniciar la máquina y probar, nuevamente al intentar
cambiar la contraseña del root, como se explicó en la primera parte de esta guía, vera
que al querer entrar en las opciones del GRUB, este le pedirá primero la contraseña que
nosotros acabamos de asignarle.
6. No cambie nada e inicie sesión de nuevo.
PARTE III: PROTEGER LOS ARCHIVOS menu.lst Y grub.conf
Lo que realizaremos a continuación es la protección de los archivos menu.lst y grub.conf, pues
como vimos en la parte anterior, es fácil quitar la contraseña del GRUB, siempre y cuando se
tenga acceso como súper usuario al SO.
1. Lo primero a realizar será crear copias de los archivos menu.lst y grub.conf como se
mostró en el paso 1 de la parte II anterior.
2. Ahora encriptaremos estos dos archivos de una forma sencilla y rápida, mediante una
herramienta que trae por defecto el editor de textos vim. Ejecutaremos el comando: vim
-x /boot/grub/menu.lst al ejecutar este comando, lo que hará, es que como es primera
vez que se ejecuta, vim nos pedirá que ingresemos una contraseña, para encriptar el
archivo, y después nos volverá a pedir la misma contraseña, a modo de verificación. La
contraseña a ponerle será “123456” sin las comillas, una vez lo haya hecho, únicamente
guarde y salgase del editor, si no guarda, no surtirá efecto la encriptación del archivo.
Como es de esperarse, al hacer esto en este archivo, automáticamente se encriptara
también el archivo de grub.conf, ya que como dijimos anteriormente menu.lst es un
enlace simbólico de grub.conf.
3. Para comprobar que los archivos han sido encriptados, trate de abrirlos con el comando
cat, o de editarlos mediante el comando vim, en este último caso le pedirá la contraseña,
y de no introducirla correctamente, mostrara el archivo encriptado.
4. Ahora procederemos a crear dos carpetas que serán necesarias para el funcionamiento
de lo hecho anteriormente, ya que si reiniciamos en estos momentos, el GRUB no podrá
iniciar, ya que estos dos archivos son los que cargan el GRUB, y al estar encriptados no se
pueden leer, por lo cual no podrá cargar ningún SO que se encuentre en la PC. Ejecute los
siguientes comandos:
mkdir -p /etc/segs/.arch_norm
mkdir -p /etc/segs/.arch_encr
5. A continuación procederemos a copiar los archivos menu.lst y menu.lst.original donde
corresponden cada uno, ejecutemos los siguientes comandos:
cp /boot/grub/menu.lst /etc/segs/.arch_encr/menu.lst
cp /boot/grub/menu.lst.original /etc/segs/.arch_norm/menu.lst
Tenga en cuenta que, aunque estamos copiando el archivo original, este se deberá llamar
siempre menu.lst sin la extensión .original para que pueda funcionar.
6. Para que todo pueda funcionar perfectamente, deberemos crear 2 scripts en bash que
harán el trabajo de copiar el archivo des-encriptado al apagar la computadora, y copiar el
archivo encriptado una vez termine de iniciar el SO.
7. Para lo anterior primero crearemos el archivo fin.sh en la dirección /etc/segs/ con el
comando siguiente:
touch /etc/segs/fin.sh
Abra el archivo anterior con su editor preferido y copie el siguiente contenido:
Una vez finalizado, guarde el archivo y cierre el editor.
8. Ahora crearemos el archivo inicio.sh en la dirección /etc/segs/ con el comando siguiente:
touch /etc/segs/inicio.sh
Abra el archivo anterior con su editor preferido y copie el siguiente contenido:
9. Por ultimo ejecutemos los siguiente comandos, que se encargaran de ejecutar estos
scripts creados anteriormente al finalizar e iniciar el SO respectivamente.
echo /etc/segs/./inicio.sh >> /etc/rc.d/rc.local
echo /etc/segs/./fin.sh >> /etc/rc.d/init.d/killall
10. Ahora reinicie la PC y espere a que inicie nuevamente el SO. ¿Inicio normalmente?
¿surgió algún error? ¿qué paso y porque paso?
11. Lo más probable es que le apareciera una pantalla como la siguiente:
12. En estos momentos lo más importante es NO ENTRAR EN PANICO, tranquilo, aunque si,
esto no es normal y, no es tan fácil de arreglar, aún hay solución. La razón por la que
aparece el gestor del grub, es porque no es legible, para el sistema, el archivo del
grub.conf, o en su defecto el del menu.lst, y esto es porque actualmente están
encriptados. La razón por lo cual los scripts, que creamos no funcionaron, es porque no
se les dio permiso de ejecución. Por el momento daremos los pasos para poder iniciar sin
ningún problema, en nuestro S.O. CentOS, para ello ejecute la siguiente secuencia de
comandos, recuerde que esto es un proceso delicado, así que si tiene alguna duda, llame
a su docente, para seguir, antes de ejecutar los comandos:
root (hd0,0)
kernel /boot/vml(después de la letra l, usar la tecla TAB para autocompletar.) ro root=/dev/sda1
initrd /boot/init(después de la letra t, usar la tecla TAB para auto completar.)
boot
13. Con lo anterior, si lo realizo TODO correctamente, deberá iniciar CentOS normalmente.
Ahora procedemos a dar permisos de ejecución a los archivos ejecutables, inicio.sh y
fin.sh, con el siguiente comando:
chmod +x /ete/segs/inicio.sh
chmod +x /etc/segs/fin.s
14. Ahora reinicie la PC y espere a que inicie nuevamente el SO sin ningún error, y al iniciar
verifique que los archivos /boot/grub/grub.conf y /boot/grub/menu.lst sigan
encriptados.
15. Ahora llame a su Instructor, para verificar que todo lo realizado en la práctica.
16. Una vez revisado por su instructor, procederemos a dejar todo como estaba, ya que este
tipo de seguridad tiene un problema, si la computadora se llegase a apagar, por
desconexión de energía eléctrica, los archivos no se restaurarían correctamente, por lo
cual la computadora iniciaría con los archivos encriptados, y al pasar esto, la maquina no
podría bootear en ningún S.O. Instalado. Por ello procederemos a restaurar los archivos,
de la siguiente manera:
cp /boot/grub/menu.lst.original /boot/grub/menu.lst
cp /boot/grub/grub.conf.original /boot/grub/grub.conf
17. De un cat, a los archivos /etc/rc.d/rc.local y /etc/rc.d/init.d/killall, y escriba a
continuación, la última fila, que devuelven estos archivos.
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
______________________________________________________________________________
18. Ahora escriba los siguientes comandos, y antes de ejecutarlos, llame a su instructor:
cat /etc/rc.d/init.d/killall | grep -v /etc/segs/./fin.sh >> /etc/rc.d/init.d/killall.original && mv
–f /etc/rc.d/init.d/killall.original /etc/rc.d/init.d/killall
cat /etc/rc.d/rc.local | grep -v /etc/segs/./inicio.sh >> /etc/rc.d/rc.local.original && mv -f
/etc/rc.d/rc.local.original /etc/rc.d/rc.local
19. Una vez realizado el paso anterior, realice nuevamente el paso número 17, y compare la
última fila devuelta, con la que anoto en dicho paso ¿qué paso? ¿cuál fue la diferencia?
5. INVESTIGACIÓN COMPLEMENTARIA
1. En un documento de texto plano, explique con sus palabras, que realizaron los comandos del
paso 18, y además, de los pasaos necesarios para realizar la misma tarea, de una manera
diferente y con comandos distintos.
2.
Unos de los inconvenientes que ocurren con lo visto en esta práctica, es que si la maquina en la
que se realiza, esta encriptación de los archivos grub.conf y menu.lst, es el hecho que, si la
maquina se reinicia por A o B motivo, se apaga de manera improvista, o llegase a congelarse por
algo, dichos archivos quedarían encriptados, haciendo imposible que la maquina pudiese
bootear de manera correcta.
Por lo anterior, se pide investigar una manera, de cómo poder dar solución al problema
planteado anteriormente.
Descargar