Búsqueda de sitios web

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 analizamos la configuración del intercambio de archivos anónimo (no seguro) y seguro.

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 (DC) de Active Directory (AD). Le sugerimos que lea nuestra serie especial sobre cómo configurar el 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 necesarios de los repositorios predeterminados de CentOS utilizando 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 para que se permitan a través del firewall del sistema con estos comandos.

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

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

3. Antes de continuar con la configuración de samba, asegúrese de que la máquina 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:

  • Haciendo clic derecho en “Esta PC” o “Mi PC” → PropiedadesConfiguración avanzada del sistema Nombre del ordenador.

  • Alternativamente, abra el indicador 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

Configurando 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 haga 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 anónimos y intercambio de archivos seguro como se explica a continuación.

Intercambio anónimo de archivos Samba4

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 podrá modificar/agregar las secciones siguientes 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. Finalmente, inicie y habilite los servicios de Samba para que se inicien automáticamente en el próximo inicio 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

Prueba del intercambio anónimo de archivos Samba

9. Ahora, en la máquina Windows, abra “Red” desde una ventana del Explorador de Windows, luego haga clic en el host CentOS o intente acceda 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 allí para compartirlos con otros usuarios.

Configurar el uso compartido seguro de archivos Samba4

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

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 SELinux para 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 siguiente 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 ajustes 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

Prueba del uso compartido seguro de archivos Samba

16. Vaya a la máquina con Windows, abra “Red” desde una ventana del Explorador de Windows, luego haga clic en el host CentOS o intente acceder el servidor utilizando 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 correctamente, 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 Secure.

También puede consultar estos útiles artículos 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 Samba/NFS
  3. Cómo reparar la vulnerabilidad 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 con Windows. Comparta sus pensamientos con nosotros a través de la sección de comentarios a continuación.