Cómo instalar Samba4 en CentOS 7 para compartir archivos en Windows


En nuestro último artículo, mostramos cómo instalar Samba4 en Ubuntu para compartir archivos básicos entre sistemas Ubuntu y máquinas Windows. Donde miramos la configuración anónima (no segura) así como el intercambio seguro de archivos.

Aquí, describiremos cómo instalar y configurar Samba4 en CentOS 7 (también funciona en RHEL 7) para compartir archivos básicos entre otros sistemas Linux y máquinas Windows.

Importante: a partir de la versión 4.0, Samba puede ejecutarse como un controlador de dominio de Active Directory Samba4, que incluye temas críticos para Ubuntu, CentOS y Windows.

Instalar Samba4 en CentOS 7

1. Primero instale Samba4 y los paquetes requeridos de los repositorios CentOS predeterminados usando la herramienta de administración de paquetes yum como se muestra.

# yum install samba samba-client samba-common

2. Después de instalar los paquetes de samba, habilite los servicios de samba a través del firewall del sistema con estos comandos.

# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --reload

Compruebe la configuración del grupo de trabajo de la máquina de Windows

3. Antes de continuar con la configuración de samba, asegúrese de que la máquina con Windows esté en el mismo grupo de trabajo que se configurará en el servidor CentOS.

Hay dos formas posibles de ver la configuración del grupo de trabajo de la máquina Windows:

  • Haga clic con el botón derecho en "Esta PC" o "Mi PC" → Propiedades → Configuración avanzada del sistema → Nombre de la computadora.

  • Alternativamente, abra el indicador de cmd y ejecute el siguiente comando, luego busque "dominio de estación de trabajo" en el resultado como se muestra a continuación.

>net config workstation

Configuración de Samba4 en CentOS 7

4. El archivo de configuración principal de samba es /etc/samba/smb.conf, el archivo original viene con ajustes de preconfiguración que explican varias directivas de configuración para guiarlo.

Pero, antes de configurar samba, le sugiero que realice una copia de seguridad del archivo predeterminado como este.

# cp /etc/samba/smb.conf /etc/samba/smb.conf.orig

Luego, proceda a configurar samba para servicios de intercambio de archivos anónimos y seguros como se explica a continuación.

5. Primero cree el directorio compartido donde se almacenarán los archivos en el servidor y establezca los permisos apropiados en el directorio.

# mkdir -p /srv/samba/anonymous
# chmod -R 0775 /srv/samba/anonymous
# chown -R nobody:nobody /srv/samba/anonymous

Además, debe cambiar el contexto de seguridad de SELinux para el directorio compartido de samba de la siguiente manera.

# chcon -t samba_share_t /srv/samba/anonymous

6. A continuación, abra el archivo de configuración de samba para editarlo, donde puede modificar/agregar las secciones a continuación con las directivas correspondientes.

# vi /etc/samba/smb.conf
[global]
	workgroup = WORKGROUP
	netbios name = centos
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

7. Ahora verifique la configuración actual de samba ejecutando el siguiente comando.

# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Anonymous]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	netbios name = centos
	printcap name = cups
	security = USER
	idmap config * : backend = tdb
	cups options = raw
[homes]
	comment = Home Directories
	browseable = No
	inherit acls = Yes
	read only = No
	valid users = %S %D%w%S
[printers]
	comment = All Printers
	path = /var/tmp
	browseable = No
	printable = Yes
	create mask = 0600
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	create mask = 0664
	directory mask = 0775
	write list = root
[Anonymous]
 	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	force user = nobody
	guest ok = Yes
	read only = No

8. Por último, inicie y habilite los servicios de samba para que se inicien automáticamente en el próximo arranque y también aplique los cambios anteriores para que surtan efecto.

# systemctl enable smb.service
# systemctl enable nmb.service
# systemctl start smb.service
# systemctl start nmb.service

9. Ahora en la máquina con Windows, abra "Red" desde una ventana del Explorador de Windows, luego haga clic en el host de CentOS, o intente acceder al servidor usando su dirección IP (use el comando ifconfig para obtener la dirección IP).

e.g. \2.168.43.168.

10. A continuación, abra el directorio Anónimo e intente agregar archivos para compartir con otros usuarios.

Configurar el uso compartido seguro de archivos de Samba4

11. Primero comience creando un grupo de sistema samba, luego agregue usuarios al grupo y establezca una contraseña para cada usuario así.

# groupadd smbgrp
# usermod tecmint -aG smbgrp
# smbpasswd -a tecmint

12. Luego cree un directorio seguro donde se guardarán los archivos compartidos y establezca los permisos apropiados en el directorio con el contexto de seguridad de SELinux para la samba.

# mkdir -p /srv/samba/secure
# chmod -R 0770 /srv/samba/secure
# chown -R root:smbgrp /srv/samba/secure
# chcon -t samba_share_t /srv/samba/secure

13. A continuación, abra el archivo de configuración para editarlo y modifique/agregue la sección a continuación con las directivas correspondientes.

# vi /etc/samba/smb.conf
[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

14. Nuevamente, verifique los valores de configuración de samba ejecutando el siguiente comando.

$ testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Anonymous]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	netbios name = centos
	printcap name = cups
	security = USER
	idmap config * : backend = tdb
	cups options = raw
[homes]
	comment = Home Directories
	browseable = No
	inherit acls = Yes
	read only = No
	valid users = %S %D%w%S
[printers]
	comment = All Printers
	path = /var/tmp
	browseable = No
	printable = Yes
	create mask = 0600
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	create mask = 0664
	directory mask = 0775
	write list = root
[Anonymous]
 	comment = Anonymous File Server Share
	path = /srv/samba/anonymous
	force user = nobody
	guest ok = Yes
	read only = No
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure
	read only = No
	valid users = @smbgrp

15. Reinicie los servicios de Samba para aplicar los cambios.

# systemctl restart smb.service
# systemctl restart nmb.service

16. Vaya a la máquina con Windows, abra “Red” desde una ventana del Explorador de Windows, luego haga clic en el host de CentOS o intente acceder al servidor usando su dirección IP.

e.g. \2.168.43.168.

Se le pedirá que proporcione su nombre de usuario y contraseña para iniciar sesión en el servidor CentOS. Una vez que haya ingresado las credenciales, haga clic en Aceptar.

17. Una vez que inicie sesión con éxito, verá todos los directorios compartidos de samba. Ahora comparta de forma segura algunos archivos con otros usuarios permitidos en la red colocándolos en el directorio seguro.

También puede consultar estos artículos útiles sobre el intercambio de archivos Samba en una red.

  1. Cómo montar/desmontar sistemas de archivos locales y de red (Samba y NFS) en Linux
  2. Uso de ACL (listas de control de acceso) y montaje de recursos compartidos de Samba/NFS
  3. Cómo reparar la vulnerabilidad de SambaCry (CVE-2017-7494) en sistemas Linux

En esta guía, le mostramos cómo configurar Samba4 para compartir archivos de forma anónima y segura entre CentOS y otros sistemas Linux, así como máquinas Windows. Comparta sus pensamientos con nosotros a través de la sección de comentarios a continuación.