Esta breve guía explica cómo instalar y configurar Samba en CentOS 7 para compartir un directorio con acceso público (sin usuario y contraseña).
En el artículo Cómo configurar Samba en Red Hat/CentOS expliqué detalladamente cómo crear y administrar usuarios de Samba para autenticar y autorizar el acceso a los shares. Pero, ¿qué pasa si necesitamos compartir un directorio y permitir el acceso anónimo (sin necesidad de autenticar al usuario)?. Anteriormente se podía utilizar el nivel de seguridad "share", pero ahora está obsoleto, y además no permitía tener una mezcla de niveles de seguridad. En las versiones actuales, es necesario configurar el usuario "guest", para permitir el acceso público o anónimo.
Samba es una suite de software libre/open source que provee servicios de acceso a archivos e impresoras para clientes SMB/CIFS. Esta herramienta proporciona interoperabilidad entre servidores GNU/linux y clientes Windows. El uso más común de Samba es para crear directorios de acceso remoto (conocidos como shares en la jerga Windows) y compartir impresoras.
Para instalar Samba en CentOS 7 ejecutar:
# yum install samba samba-client samba-common
Luego es necesario configurar el servicio. Editar el archivo /etc/samba/smb.conf
:
# nano /etc/samba/smb.conf
Realizar los siguientes cambios.
Debajo de la sección "[global]" configurar el grupo de trabajo de la red (ej. "WORKGROUP"), el nivel de seguridad "user" y el mapeo al usuario "guest":
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = fileserver01 security = user map to guest = bad user dns proxy = no
Para evitar problemas se recomienda configurar el nombre NetBIOS de forma que coincida con el nombre de host del servidor ("fileserver01" en el ejemplo anterior).
Luego, a modo de ejemplo, si se desea compartir el directorio /data/public
con acceso anónimo, agregar las siguientes líneas debajo de la sección de definición de shares (debajo de la línea #============================ Share Definitions ==============================
o al final de archivo):
[public] path = /data/public browsable = yes writable = yes guest ok = yes read only = no
La línea de configuración más importante es la que habilita el acceso anónimo: guest ok = yes
. Si se desea que el acceso sea de sólo lectura, cambiar writable = yes
por writable = no
.
Al finalizar la edición, guardar los cambios.
Luego es necesario habilitar e iniciar los servicios de Samba:
# systemctl enable smb.service # systemctl enable nmb.service # systemctl restart smb.service # systemctl restart nmb.service
Y habilitar el acceso en el firewall:
# firewall-cmd --permanent --zone=public --add-service=samba # firewall-cmd --reload
Finalmente es posible verificar el acceso mediante el nombre NetBIOS (\\fileserver01
) desde un host Windows en la red local:
