Normalmente utilizamos una buena parte de nuestro tiempo en evitar el acceso no autorizado a nuestros equipos: configuramos firewalls, permisos de los usuarios, ACL, creamos contraseñas seguras, etc.; pero pocas veces recordamos proteger el arranque de nuestros equipos.
Si una persona tiene acceso físico al equipo, puede reiniciarlo y cambiar los parámetros de GRUB para conseguir acceso como administrador al equipo. Basta con añadir un ’1′ o una ‘s’ al final de la línea ‘kernel’ de GRUB para conseguir esa clase de acceso. |
Para evitar esto, se puede proteger GRUB mediante la utilización de una contraseña, de forma que si no se conoce, no sea posible modificar sus parámetros.
Si tenés instalado el gestor de arranque GRUB (que es lo más común si utilizás las distribuciones Linux más populares), podés proteger cada entrada del menú de GRUB con una contraseña. De este modo, cada vez que elijas un sistema operativo para arrancar, te preguntará la contraseña que hayas especificado para poder arrancar el sistema. Y como beneficio adicional, si te roban el equipo, los intrusos no podrán acceder a tus archivos. Se oye bien, ¿no?
GRUB 2
Para cada entrada del Grub se puede establecer un usuario con privilegios para modificar los parámetros de las entradas que aparecen GRUB al iniciar el sistema, aparte del superusuario (aquel que tiene acceso para modificar el Grub oprimiendo la tecla “e” ). Esto lo haremos en el fichero /etc/grub.d/00_header. Abrimos el fichero con nuestro editor favorito:
sudo nano /etc/grub.d/00_header
Al final pegá lo siguiente:
cat set superusers=”user1″
password user1 password1
EOF
Donde user1 es el superusuario, ejemplo:
cat set superusers=”superusuario”
password superusuario 123456
EOF
Para crear más usuarios, agregalos debajo:
password superusuario 123456
Quedaría más o menos de la siguiente forma:
cat set superusers="superusuario"
password superusuario 123456
password usuario2 7890
EOF
Una vez que hallamos establecido los usuarios que querramos, guardamos los cambios.
Proteger Windows
Para proteger Windows hay que editar el fichero /etc/grub.d/30_os-prober.
sudo nano /etc/grub.d/30_os-prober
Buscá una línea de código que dice:
menuentry "${LONGNAME} (on ${DEVICE})" {
Debe quedar así (siendo superusuario el nombre del superusuario):
menuentry "${LONGNAME} (on ${DEVICE})" –users superusuario {
Guardá los cambios y ejecutá:
sudo update-grub
Abrí el fichero /boot/grub/grub.cfg:
sudo nano /boot/grub/grub.cfg
Y donde está la entrada de Windows ( algo parecido a esto ):
menuentry "Windows XP Profesional" {
cambialo por esto (siendo usuario2 el nombre del usuario que tenga privilegios para acceder):
menuentry "Windows XP Profesional" –users usuario2 {
Reiniciá y listo. Ahora, cuando intentes entrar a Windows te pedirá la contraseña. Si oprimís la tecla “e” también te pedirá la contraseña.
Proteger Linux
Para proteger las entradas del kernel de Linux editá el fichero /etc/grub.d/10_linux, y buscá la línea que dice:
menuentry "$1" {
Si sólo querés que pueda acceder el superusuario debería quedar así:
menuentry "$1" –users user1 {
Si querés que pueda acceder un segundo usuario:
menuentry "$1" –users usuario2 {
También podés proteger la entrada de la comprobación de memoria, editando el fichero /etc/grub.d/20_memtest:
menuentry "Memory test (memtest86+)" –users superusuario {
Proteger todas las entradas
Para proteger todas las entradas ejecutá:
sudo sed -i -e ‘/^menuentry /s/ {/ –users superusuario {/’ /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober /etc/grub.d/40_custom
Para deshacer este paso, ejecutá:
sudo sed -i -e ‘/^menuentry /s/ –users superusuario[/B] {/ {/’ /etc/grub.d/10_linux /etc/grub.d/20_memtest86+ /etc/grub.d/30_os-prober /etc/grub.d/40_custom
GRUB
Comencemos abriendo el entorno de GRUB. Abrí una terminal y escribí:
grub
Luego, introducí la siguiente orden:
md5crypt
Te preguntará la contraseña que querés utilizar. Escribila y perisoná Enter. Obtendrás una contraseña cifrada, que tenés que guardar con mucho cuidado. Ahora, con permisos de administrador, abrí el archivo /boot/grub/menu.lst con tu editor de textos favorito:
sudo gedit /boot/grub/menu.lst
Para poner la contraseña a las entradas del menú de GRUB que prefieras, tenés que añadir lo siguiente a cada una de las entradas que querés proteger:
password --md5 mi_contraseña
Donde mi_contraseña sería la contraseña (encriptada) devuelta por md5crypt: Antes:
title Ubuntu, kernel 2.6.8.1-2-386 (recovery mode)
root (hd1,2)
kernel /boot/vmlinuz-2.6.8.1-2-386 root=/dev/hdb3 ro single
initrd /boot/initrd.img-2.6.8.1-2-386
Después:
title Ubuntu, kernel 2.6.8.1-2-386 (recovery mode)
root (hd1,2)
kernel /boot/vmlinuz-2.6.8.1-2-386 root=/dev/hdb3 ro single
initrd /boot/initrd.img-2.6.8.1-2-386
password –md5 $1$w7Epf0$vX6rxpozznLAVxZGkcFcs
Guardá el archivo y reiniciá. ¡Así de fácil! Para evitar, no sólo que algún malintencionado pueda cambiar los parámetros de configuración de la entrada protegida, sino que tampoco pueda siquiera iniciar ese sistema, podés agregar una línea en la entrada «protegida», luego del parámetro title. Siguiendo nuestro ejemplo, quedaría algo así:
title Ubuntu, kernel 2.6.8.1-2-386 (recovery mode)
lock
root (hd1,2)
kernel /boot/vmlinuz-2.6.8.1-2-386 root=/dev/hdb3 ro single
initrd /boot/initrd.img-2.6.8.1-2-386
password –md5 $1$w7Epf0$vX6rxpozznLAVxZGkcFcs
La próxima vez que alguien quiera iniciar ese sistema, tendrá que ingresar la contraseña.
Fuente: Delanover & Makeuseof & Ubuntu Forums & Elavdeveloper
2 comentarios, deja el tuyo
Hola quiero de ayuda por favor quiero proteger el kernel de mi sistema android con una contraseña ya que si me roban el dispositivo cambian la ROM y no podria recuperarlo jamas!! Si me pueden ayudar… tengo acceso a superusuario, pero quiero que me pida un pass al momento que pones el equipo en modo descarga. Gracias de antemano.
Excelente aporte. Suscrito