12 minute read

Ej. Práctico 4.5.1: RAID, ACLs y Cuotas Solución Ej. Pr. 4.5.1.I.- Gestión de Volúmenes RAID5 y RAID6, ACLs y Cuotas .......................................................................................................................................175

Práctica Nº4.-Sistemas RAID. ACLs y Cuotas. Delegación de Privilegios con Sudo

Comando y Descripción [root@linux]# quotatool -u arturo -b -q 500MB /mnt/datos

Advertisement

Establece un límite blando, -q, de espacio en disco, -b, de 500MB al usuario, -u, "arturo" en el punto de montaje o sistema de archivos /mnt/datos [root@linux]# quotatool -u arturo -b -l 700MB /mnt/datos

Similar al anterior, pero en este caso se ha establecido un límite duro, -l, de 700MB [root@linux]# quotatool -u arturo -b -q 500MB -l 700MB /mnt/datos Una convinación de los dos comandos anteriores [root@linux]# quotatool -u arturo -i -q 100000 -l 100500 /mnt/datos

Establece un límite relativo al número de inodos o archivos que puede crear el usuario, -u, "arturo", en el punto de montaje /mnt/datos, con un límite blando, -q, de 100000 inodos, y uno duro de 100500 inodos [root@linux]# quotatool -u -b -t "5 days" /mnt/datos Establece un tiempo de gracia, -t, de 5 días, "5 days", con carácter general para todos los usuarios, para subsanar el problema de cuotas en el caso de saltarse el límite blando establecido al límite de espacio en disco, -b [root@linux]# quotatool -u arturo -b -q 500MB -l 700MB -i -q 100000 -l 100500 /mnt/datos

Establece un límite blando y duro tanto de espacio en disco como de inodos al usuario "arturo" sobre el punto de montaje /mnt/datos

Ej. Práctico 4.5.1: RAID, ACLs y Cuotas

Agrega cinco nuevos discos de 350MB cada uno a una de las máquinas virtuales que tengas disponible en VirtualBox (p.e. /dev/sdb, ... y /dev/sdf) con la finalidad de repasar todo lo visto en la presente práctica: (A) Implementación de volúmenes RAID5 y RAID6 con la finalidad de aumentar la fiabilidad y rapidez de acceso a datos de nuestro equipo, (B) la gestión de las ACLs que nos permitirán controlar los privilegios de los distintos usuarios dados de alta en el equipo, y (C) la administración de Cuotas que nos permitirán establecer límites de espacio en disco (a modo de ejemplo, se supondrá que el nombre de la máquina donde se implementa la práctica es "mv1").

Para ello, deberemos cumplir los siguientes aspectos: (A) Implementaremos volúmenes RAID haciendo uso de particiones de disco, en lugar de discos enteros. Por ello, comenzaremos particionando cada uno de los discos haciendo uso de alguna herramienta de particionado, p.e. fdisk, de tal forma que cada disco disco de 350MB sea dividido en tres particiones: 1) 120MB, 2) 130MB y 3) 100MB.

A continuación agruparemos las distintas particiones de los cuatro primeros discos y formaremos un volumen RAID5 y dos volúmenes RAID6 en formato ext4 con las características que se muestran en la siguiente tabla, teniendo en cuenta, que los volúmenes RAID deberán montarse de mantera automática mediante /etc/fstab con las opciones de ACL y cuotas para usuario y grupo (el quinto disco /dev/sdf se usará para suplir fallos provocados intencionadamente a los

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 172

Práctica Nº4.-Sistemas RAID. ACLs y Cuotas. Delegación de Privilegios con Sudo

volúmenes RAID): Volúmenes RAID 4 Particiones que forman los RAID Punto de Montaje

RAID5 /dev/md/mv1:raid51 120MB (p.e. /dev/sdb1, ..., /dev/sde1) /mnt/raid51

RAID6 /dev/md/mv1:raid61 130MB (p.e. /dev/sdb2, ..., /dev/sde2) /mnt/raid61

RAID6 /dev/md/mv1:raid62 100MB (p.e. /dev/sdb3, ..., /dev/sde3) /mnt/raid62

(B) Deberá configurarse las siguientes ACLs sobre diferentes subcarpetas ubicadas en los puntos de montaje anteriores asociadas a los siguientes usuarios, que deberás crear previamente: Usuarios Grupo Usuarios Shell Directorio Home usuftp1 usuftp2 usuftp3 usuftp4 usuftp5 grupoftp1 /bin/false /mnt/raid51/usuftpX (X se corresponde con el identificador de cada uno de los grupoftp2 /bin/bash usuarios 1, …, 5)

En cuanto a las ACLs a asignar: Directorios Usuarios / Grupos ACL Backup /mnt/raid51/usuftpX

Directorios HOME grupoftp1, grupoftp2 rwx /root/acl-raid51.bkp

/mnt/raid61/videos /mnt/raid61/musica /mnt/raid61/elibros

/mnt/raid61/documentacion /mnt/raid61/basura

/mnt/raid62/informes /mnt/raid62/facturas /mnt/raid62/nominas usuftp1, usuftp2 rwx usuftp3, grupoftp2 r-x grupoftp1 r-grupoftp2 rwx grupoftp1, usuftp4 rwx usuftp5 --/root/acl-raid61.bkp

/root/acl-raid62.bkp

(C) Deberán asignarse cuotas sobre los puntos de montaje anteriores, teniendo en cuenta las ACLs anteriores (si un usuario no tiene permisos de escritura, no tiene sentido asignarle cuota) que el tiempo de gracia deberá cambiarse para que sea 2 días:

Punto de Montaje Usuario / Grupo Cuota Bloque Cuota Inodos /mnt/raid51 usuftp1, usuftp2 10MB/14MB 100/110

Directorios HOME y Subdirectorios usuftp3, usuftp4 usuftp5 5MB/8MB 18/22 4MB/6MB 18/22

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 173

Práctica Nº4.-Sistemas RAID. ACLs y Cuotas. Delegación de Privilegios con Sudo

/mnt/raid61

/mnt/raid62 grupoftp1 usuftp4, usuftp5 usuftp1, usuftp4 usuftp2, usuftp3 usuftp5

- 18MB/20MB 120/135 30MB/31MB 600/720 15MB/18MB 180/200 - -

Por último realizaremos las comprobaciones del correcto funcionamiento de la configuración implementada. Para ello, configura tres servicios FTP (p.e. proftpd, apt-get install proftpd) por los puertos 21001, 21002 y 21003 de tal forma que puedan acceder a él los usuarios anteriores. Comprueba el límite de cuota y los permisos establecidos por las ACLs: Sitio FTP Usuarios Permitidos (LOGIN) DefaultRoot (Raiz del FTP)

FTP1 – Puerto 21001 Todos ~ Directorio HOME

FTP2 – Puerto 21002 grupoftp1, usuftp4 /mnt/raid61

FTP3 – Puerto 21003 grupoftp2, usuftp1 /mnt/raid62 ¡¡Aclaración!! A continuación se muestra un ejemplo de configuración del servicio FTP proftpd (p.e. dirección ip del servidor 192.168.1.1), teniendo en cuenta que el archivo de configuración del servicio proftpd esta ubicado en"/etc/proftpd/proftpd.conf": [root@mv1]# nano /etc/proftpd/proftpd.conf # Incluir la siguiente configuración al comienzo del archivo de configuración proftpd.conf <VirtualHost 192.168.1.1> Port 21001 RequireValidShell off DefaultRoot ~ <Limit LOGIN> AllowGroup grupoftp1 grupoftp2 DenyAll </Limit> </VirtualHost> <VirtualHost 192.168.1.1> Port 21002 RequireValidShell off DefaultRoot /mnt/raid61 <Limit LOGIN> AllowGroup grupoftp1 AllowUser usuftp4 DenyAll </Limit> </VirtualHost> <VirtualHost 192.168.1.1> Port 21003 RequireValidShell off

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 174

Práctica Nº4.-Sistemas RAID. ACLs y Cuotas. Delegación de Privilegios con Sudo

DefaultRoot /mnt/raid62 <Limit LOGIN> AllowGroup grupoftp2 AllowUser usuftp1 DenyAll </Limit> </VirtualHost>

Solución Ej. Pr. 4.5.1.I.- Gestión de Volúmenes RAID5 y RAID6, ACLs y Cuotas

Para dar solución al ejercicio práctico planteado seguiremos los siguientes pasos: (A) Implementación de los volúmenes RAID5 y RAID6.

Una vez agregados los 5 discos a la máquina (p.e. /dev/sdb, …, /dev/sdf), comenzaremos la práctica particionando uno de los discos mediante fdisk, creando tres particiones primarias de 120MB, 130MB y 100MB respectivamente, para después hacer una copia del particionado sobre el resto mediante sfdisk: [root@mv1]# fdisk /dev/sdb Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-716799, default 2048): 2048 Last sector, +sectors or +size{K,M,G} (2048-716799, default 716799): +120MB

Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): 2 First sector (236423-716799, default 236423): 236423 Last sector, +sectors or +size{K,M,G} (236423-716799, default 716799): +130MB

Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (1-4, default 3): 3 First sector (490329-716799, default 490329): 490329 Last sector, +sectors or +size{K,M,G} (490329-716799, default 716799): 716799

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 175

Práctica Nº4.-Sistemas RAID. ACLs y Cuotas. Delegación de Privilegios con Sudo

Command (m for help): p Disk /dev/sdq: 367 MB, 367001600 bytes 255 heads, 63 sectors/track, 44 cylinders, total 716800 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System /dev/sdq1 2048 236422 117187+ 83 Linux /dev/sdq2 236423 490328 126953 83 Linux /dev/sdq3 490329 716799 113235+ 83 Linux

Command (m for help): w [root@mv1]# sfdisk -d /dev/sdb | sfdisk /dev/sdc --force [root@mv1]# sfdisk -d /dev/sdb | sfdisk /dev/sdd --force [root@mv1]# sfdisk -d /dev/sdb | sfdisk /dev/sde --force [root@mv1]# sfdisk -d /dev/sdb | sfdisk /dev/sdf –force

Después, antes de empezar a crear los volúmenes RAID, comprobaremos que los discos están correctamente particionados listando los dispositivos reconocidos por la máquina: [root@mv1]# ls /dev/sd* /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2 /dev/sde2 /dev/sdf2 /dev/sda5 /dev/sdb3 /dev/sdc3 /dev/sdd3 /dev/sde3 /dev/sdf3

Ahora pasaremos a crear y formatear los volúmenes RAID: un RAID5 con las 4 primeras particiones de cuatro de los discos, y dos RAID6 con el resto de particiones, tal como se especifica en la tabla del enunciado (las particiones del último disco /dev/sdf las usaremos en pruebas de fallos): [root@mv1]# mkdir /dev/md [root@mv1]# mdadm --create /dev/md/mv1:raid51 --level=raid5 \ --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 [root@mv1]# mdadm --create /dev/md/mv1:raid61 --level=raid6 \ --raid-devices=4 /dev/sdb2 /dev/sdc2 /dev/sdd2 /dev/sde2 [root@mv1]# mdadm --create /dev/md/mv1:raid62 --level=raid6 \ --raid-devices=4 /dev/sdb3 /dev/sdc3 /dev/sdd3 /dev/sde3 [root@mv1]# mdadm --detail /dev/md/mv1:raid51 [root@mv1]# mdadm --detail /dev/md/mv1:raid61 [root@mv1]# mdadm --detail /dev/md/mv1:raid62 [root@mv1]# mkfs.ext4 /dev/md/mv1:raid51 [root@mv1]# mkfs.ext4 /dev/md/mv1:raid61 [root@mv1]# mkfs.ext4 /dev/md/mv1:raid62

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 176

Práctica Nº4.-Sistemas RAID. ACLs y Cuotas. Delegación de Privilegios con Sudo

Por último, introduciremos en el archivo de configuración del mdadm la especificación de los tres volúmenes RAID que acabamos de crear, más la lista de dispositivos utilizados: [root@mv1]# echo "DEVICE /dev/sd*" >> /etc/mdadm/mdadm.conf [root@mv1]# mdadm --detail --scan | tail -3 >> /etc/mdadm/mdadm.conf

Una vez creados los dispositivos RAID, sería conveniente reiniciar el equipo para comprobar que persisten, antes de proceder a configurar el montaje automático de los volúmenes RAID mediante /etc/fstab con soporte para acl y cuotas: [root@mv1]# init 6 [root@mv1]# ls /dev/md/* /dev/md/mv1:raid51 /dev/md/mv1:raid61 /dev/md/mv1:raid62

[root@mv1]# nano /etc/fstab … /dev/md/mv1:raid51 /mnt/raid51 ext4 user,rw,exec,defaults,acl,usrquota,grpquota 0 0 /dev/md/mv1:raid61 /mnt/raid61 ext4 user,rw,exec,defaults,acl,usrquota,grpquota 0 0 /dev/md/mv1:raid62 /mnt/raid62 ext4 user,rw,exec,defaults,acl,usrquota,grpquota 0 0

Por último, comprobaríamos su correcto montaje, y que al reiniciar la máquina el montaje se realiza automáticamente: [root@mv1]# mount /mnt/raid51 [root@mv1]# mount /mnt/raid61 [root@mv1]# mount /mnt/raid62 [root@mv1]# df -h [root@mv1]# init 6 … [root@mv1]# df -h

¡¡Sugerencia!! Tras implementar los volúmenes RAID sería interesante provocar fallos en alguno de los discos de los sistemas RAID1 y RAID5 (en el RAID0 no se puede provocar, ya que provocaría la perdida de todos los datos) y comprobar que los datos siguen estando disponibles. El disco /dev/sdf puede usarse para suplir los fallos provocados mediante mdadm.

Por ejemplo, si provocamos un fallo en la primera partición del disco /dev/sde1, podremos comprobar que los datos persisten al tratarse de un RAID5, y posteriormente suplir dicha partición con la primera partición del disco /dev/sdf1: [root@mv1]# mdadm --fail /dev/md/mv1:raid51 /dev/sde1 [root@mv1]# mdadm --detail /dev/md/mv1:raid51 [root@mv1]# mdadm --remove /dev/md/mv1:raid51 /dev/sde1 [root@mv1]# mdadm --detail /dev/md/mv1:raid51 [root@mv1]# mdadm --add /dev/md/mv1:raid51 /dev/sdf1 [root@mv1]# mdadm --detail /dev/md/mv1:raid51

(B) Continuaremos la práctica con la creación de los usuarios y la gestión de ACLs, según se

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 177

Práctica Nº4.-Sistemas RAID. ACLs y Cuotas. Delegación de Privilegios con Sudo

especifica en el enunciado del ejercicio práctico. Para la creación de los usuarios y grupos se hará uso de los comandos useradd y groupadd, siendo necesario usar usermod en el caso de que alguno de los usuarios ya existe previamente: [root@mv1]# groupadd grupoftp1 [root@mv1]# groupadd grupoftp2 [root@mv1]# useradd -m -d /mnt/raid51/usuftp1 -s /bin/false -g grupoftp1 usuftp1 [root@mv1]# useradd -m -d /mnt/raid51/usuftp2 -s /bin/false -g grupoftp1 usuftp2 [root@mv1]# useradd -m -d /mnt/raid51/usuftp3 -s /bin/false -g grupoftp1 usuftp3 [root@mv1]# useradd -m -d /mnt/raid51/usuftp4 -s /bin/false -g grupoftp2 usuftp4 [root@mv1]# useradd -m -d /mnt/raid51/usuftp5 -s /bin/false -g grupoftp2 usuftp5 [root@mv1]# passwd usuftp1 [root@mv1]# passwd usuftp2 [root@mv1]# passwd usuftp3 [root@mv1]# passwd usuftp4 [root@mv1]# passwd usuftp5

En cuanto a las ACLs solicitadas en el enunciado, las estableceremos mediante la utilización del comando setfacl, comprobando su asignación mediante el comando getfacl. De igual forma, getfacl nos permitirá hacer un backup de las ACLs asignadas (sobre los directorios HOME no es necesario asignar ACLs, ya que por defecto son propietarios de su HOME y ya tienen permisos rwx): [root@mv1]# mkdir /mnt/raid61/videos /mnt/raid61/musica /mnt/raid61/elibros [root@mv1]# mkdir /mnt/raid61/documentacion /mnt/raid61/basura [root@mv1]# mkdir /mnt/raid62/informes /mnt/raid62/facturas /mnt/raid62/nominas [root@mv1]# setfacl -m u:usuftp1:rwx,u:usuftp2:rwx,u:usuftp3:r-x,g:grupoftp2:r-x \ /mnt/raid61/videos /mnt/raid61/musica /mnt/raid61/elibros [root@mv1]# setfacl -m g:grupoftp1:r--,g:grupoftp2:rwx \ /mnt/raid61/documentacion /mnt/raid61/basura [root@mv1]# setfacl -m g:grupoftp1:rwx,u:usuftp4:rwx,u:usuftp5:--- \ /mnt/raid62/informes /mnt/raid62/facturas /mnt/raid62/nominas

[root@linux]# getfacl -Rp /mnt/raid51 | more [root@linux]# getfacl -Rp /mnt/raid61 | more [root@linux]# getfacl -Rp /mnt/raid62 | more [root@linux]# getfacl -Rp /mnt/raid51 > /root/acl-raid51.bkp [root@linux]# getfacl -Rp /mnt/raid61 > /root/acl-raid61.bkp [root@linux]# getfacl -Rp /mnt/raid62 > /root/acl-raid62.bkp

Si quisiéramos eliminar todas las ACLs asignadas, y probar luego a restaurarlas: [root@linux]# setfacl -Rb /mnt/raid51 [root@linux]# setfacl -Rb /mnt/raid61 [root@linux]# setfacl -Rb /mnt/raid62

Y por último, probaremos a restaurarlas, y y volver a mostrar:

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 178

Práctica Nº4.-Sistemas RAID. ACLs y Cuotas. Delegación de Privilegios con Sudo

[root@linux]# setfacl --restore=/root/acl-raid51.bkp [root@linux]# setfacl --restore=/root/acl-raid61.bkp [root@linux]# setfacl --restore=/root/acl-raid62.bkp [root@linux]# getfacl -Rp /mnt/raid51 | more [root@linux]# getfacl -Rp /mnt/raid61 | more [root@linux]# getfacl -Rp /mnt/raid62 | more

(C) En relación a las cuotas especificadas en el enunciado, su asignación la haremos mediante el comando quotatool, pero antes deberemos activar los sistemas de quota en los volúmenes RAID recientemente creados. Para ello, en primer lugar desactivaremos todos los sistemas de cuota que pudieran estar activados en el equipo, quotaoff -a, para evitar conflictos, y después chequearemos y activaremos las cuotas en el RAID5 y los RAID6: [root@mv1]# quotaoff -a [root@mv1]# quotacheck -ugm /mnt/raid51 [root@mv1]# quotacheck -ugm /mnt/raid61 [root@mv1]# quotacheck -ugm /mnt/raid62 [root@mv1]# quotaon -ugv /mnt/raid51 [root@mv1]# quotaon -ugv /mnt/raid61 [root@mv1]# quotaon -ugv /mnt/raid62 [root@mv1]# quotatool -u usuftp1 -b -q 10MB -l 14MB -i -q 100 -l 110 /mnt/raid51 [root@mv1]# quotatool -u usuftp2 -b -q 10MB -l 14MB -i -q 100 -l 110 /mnt/raid51 [root@mv1]# quotatool -u usuftp3 -b -q 5MB -l 8MB -i -q 12 -l 22 /mnt/raid51 [root@mv1]# quotatool -u usuftp4 -b -q 5MB -l 8MB -i -q 12 -l 22 /mnt/raid51 [root@mv1]# quotatool -u usuftp5 -b -q 4MB -l 6MB -i -q 12 -l 22 /mnt/raid51 [root@mv1]# quotatool -u usuftp4 -b -q 18MB -l 20MB -i -q 120 -l 135 /mnt/raid61 [root@mv1]# quotatool -u usuftp5 -b -q 18MB -l 20MB -i -q 120 -l 135 /mnt/raid61 [root@mv1]# quotatool -u usuftp1 -b -q 30MB -l 31MB -i -q 600 -l 720 /mnt/raid62 [root@mv1]# quotatool -u usuftp4 -b -q 30MB -l 31MB -i -q 600 -l 720 /mnt/raid62 [root@mv1]# quotatool -u usuftp2 -b -q 15MB -l 18MB -i -q 180 -l 200 /mnt/raid62 [root@mv1]# quotatool -u usuftp3 -b -q 15MB -l 18MB -i -q 180 -l 200 /mnt/raid62 [root@mv1]# quotatool -u -b -i -t "2 days" /mnt/raid51 [root@mv1]# quotatool -u -b -i -t "2 days" /mnt/raid61 [root@mv1]# quotatool -u -b -i -t "2 days" /mnt/raid62

Por último, sería cuestión de probar tanto las ACLs como las cuotas asignadas mediante algún tipo de servicio (p.e. proftpd, samba, etc.) a través del cual accedieran los usuarios creados anteriormente. Para comprobar los permisos concedidos mediante las ACLs tan sólo será necesario intentar crear algún directorio o modificar el nombre del algún archivo. Para comprobar los límites de cuota deberemos subir algo al servidor e ir visualizando simultáneamente el informe de cuotas del punto de montaje, p.e. "repquota -suv /mnt/raid61", hasta comprobar que ya no nos deja almacenar más datos: [root@mv1]# apt-get install proftpd [root@mv1]# nano /etc/proftpd/proftpd.conf # Incluir la siguiente configuración al comienzo del archivo de configuración proftpd.conf

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 179

Práctica Nº4.-Sistemas RAID. ACLs y Cuotas. Delegación de Privilegios con Sudo

<VirtualHost 192.168.1.1> Port 21001 RequireValidShell off DefaultRoot ~ <Limit LOGIN> AllowGroup grupoftp1 grupoftp2 DenyAll </Limit> </VirtualHost> <VirtualHost 192.168.1.1> Port 21002 RequireValidShell off DefaultRoot /mnt/raid61 <Limit LOGIN> AllowGroup grupoftp1 AllowUser usuftp4 DenyAll </Limit> </VirtualHost> <VirtualHost 192.168.1.1> Port 21003 RequireValidShell off DefaultRoot /mnt/raid62 <Limit LOGIN> AllowGroup grupoftp2 AllowUser usuftp1 DenyAll </Limit> </VirtualHost> ...

Seguridad Informática y Alta Disponibilidad – amartinromero@gmail.com 180

This article is from: