Este tutorial explica cómo configurar un servidor Samba en CentOS 7 con recursos compartidos de Samba anónimos y seguros. Samba es una suite de código abierto/software gratuito que proporciona servicios de archivo e impresión sin interrupciones a clientes SMB/CIFS como Windows. Samba está disponible gratuitamente, a diferencia de otras implementaciones de SMB/CIFS, y permite la interoperabilidad entre servidores Linux/Unix y clientes basados en Windows.
1 nota preliminar
Tengo un servidor CentOS 7 recién instalado, en el que voy a instalar el servidor samba. Por supuesto, debe tener una máquina con Windows para verificar el servidor samba que debe ser accesible con el servidor CentOS 7. Mi servidor Centos 7 tiene el nombre de host server1.example.com e IP como 192.168.0.100
Nota:
- La máquina con Windows debe estar en el mismo grupo de trabajo. Para verificar el valor en la máquina de Windows, ejecute el comando en el símbolo del sistema cmd
net config workstation
Será así:
Su máquina con Windows debe estar en el mismo dominio de estación de trabajo que en el servidor CentOS 7.0, es decir, GRUPO DE TRABAJO en mi caso.
- Para hacer que la máquina de Windows sea accesible en Windows, proceda así. En el terminal de ejecución y agregue la entrada de la dirección IP de su servidor:
notepad C:\Windows\System32\drivers\etc\hosts
En mi caso fue así, solo guarda los valores.
[...]
192.168.0.100 server1.example.com centos
2 Samba compartido anónimo
Primero explicaré la metodología para instalar Samba con un recurso compartido anónimo. Para instalar el software Samba, ejecute:
yum install samba samba-client samba-common
Instalará la versión actual de Samba desde el repositorio de software de CentOS.
Ahora para configurar samba, edite el archivo /etc/samba/smb.conf. Antes de realizar cambios, haré una copia de seguridad del archivo original como /etc/samba/smb.conf.bak
cp -pf /etc/samba/smb.conf /etc/samba/smb.conf.bak
Como quiero comenzar con un archivo vacío, usaré el comando cat para vaciar smb.conf. Eso es más rápido que borrar todas las líneas en vi.
cat /dev/null > /etc/samba/smb.conf
Además, proporcione las entradas como esta
vi /etc/samba/smb.conf
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos security = user map to guest = bad user dns proxy = no #============================ Share Definitions ============================== [Anonymous] path = /samba/anonymous browsable =yes writable = yes guest ok = yes read only = no
mkdir -p /samba/anonymous
systemctl enable smb.service
systemctl enable nmb.service
systemctl restart smb.service
systemctl restart nmb.service
Además, CentOS 7 Firewall-cmd bloqueará el acceso de samba, para deshacernos de eso, ejecutaremos:
firewall-cmd --permanent --zone=public --add-service=samba
[[email protected] ~]# firewall-cmd --permanent --zone=public --add-service=samba success [[email protected] ~]#
Finalmente, vuelva a cargar el firewall para aplicar los cambios.
firewall-cmd --reload
[[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Ahora puede acceder al recurso compartido de Centos 7 en Windows de la siguiente manera. Vaya a la indicación Ejecutar y escriba \\centos:
\\centos
Desde una máquina con Windows, simplemente navegue por la carpeta e intente crear un archivo de texto, pero obtendrá un error de permiso denegado.
Compruebe el permiso de la carpeta compartida.
ls-l
drwxr-xr-x. 2 root root 6 Jul 17 13:41 anonymous
[[email protected] samba]#
Para permitir el acceso del usuario anónimo, configura los permisos de la siguiente manera:
cd /samba
chmod -R 0755 anonymous/
chown -R nobody:nobody anonymous/
ls -l anonymous/
total 0
drwxr-xr-x. 2 nobody nobody 6 Jul 17 13:41 anonymous
[[email protected] samba]#
Además, debemos permitir SELinux para la configuración de samba de la siguiente manera:
chcon -t samba_share_t anonymous/
Ahora el usuario anónimo puede navegar y crear el contenido de la carpeta.
También puede verificar el contenido en el servidor.
ls -l anonymous/
total 0
-rwxr--r--. 1 nobody nobody 0 Jul 17 16:05 anonymous.txt
[[email protected] samba]#
3. Servidor samba seguro
Por lo tanto, crearé un grupo smbgrp y un usuario srijan para acceder al servidor samba con la autenticación adecuada.
groupadd smbgrp
useradd srijan -G smbgrp
smbpasswd -a srijan
[[email protected] samba]# smbpasswd -a srijan New SMB password:<--yoursambapassword Retype new SMB password:<--yoursambapassword Added user srijan. [[email protected] samba]#
Ahora cree una carpeta con el nombre asegurado en la carpeta /samba y otorgue permisos como este:
mkdir -p /samba/asegurado
Nuevamente tendremos que permitir escuchar a través de SELinux:
cd /samba
chmod -R 0777 protegido/
chcon -t samba_share_t protegido/
Nuevamente edite el archivo de configuración como:
vi /etc/samba/smb.conf
[...]
[secured] path = /samba/secured valid users = @smbgrp guest ok = no writable = yes browsable = yes
systemctl restart smb.service
systemctl restart nmb.service
Además, verifique la configuración de la siguiente manera:
testparm
[[email protected] samba]# testparm Load smb config files from /etc/samba/smb.conf rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384) Processing section "[Anonymous]" Processing section "[secured]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions <--ENTER [global] netbios name = CENTOS server string = Samba Server %v map to guest = Bad User dns proxy = No idmap config * : backend = tdb [Anonymous] path = /samba/anonymous read only = No guest ok = Yes [secured] path = /samba/secured valid users = @smbgrp read only = No [[email protected] samba]#
Ahora en la máquina de Windows, verifique la carpeta ahora con las credenciales adecuadas
Nuevamente se enfrentará al problema de los permisos para otorgar permiso de escritura al usuario srijan do:
cd /samba
chown -R srijan:smbgrp secured/
Ahora los usuarios de samba tienen los permisos para escribir en la carpeta. Saludos, has terminado con el servidor samba en CentOS 7 :)