![](https://static.isu.pub/fe/default-story-images/news.jpg?width=720&quality=85%2C50)
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