
Objetivo:
En este artículo vamos a habilitar SELinux en un servidor basado en Rocky y asegurando que los servicios samba y nfs funcionan correctamente con una configuración estricta y segura de SELinux.
Pasos Previos:
Para esta demostración he creado dos máquinas en local de Rocky 9
, en la cual una hara de servidor y otra de cliente.
El servidor se llama rocky
y el cliente rocky2
. Y como detalle final ya en la imagen descargada viene activado Selinux y en enforcing
por defecto.
Empezamos!
El primer paso es ir a la máquina servidor
e instalar las herramientas necesarias (en la captura ya lo tengo instalado):
dnf install samba samba-common samba-client nfs-utils

Arranco el servicio y lo dejo habilitado para reinicios:
systemctl start nfs-server.service
systemctl enable nfs-server.service
Ahora he creado el directorio /mnt/nfs/andres
y para indicar que quiero compartirlo, hay que declararlo en el archivo /etc/exports
:
/mnt/nfs/andres 172.22.0.0/16(rw,sync,no_all_squash,no_root_squash)
Hecho esto, para aplicar los cambios es con:
sudo exportfs -arv

Con sudo exportfs -s
se comprueba si ha salido bien:

Hecho esto, ahora en el rocky cliente
hay que instalar:
dnf install nfs-utils nfs4-acl-tools

Ahora para comprobar desde el cliente
lo que comparte el servidor es con:
sudo showmount -e 192.168.122.29
Esa ip es la del servidor.

Ahora he creado el directorio nfs
en /mnt
y lo he montado con:
sudo mount -t nfs 192.168.122.99:/mnt/nfs/andres /mnt/nfs

Para comprobarlo hice un mount metiendole un grep con 192:

Ahora con nfs configurado he ido al servidor y he creado un archivo para comprobar que se comparte:
(servidor)

Y en el lado del cliente funciona porque se ve como hago un ls y no hay nada, y luego haciendo otro justo ya aparece el archivo creado en el servidor:
(cliente)

Samba
Para esta parte he creado los directorios /mnt/samba/compartir y le he dado permisos:

Ahora en el archivo de config /etc/samba/smb.conf añado:

Y uso testparm:

Y permitirlo en el firewall (en la iso viene ya el firewall-cmd, pero en Openstack no):
sudo firewall-cmd --add-service=samba --zone=public --permanent
sudo firewall-cmd --reload

Y reinicio el servicio smb y nmb
Un detalle es que cree el usuario andres con smbpasswd -a andres, pero a la hora de montarlo en el cliente me decia que no se podia porque era solo de lectura, cuando en el archivo de samba le dije que no, revise mil veces los privilegios de los directorios y propietarios y nada asi que decidí hacerlo directamente conectandome desde el cliente al servidor.
El error:

Asi que me conecte así:
sudo smbclient //192.168.122.99/Andres
