Búsqueda de sitios web

Configurar Samba y configurar FirewallD y SELinux para permitir el intercambio de archivos en clientes Linux/Windows - Parte 6


Dado que las computadoras rara vez funcionan como sistemas aislados, es de esperar que, como administrador o ingeniero de sistemas, sepa cómo configurar y mantener una red con múltiples tipos de servidores.

En este artículo y en el siguiente de esta serie repasaremos los conceptos básicos para configurar servidores Samba y NFS con clientes Windows/Linux y Linux, respectivamente.

Este artículo definitivamente será útil si debe configurar servidores de archivos en entornos corporativos o empresariales donde es probable que encuentre diferentes sistemas operativos y tipos de dispositivos.

Dado que puedes leer sobre los antecedentes y los aspectos técnicos de Samba y NFS en Internet, en este artículo y en el siguiente iremos directo al grano con el tema en cuestión.

Paso 1: instalar el servidor Samba

Nuestro entorno de prueba actual consta de dos cajas RHEL 7 y una máquina Windows 8, en ese orden:


1. Samba / NFS server [box1 (RHEL 7): 192.168.0.18], 
2. Samba client #1 [box2 (RHEL 7): 192.168.0.20]
3. Samba client #2 [Windows 8 machine: 192.168.0.106]

En box1, instale los siguientes paquetes:


yum update && yum install samba samba-client samba-common

En caja2:


yum update && yum install samba samba-client samba-common cifs-utils

Una vez que se completa la instalación, estamos listos para configurar nuestro recurso compartido.

Paso 2: configurar el uso compartido de archivos a través de Samba

Una de las razones por las que Samba es tan relevante es porque proporciona servicios de archivos e impresión a clientes SMB/CIFS, lo que hace que esos clientes vean el servidor como si fuera un Sistema Windows (debo admitir que tiendo a emocionarme un poco al escribir sobre este tema, ya que fue mi primera configuración como nuevo administrador de sistemas Linux hace algunos años).

Agregar usuarios del sistema y configurar permisos y propiedad

Para permitir la colaboración grupal, crearemos un grupo llamado finanzas con dos usuarios (usuario1 y usuario2) con el comando useradd y un directorio /finanzas en el cuadro1.

También cambiaremos el propietario del grupo de este directorio a finanzas y estableceremos sus permisos en 0770 (permisos de lectura, escritura y ejecución para el propietario y el propietario del grupo):


groupadd finance
useradd user1
useradd user2
usermod -a -G finance user1
usermod -a -G finance user2
mkdir /finance
chmod 0770 /finance
chgrp finance /finance

Paso 3: Configurar SELinux y Firewalld

Al prepararnos para configurar /finance como un recurso compartido de Samba, necesitaremos deshabilitar SELinux o establecer los valores booleanos y de contexto de seguridad adecuados de la siguiente manera (de lo contrario, SELinux impedirá que los clientes accedan al recurso compartido):


setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
getsebool –a | grep samba_export
semanage fcontext –at samba_share_t "/finance(/.*)?"
restorecon /finance

Además, debemos asegurarnos de que el firewall permita el tráfico Samba.


firewall-cmd --permanent --add-service=samba
firewall-cmd --reload

Paso 4: configurar Samba Share

Ahora es el momento de sumergirnos en el archivo de configuración /etc/samba/smb.conf y agregar la sección para compartir: queremos que los miembros del grupo finance puedan para explorar el contenido de /finance y guardar / crear archivos o subdirectorios en él (que de forma predeterminada tendrán sus bits de permiso establecidos en 0770 y finance será el propietario de su grupo):


[finance]
comment=Directory for collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance

Guarde el archivo y luego pruébelo con la utilidad testparm. Si hay algún error, el resultado del siguiente comando indicará lo que necesita corregir. De lo contrario, mostrará una revisión de la configuración de su servidor Samba:

Si desea agregar otro recurso compartido que esté abierto al público (es decir, sin ningún tipo de autenticación), cree otra sección en /etc/samba/smb.conf y bajo el nombre del nuevo recurso compartido copie la sección anterior. , cambiando solo public=no a public=yes y sin incluir los usuarios válidos ni las directivas de lista de escritura.

Paso 5: Agregar usuarios de Samba

A continuación, deberá agregar usuario1 y usuario2 como usuarios de Samba. Para hacerlo, utilizará el comando smbpasswd, que interactúa con la base de datos interna de Samba. Se le pedirá que ingrese una contraseña que luego usará para conectarse al recurso compartido:


smbpasswd -a user1
smbpasswd -a user2

Finalmente, reinicie Samba, habilite el servicio para que se inicie al arrancar y asegúrese de que el recurso compartido esté realmente disponible para los clientes de la red:


systemctl start smb
systemctl enable smb
smbclient -L localhost –U user1
smbclient -L localhost –U user2

En este punto, el servidor de archivos Samba se ha instalado y configurado correctamente. Ahora es el momento de probar esta configuración en nuestros clientes RHEL 7 y Windows 8.

Paso 6: Montaje de Samba Share en Linux

Primero, asegúrese de que se pueda acceder al recurso compartido Samba desde este cliente:


smbclient –L 192.168.0.18 -U user2

(repita el comando anterior para el usuario1)

Como cualquier otro medio de almacenamiento, puedes montar (y luego desmontar) este recurso compartido de red cuando sea necesario:


mount //192.168.0.18/finance /media/samba -o username=user1

(donde /media/samba es un directorio existente)

o permanentemente, agregando la siguiente entrada en el archivo /etc/fstab:


//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0

Donde contiene el archivo oculto /media/samba/.smbcredentials (cuyos permisos y propiedad se han establecido en 600 y root:root, respectivamente). dos líneas que indican el nombre de usuario y la contraseña de una cuenta a la que se le permite usar el recurso compartido:


username=user1
password=PasswordForUser1

Finalmente, creemos un archivo dentro de /finance y verifiquemos los permisos y la propiedad:


touch /media/samba/FileCreatedInRHELClient.txt

Como puede ver, el archivo se creó con permisos 0770 y la propiedad establecida en usuario1:finance.

Paso 7: montar Samba Share en Windows

Para montar el recurso compartido Samba en Windows, vaya a Mi PC y elija Equipo, luego Asignar unidad de red. A continuación, asigne una letra para la unidad a mapear y marque Conectar usando diferentes credenciales (las capturas de pantalla a continuación están en español, mi idioma nativo):

Finalmente, creemos un archivo y verifiquemos los permisos y la propiedad:


ls -l /finance

Esta vez el archivo pertenece a usuario2 ya que esa es la cuenta que usamos para conectarnos desde el cliente de Windows.

Resumen

En este artículo hemos explicado no sólo cómo configurar un servidor Samba y dos clientes usando diferentes sistemas operativos, sino también cómo configurar el firewalld y SELinux en el servidor para permitir las capacidades de colaboración grupal deseadas.

Por último, pero no menos importante, permítame recomendarle la lectura de la página de manual en línea de smb.conf para explorar otras directivas de configuración que pueden ser más adecuadas para su caso que el escenario descrito en este artículo.

Como siempre, no dude en dejar un comentario utilizando el formulario a continuación si tiene algún comentario o sugerencia.