lunes, 11 de marzo de 2013

Cifrando particiones en ArchLinux



  Hace unos días me surgió la necesidad de formatear  porque me aburría la partición de GNU/Linux del netbook e instalar ArchLinux. Gracias a la sabiduría obtenida del podcast de @DaboBlog he desarrollado la costumbre de cifrar las particiones de mi pequeñín (el netbook), puesto que pasa todo el tiempo de un sitio para otro.

  En este punto me dirigí a la web que utilizaba como referencia, con lo que me dispuse a realizar todo el proceso cuando me encontré con un ligero contratiempo debido a la evolución de la distribución linuxera que utilizaba.
  Arch es una distro rolling release que evoluciona constantemente, con lo que el proceso de instalación ha cambiado respecto al del post que seguía y el sistema de arranque también, ya que ahora utiliza el famoso y raudo systemd. Con todo esto en mente me dispuse a realizar el proceso combinando el antiguo post, la wiki y la genial guía de instalación de Arch del Sr @Gespadas.

  Para realizar el cifrado comentado nos serviremos de LVM, con lo que el disco duro quedará dividido en 2 particiones dedicadas a Windows 8, una para el boot de Arch y la restante para el LVM que, éste a su vez, contendrá dos particiones para GNU/Linux como son la raiz y la memoria swap. Por tanto el particionado quedará como sigue:
  [+] /dev/sda1 -> Partición arranque de W8.
  [+] /dev/sda2 -> Partición para W8.
  [+] /dev/sda3 -> Partición boot.
  [+] /dev/sda4 -> LVM para Ñu/Linux.



Cifrando...

  Es recomendable sobrescribir todo el disco duro para que la información existente anteriormente "desaparezca", este proceso podemos realizarlo con dd, aunque tarda bastante tiempo (en función del tamaño del HD):
dd if=/dev/urandom of=/dev/sda
 /dev/sda es el disco duro que se desea borrar, en vuestro caso puede variar, tenedlo en cuenta ya que os podéis reír mucho si os cargáis el que no toca ;)

  Una vez esté todo borrado (o no), vamos a cargar el módulo necesario para cifrar el HD, para ello:
modprobe dm-crypt
  Acto seguido aplicamos el cifrado sobre la partición /dev/sda4:
cryptsetup -c aes-lrw-benbi -y -s 384 luksFormat /dev/sda4
  Una vez hayamos introducido la contraseña deseada podremos continuar con el proceso.

  Puesto que la partición ya se encuentra cifrada, debemos acceder a ésta:
cryptsetup luksOpen /dev/sda4 lvm
   Y procedemos a crear el grupo de volúmenes lógicos:
lvm pvcreate /dev/mapper/lvm
lvm vgcreate vgroup /dev/mapper/lvm
  A continuación definiremos las particiones dentro del grupo especificado antes (vgroup). El tamaño de cada uno viene a gusto de cada uno ;) :
lvm lvcreate -L 2GB -n swap vgroup
lvm lvcreate -l 100%FREE -n root vgroup
  En mi caso le he dado 2 GB a la memoria swap y el resto que quede libre para la partición root (en el netbook no separo home).



Instalando ArchLinux

  NOTA: Estos pasos los voy a definir muy ligeramente, en la guía de Gespadas y en la Beginners' Guide de Arch está todo infinitamente mejor explicado, yo solo me centraré en lo que cambia de una instalación norma a una instalación cifrada.


  Con las particiones definidas, vamos a particionarlas.
[+] La partición boot:
mkfs.ext2 /dev/sda3
[+] Cuando vamos a dar formato a la partición root es donde encontramos la primera diferencia a una instalación normal, pues ahora no trabajamos con /dev/sdaX, sino con /dev/mapper/vgroup-root:
mkfs.ext4 /dev/mapper/vgroup-root
[+] La partición swap es similar a la interior pues también se encuentra en el vgroup:
mkswap /dev/mapper/vgroup-swap
  y la activamos:
swapon /dev/mapper/vgroup-swap

 A continuación montamos las particiones, teniendo en cuenta que la partición root no es /dev/sdaX:
mount /dev/mapper/vgroup-root /mnt/
mkdir /mnt/boot
mount /dev/sda3 /mnt/boot/

  En el siguiente punto toca configurar la red. Puesto que no tiene sentido tratarlo en esta entrada la wiki de Arch será vuestra guía :D
https://wiki.archlinux.org/index.php/Beginners'_Guide#Establish_an_internet_connection
 Con conexión a la red de redes procedemos a instalar la distribución:
pacstrap /mnt base base-devel grub-bios
 Generamos el fichero fstab:
genfstab -p /mnt >> /mnt/etc/fstab
 Nos metemos en la jaula con chroot:
arch-chroot /mnt
 Cambiamos el nombre del equipo:
echo "nombre" >> /etc/hostname
La zona horaria:
ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime 
 Configuramos la localización:
echo "LANG=es_ES.UTF-8" >> /etc/locale.conf
locale-gen
El teclado:
echo "KEYMAP=es" >> /etc/vconsole.conf 
Y ahora instalamos el grub:
grub-install /dev/sda 
 A continuación vamos a especificar un par de parámetros en la configuración del grub para que monte correctamente las particiones cifradas:
nano /etc/default/grub
  Buscamos la línea que ponga:
GRUB_CMDLINE_DEFAULT="quiet"
 y añadimos:
cryptdevice=/dev/sda4:vgroup

 Acto seguido generamos el grub.cfg:
grub-mkconfig -o /boot/grub/grub.cfg

Solo nos queda un archivo por modificar respecto a la instalación normal, y éste es /etc/mkinitcpio.conf:
nano /etc/mkinitcpio.conf
  buscamos la línea HOOKS y añadimos:
keyboard fsck encrypt lvm2

  Y ya podemos generar el disco RAM inicial:
mkinitcpio -p linux
 Cambiamos el password de root:
passwd
 Cerramos la jaula (chroot):
exit 
 Desmontamos las particiones que hemos montado antes:
umount /mnt/boot
umount /mnt/
  Y por último antes de reiniciar habilitamos con systemd el servicio para montar particiones mediante LVM:
systemctl enable lvm-monitoring
  Ya podemos reiniciar y proseguir con la creación de usuarios, instalación del entorno gráfico, etc...


 Con todo esto concluyo esta quimérica entrada, pues me he basado fragmentos de varias entradas para escribir ésta que permite cifrar particiones en ArchLinux con el sistema actual (systemd).


Fuentes:


Nos leemos en breve ;)

5 0verl0ad Labs: Cifrando particiones en ArchLinux   Hace unos días me surgió la necesidad de formatear   porque me aburría  la partición de GNU/Linux del netbook e instalar ArchLinux . G...
< >