Linux es un sistema multiusuario, puede ser usado por diferentes personas y evita que uno pueda acceder a los recursos personales de otro usuario.
root es el superusuario, tienen todos los poderes y permisos. Esta cuenta debe ser segura ya que puede hacer de todo.
Ventajas de un sistema multiusuario:
¿Está Linux a salvo de ataques? Si lo comparamos con Windows, desde el punto de vista de un atacante:
Linux es de código abierto:
Gestión de software centralizada:
No tener en una misma máquina diferentes servicios como puede ser un servidor web, una base de datos, un sistema de compartición de ficheros… Si por un fallo de uno de los servicios, un atacante logra acceso, puede comprometer el resto.
Para evitar ataques de Man-in-the-middle.
sudo.
Para arrancar un sistema Linux en Single User Mode basta con añadir s (S o también 1) a la línea del GRUB que indica dónde está el kernel:
linux /vmlinuz-3.19.0-15-generic root=/dev/mapper/ubuntu-vg-root ro s
Si el sistema utiliza systemd, añadimos systemd.unit=rescue.target o la abreviación rescue:
linux /vmlinuz-3.19.0-15-generic root=/dev/mapper/ubuntu-vg-root ro rescue
Esto nos permitirá arrancar el sistema con el usuario root. Dependiendo del sistema, no nos preguntará por la contraseña.
Si tenemos acceso al gestor de arranque GRUB, podemos pasar la opción init=/bin/bash en la línea del kernel para que arranque el intérprete bash como root.
Para evitarlo, debemos establecer una contraseña para poder modificar el GRUB. En el fichero /etc/grub.d/40-custom:
# Usuario que podrá modificar GRUB set superusers="root" password root topsecret
Si queremos cifrar la contraseña, podemos usar el comando grub2-mkpasswd-pbkdf2.
Para aplicar los cambios en la configuración del GRUB:
update-grub
Para que no tenga efecto la combinación Ctrl + Alt + Supr:
# En SystemD systemctl mask ctrl-alt-del.target systemctl daemon-reload
Si hacemos el cifrado durante la instalación de un sistema, será más sencillo.
Este cifrado del disco permite que cada vez que arranquemos el sistema, se pida la clave de cifrado para poder montar el disco y continuar con el arranque del sistema operativo.
Cifrar un dispositivo elimina toda la información que pudiera haber en él.
Si queremos asegurarnos de que no hay ninguna información en el dispositivo antes de cifrarlo, podemos usar shred:
sudo shred -v -n 1 /dev/sdX
Lo que hace este comando es escribir datos aleatorios en el dispositivo.
Usamos el programa cryptsetup:
# Inicializamos el dispositivo: sudo cryptsetup luksFormat /dev/sdX # Abrimos el dispositivo en /dev/mapper/opt sudo cryptsetup luksOpen /dev/sdX opt
A partir de entonces podremos utilizar este dispositivo de bloques como cualquier otro:
# Instalar sistema de ficheros mkfs -t ext4 /dev/mapper/opt
Lo montamos desde /etc/fstab:
/dev/mapper/opt /opt ext4 defaults 0 0
Para que se pueda desifrar y montar el dispositivo cifrado al arrancar el sistema, hay que crear el fichero /etc/crypttab y añadir:
opt /dev/sdX none lunks
Si no tenemos acceso a los dispositivos de bloques, podemos hacer que un fichero se comporte como un dispositivo de bloques (usará /dev/loop0):
# Creamos un directorio sudo mkdir /datos # Creamos un fichero en ese directorio con el tamaño de 100M sudo fallocate -l 100M /datos/opt # Ciframos el fichero sudo crytpsetup luksFormat /datos/opt # Lo abrimos sudo cryptsetup luksOpen /datos/opt opt # Creamos un sistema de ficheros sudo mkfs -t ext4 /dev/mapper/opt # Montamos sudo mount /dev/mapper/opt /opt
En realidad no hay una conversión como tal, ya que perderemos la información que contenga el dispositivo.
dd if=/dev/urandom of=/dev/sdX.