3. Control de acceso al sistema.Cuando encendemos el ordenador se ejecuta un software, llamado BIOS (Basic Input/Output System) cuya función es determinar la configuración de la máquina y proporcionar un sistema básico de control sobre los dispositivos. Este software se suele almacenar en memoria ROM (Read ohidenly Memory) o FLASH que permite la actualización de la BIOS sin cambiar el chip.
En el momento del arranque se puede acceder a la BIOS de la máquina mediante la pulsación de una tecla o combinación de ellas. Desde la interfaz de dicho software es posible modificar parámetros del sistema, como la fecha y hora del sistema, secuencia de arranque, etc. Lógicamente el acceso a la BIOS puede estar protegida con contraseña, si se habilita. Por lo tanto, una primera medida de seguridad sera habilitar la contraseña de la BIOS, y que no coincida con otras contraseñas utilizadas.
Frente a esta medida de seguridad hay que decir que la contraseña BIOS se puede anular provocando un cortocircuito en la batería de la CMOS. Incluso hay fabricantes que, en la placa base, incluyen un jumper que permite borrar la BIOS. Además, existen también utilidades de captura de contraseñas BIOS como son: !BIOS de Bluefish?(conjunto de herramientas de propósito general para atacar a la BIOS que incluye utilidades de captura y herramientas de descifrado y que normalmente tiene éxito con la mayoría de las BIOS), CMOS PASSWORDS RECOVERY TOOLS , KILLCMOS, etc.
Una vez arrancada la máquina se ejecuta el gestor de arranque, que puede ser LILO (Linux Loader) o GRUB GNU (Grand Unified Boot Loader) y que es el responsable de la carga del sistema operativo seleccionado.
LILO acepta una serie de opciones en línea cuando se ejecuta. En concreto, el argumento single es el más peligroso, ya que arranca Linux en modo monousuario y por defecto, la mayoría de las distribuciones vuelcan a un prompt de root en una shell de comandos sin pedir ningún tipo de contraseña. Es una puerta de entrada al sistema que se debe de cerrar.
También se puede conseguir una shell para cambiar la password del root introduciendo en las opciones en línea del LILO lo siguiente:
Código:
linux init=/bin/bash rwEstos agujeros de seguridad se puede minimizar añadiendo al archivo de configuración de LILO /etc/lilo.conf las opciones siguientes:
1. delay = 0 que controla la cantidad de tiempo (en décimas de segundo) que LILO espera a que el usuario introduzca datos antes de arrancar la opción por defecto.
2.prompt fuerza al usuario a introducir algo y LILO no arranca el sistema automáticamente. Puede ser útil en servidores para eliminar los reinicios desatendidos.
3.restricted, situada en la imagen/es a proteger, pide una contraseña si se pasan opciones en tiempo de arranque (como linux single).
4.password=CLAVE (contraseña no cifrada). Junto con la opción anterior y situadas dentro de la sección de la partición Linux a proteger evitan el acceso en modo 'single' desde el prompt del LILO. Si no se añade la opción restricted, la password se pedirá en cualquier caso.
Es importante eliminar el permiso de lectura sobre /etc/lilo.conf para el grupo y los otros, y de esa forma que no se pueda 'ver' la contraseña de LILO.
El comando chattr permite transformar el archivo /etc/lilo.conf en invariable, lo cual significa que, tenga los permisos que tenga, el archivo no se puede borrar, renombrar, escribir en él, o crearle enlaces. Solo el root puede hacerlo.
Código:
# chattr +i /etc/lilo.conf
Para luego introducir cualquier modificación en este archivo habrá que quitar el flag de invariable:
Código:
# chattr -i /etc/lilo.confNada de lo dicho tiene sentido si no hemos desactivado desde la BIOS la opción de arranque desde diskette, ya que en él puede haber un LILO completamente distinto. O también se puede arrancar con un disco de una distribución y a continuación arrancar el núcleo como Linux single.
Si el gestor de arranque utilizado es el GRUB GNU el nivel de seguridad introducido es mayor.
GRUB es un gestor multiarranque de carga directa. No tiene un numero limitado de núcleos arrancables (bootables) y permite arrancar cualquier tipo de sistema operativo sin necesidad de conocer la posición física de su núcleo en el disco, solo la partición correspondiente. En You are not allowed to view links.
Register or
Login se puede encontrar toda la información referente a esta herramienta.
GRUB presenta varias ventajas respecto de LILO, como, por ejemplo, no es necesario instalarlo cada vez que hacen modificaciones en su archivo de configuracion. Si que es necesario ejecutar la orden grub-install cuando se ha ejecutado un apt-get upgrade, para cargar la nueva version del paquete grub.
Para crear un diskette de arranque de GRUB hay que copiar los archivos 'stage1' y 'stage2' (etapas de ejecución del GRUB) del directorio /boot/grub/ en el primero y segundo bloque del diskette:
Código:
# dd if=stage1 of=/dev/fd0 bs=512 count=1Código:
# dd if=stage2 of=/dev/fd0 bs=512 seek=1Es importante disponer de este diskette por si hay algún fallo en el MBR y no arranca el equipo. Otra forma mas sencilla de obtener este diskette es, sin montar la unidad floppy, ejecutar la orden:
Código:
# cat /boot/grub/stage1 /boot/grub/stage2 > /dev/fd0De la misma forma, es tambien interesante hacer una copia del MBR a diskette (o cualquier otro medio), sobre todo si se tienen varios sistemas operativos instalados.
Código:
# dd if=/dev/hda of=/floppy/arranque.mbr count=1Si, por seguridad, se quieren suprimir las operaciones interactivas desde GRUB, añadir la directiva password en el archivo de configuración de GRUB /boot/grub/menu.lst de la forma:
password --md5 PASSWORD
GRUB de esta forma desactiva cualquier control interactivo hasta que se pulse p y se introduzca la contraseña correcta. El argumento md5 indica a GRUB que almacene la password encriptada. Si no se indica estará en texto plano. Ejecutar
Código:
# grub
grub> md5cryptpide la password y la devuelve encriptada. Se debe copiar en /boot/grub/menu.lst.
Otra medida de control de acceso al sistema puede consistir en provocar rearranques sucesivos del sistema cuando se intente entrar en el en modo 'single'. Para ello habrá que añadir, en el archivo de configuración /etc/inittab, alguna de las líneas siguientes:
ls:S:wait: shutdown -t0 -r now
ls:S:off:/sbin/sh
ls:S:once:/shutdown -r now
ls:S:once:/bin/sh -c `exec login`Todas ellas impiden, de formas diversas, la entrada al sistema en modo single root (S).