Network filesystems & file services. Configurar sistemas para montar bajo demanda sistemas de ficheros estándar, encriptados y de red.

Introducción.

En el capítulo "Network filesystems & file services. Crear, montar y desmontar Sistemas de ficheros estándar de Linux." ya habiamos repasado como se montan sistemas de ficheros "estándar" tanto manualmente mediante comandos como de forma automática en el inicio (no confundir con "bajo demanda"??)

En este tema veremos.

  • Configuración de sistemas de ficheros encriptados.
  • Montar sistemas de ficheros encriptados.
  • Montar sistemas de ficheros de red.
  • Montar sistemas de ficheros de red para su inicio automático.
  • Montaje de sistemas de ficheros bajo demanda con automount.

Configuración de sistemas de ficheros encriptados.

Para encriptar sistemas de ficheros usaremos Cryptsetup que es basicamente un frontend para usar el módulo de encriptación del Kernel, dm-crypt, eliminando las llamadas directas a dmsetup. Mediante estas utilidades encriptaremos las particiones de disco usando el estandar LUKS.
Será necesario encriptar la partición antes de crear el sistema de archivos por lo que si queremos encriptar una partición con información existente será necesario hacer una copia primero.

Si no tenemos dichas utilidades instaladas lo hacemos:

yum install cryptsetup

Siguiendo con el ejemplo del caṕitulo previo vamos a encriptar una partición estandar xfs. Nos tenemos que asegurar primero de que no esté ni montada ni disponible en /etc/fstab inicialmente.
Encriptamos el sistema de archivos em formato LUKS en su forma más sencilla:

[]# cryptsetup -y luksFormat /dev/sdb1
WARNING!
Esto sobreescribirá los datos en /dev/sdb1 de forma irrevocable.
Are you sure? (Type uppercase yes): YES
Introduzca la frase contraseña: 
Verifique la frase contraseña: 

ATENCIÓN la respuesta YES debe ser así en mayúsculas (Type uppercase yes).

Podriamos cambiar distintas opciones de encriptación relativas a los algoritmos usados (ver la ayuda del comando). Para ver las opciones que usa por defecto.

[]# cryptsetup --help
                          ..
Parámetros predefinidos de fábrica de clave y de frase contraseña:
    Tamaño máximo del fichero de claves: 8192k8, Longitud máxima de frase contraseña interactiva: 512 (caracteres)
Tiempo PBKDF2 de iteración de LUKS predefinido: 1000 (ms)

Parámetros predefinidos de fábrica del algoritmo de cifrado de dispositivos:
    bucle-AES: aes, Clave 256 bits
    sin cifrado: aes-cbc-essiv:sha256, Clave: 256 bits, Contraseña «hashing»: ripemd160
    LUKS1: aes-xts-plain64, Clave: 256 bits, «hashing» de la cabecera LUKS: sha1, Generador de números aleatorios: /dev/urandom

Abrimos el disco para acceso a este.

Mediante la acción "luksOpen" accedemos al disco (y le damos un nombre). Este será accesible en /dev/mapper/NOMBRE

[]# cryptsetup luksOpen /dev/sdb1 disco_encriptado
Introduzca la frase contraseña de /dev/sdb1: 

[]# ll /dev/mapper/disco_encriptado 
/dev/mapper/disco_encriptado -> ../dm-2

Realmente el comando adecuado debería ser:

[]# cryptsetup open --type luks /dev/sdb1 disco_encriptado
Introduzca la frase contraseña de /dev/sdb1: 

La opción "luksOpen" se mantiene por compatibilidad. En cualquier caso es más sencillo recordad para todo "luks+Accion"

Creamos el sistema de archivos. Una vez abierto y accesible el disco podemos crear el sistema de archivos necesario y montarlo. p.e.

mkfs.xfs /dev/mapper/disco_encriptado 
mount /dev/mapper/disco_encriptado /mnt/midisco

Cerrar el disco Para cerrar el disco se usa la acción 'luksClose' aplicado al nombre del disco pero tenemos que desmontar la partición previamente

[]# umount /dev/mapper/disco_encriptado
[]# cryptsetup luksClose disco_encriptado

Montar sistemas de ficheros encriptados al inicio del sistema.

Los Sistemas de ficheros encriptados usan como el resto /etc/fstab para su configuración de inicio pero con una configuración adicional.

1.- Configuramos el mapeo de nombre fijo para nuestro dispositivo. Lo hacemos añadiendo una línea a /etc/crypttab. Nos aseguramos de poner la opción "noauto" para que no nos pida la password durante el inicio ya que ante cualquier problema no iniciará el sistema.

disco_encriptado /dev/sdb1 none noauto

2.-Configuramos la línea de inicio en/etc/fstab como cualquier otro disco.

/dev/mapper/disco_encriptado /mnt/midisco xfs noauto,defaults 1 2

En este caso podemos optar por no poner "noauto" para que en el inicio nos pida la clave de acceso y monte el volumen. Tampoco conviene en general. Es mejor usar automount como veremos posteriormente para que el disco se monte y nos pida la clave cuando lo usemos.

Montar sistemas de ficheros de red.

En otros capitulos hemos visto como configurar NFS para servio directorior por red. Ahora echaremos un ojo rápido a como montarlos. Realmente no se diferencia especialmente de montar cualquier sistema de ficheros pero si que tendremos que dedicarle algo más de tiempo a las utilidades de verificación y exploración para evitar problemas.

Debemos tener obviamente el servidor NFS correctamente configurado como se ve en el capitulo correspondiente de esta sección. Siempre verificamos primero en el propio servidor que estamos exportando correctamente el/los recursos con showmount o exportfs.

[]# showmount -e localhost
Export list for localhost:
/var/mi_share 192.168.122.0/24

[]# exportfs -v
/var/mi_share     192.168.122.0/24(rw,wdelay,no_root_squash,no_subtree_check,sec=sys,rw,secure,no_root_squash,no_all_squash)

Luego desde el cliente podemos verificar ya que vemos los recursos compartidos del servidor.

[~]# showmount -e 172.31.18.4
Export list for 172.31.18.4:
/var/mi_share *

Usaremos como siempre mount para montar el sistema de ficheros nfs desde el equipo cliente. La sintaxis es:

mount -t nfs -o options host:/remote/export /local/directory

Montamos nuestra unidad en un directorio local, sin opciones (usará opciones por defecto) y verificamos con df y con mount además vemos que opciones ha usado para montarlo.

[]# mount -t nfs 172.31.18.4:/var/mi_share /mnt/dir1

[]# df -h
S.ficheros                Tamaño Usados  Disp Uso% Montado en
/dev/xvda1                   20G   4,9G   16G  25% /
devtmpfs                    473M      0  473M   0% /dev
tmpfs                       496M      0  496M   0% /dev/shm
tmpfs                       496M    13M  484M   3% /run
tmpfs                       496M      0  496M   0% /sys/fs/cgroup
tmpfs                       100M   4,0K  100M   1% /run/user/1001
tmpfs                       100M      0  100M   0% /run/user/0
172.31.18.4:/var/mi_share    20G   4,9G   16G  25% /mnt/dir1

[]# mount | grep mi_share
172.31.18.4:/var/mi_share on /mnt/dir1 type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.31.18.50,local_lock=none,addr=172.31.18.4)

Algunas opciones de montado de sistemas de ficheros NFS más habituales.

  • timeo=n Establece el tiempo (en décimas de segundo) que el cliente de NFS esperará por la respuesta a una petición. El valor predefinido vemos que es 600 (6 segundos). Lo que pase después depende de si usa la opción hard o soft.

  • hard Explícitamente marca este volumen como montado físicamente. Es el valor predeterminado. Esta opción hace que el servidor muestre por la consola un mensaje cuando expira el tiempo de operación y continúa indefinidamente.

  • soft Monta lógicamente (como opuesto al montaje físico) el controlador. Esta opción causa un error de E/S a ser informado al proceso que intenta poner en funcionamiento un fichero cuando expira el tiempo de operación.

  • intr Permite una señal para interrumpir una llamada a NFS. Es útil parar abortar cuando el el servidor no responde.

  • nfsvers=version Especifica que versión del protocolo NFS usará (2,3 o 4). Es útil por si el Host soporta varias versiones y nos interesa usar una concreta. Si no se especifica usa la versión más alta que soporte el kernel y el comando mount.

  • udp / tcp Especifica que protocolo ser usará para montar el sistema de ficheros (si el servidor lo soporta).

Montar sistemas de ficheros de red para su inicio automático.

Para que se monten los Sistemas de ficheros NFS en el inicio del sistema se configuraran en /etc/fstab igual que cualquier otro sistema de ficheros.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx

Montar y desmontar sistemas de ficheros bajo demanda.

Además de montar sistemas de ficheros de forma automática al inicio (mediante configuración en fstab) podemos hacer que se monten solo cuando se necesiten, o sea se montarán cuando se acceda al punto de montaje definido. Es una característica muy interesante ya que al no estar montados no consumirán recursos. Además se evita montarlos en inicio que a veces pueden ocasionar problemas de inicio y/o lentitud en caso de sistemas de ficheros de red.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxxx

Referencias.