Cómo instalar el servidor Samba en CentOS 8

Samba es un software gratuito y de código abierto que puede utilizarse para compartir archivos, carpetas e impresoras entre sistemas Linux y Windows. También se utiliza para la autenticación y autorización, la resolución de nombres y el anuncio de servicios. Se puede ejecutar en diferentes sistemas operativos, como Linux, Unix, OpenVMS y muchos más.

En este tutorial, aprenderemos a instalar Samba y a configurarlo como servidor de compartición independiente en CentOS 8.

Requisitos previos

  • Un servidor que ejecute CentOS 8.
  • Una contraseña de root configurada en tu servidor.

Instalar el servidor Samba

Por defecto, el paquete Samba está disponible en el repositorio por defecto de CentOS. Puedes instalarlo con el siguiente comando:

dnf install samba samba-common samba-client -y

Después de instalar Samba, inicia el servicio SMB y habilítalo para que se inicie tras el reinicio del sistema con el siguiente comando:

systemctl start smb
systemctl enable smb

Ahora puedes verificar el servicio Samba con el siguiente comando:

systemctl status smb

Deberías obtener la siguiente salida:

? smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-03-02 23:03:30 EST; 8s ago
     Docs: man:smbd(8)
           man:samba(7)
           man:smb.conf(5)
 Main PID: 2072 (smbd)
   Status: "smbd: ready to serve connections..."
    Tasks: 4 (limit: 25028)
   Memory: 33.8M
   CGroup: /system.slice/smb.service
           ??2072 /usr/sbin/smbd --foreground --no-process-group
           ??2074 /usr/sbin/smbd --foreground --no-process-group
           ??2075 /usr/sbin/smbd --foreground --no-process-group
           ??2076 /usr/sbin/smbd --foreground --no-process-group

Crear un recurso compartido público con Samba

En esta sección, crearemos un recurso compartido público con Samba para que todo el mundo pueda acceder al directorio compartido público sin necesidad de contraseña.

Crear un directorio compartido público

En primer lugar, crea una carpeta compartida llamada public y crea también dos archivos dentro del directorio public:

mkdir -p /samba/share/public
touch /samba/share/public/file1.txt
touch /samba/share/public/file2.txt

A continuación, asigna los permisos y la propiedad necesarios con el siguiente comando:

chmod -R 0755 /samba/share/
chmod -R 0755 /samba/share/public
chown -R nobody:nobody /samba/share
chown -R nobody:nobody /samba/share/public

Configurar Samba

A continuación, tendrás que configurar Samba para compartir un directorio público.

Primero, crea una copia de seguridad del archivo /etc/samba/smb.conf con el siguiente comando:

mv /etc/samba/smb.conf /etc/samba/smb.bak

A continuación, crea un nuevo archivo de configuración de Samba:

nano /etc/samba/smb.conf

Añade las siguientes líneas:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = samba-server
security = user
map to guest = bad user
dns proxy = no

[Public]
path = /samba/share/public
browsable =yes
writable = yes
guest ok = yes
read only = no

Guarda y cierra el archivo. A continuación, reinicia el servicio Samba para aplicar los cambios:

systemctl restart smb

A continuación, prueba la configuración de Samba con el siguiente comando:

testparm

Deberías ver la siguiente salida:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	dns proxy = No
	map to guest = Bad User
	netbios name = SAMBA-SERVER
	security = USER
	server string = Samba Server %v
	idmap config * : backend = tdb


[Public]
	guest ok = Yes
	path = /samba/share/public
	read only = No

Configurar SELinux y Firewall

A continuación, establece los valores booleanos y de contexto de seguridad de SELinux adecuados en el directorio compartido con el siguiente comando:

setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
semanage fcontext -a -t samba_share_t "/samba/share/public(/.*)?"
restorecon /samba/share/public

A continuación, todo el servicio Samba a través de firewalld con el siguiente comando

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

Accede al recurso compartido Samba desde Ubuntu Gnome

Para acceder al recurso compartido Samba, ve a la máquina remota, abre el gestor de archivos de Gnome y haz clic en el botón Conectar con el servidor, como se muestra a continuación:

Acceder a SAMBA desde Gnome

Proporciona la dirección IP de tu servidor Samba y haz clic en el botón Conectar. Después de conectar con éxito, deberías ver el recurso compartido Samba en la siguiente pantalla:

Compartir Samba en el explorador de archivos

Ahora, haz clic en el directorio público, deberías ver tus archivos en la siguiente pantalla:

Lista de archivos

Acceder al recurso compartido Samba desde la línea de comandos de Ubuntu

También puedes acceder al recurso compartido Samba desde la línea de comandos.

Primero, haz una lista de todos los recursos compartidos Samba disponibles con el siguiente comando:

smbclient -L //45.58.38.51

Deberías ver la siguiente salida:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Sharename       Type      Comment
	---------       ----      -------
	Public          Disk      
	IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

También puedes montar el recurso compartido Samba utilizando el protocolo cifs. Para ello, instala el paquete cifs-utils con el siguiente comando:

apt-get install cifs-utils -y

A continuación, monta el recurso compartido Samba en el directorio /mnt con el siguiente comando:

mount -t cifs //45.58.38.51/public /mnt/

Se te pedirá que proporciones la contraseña como se muestra a continuación:

Password for root@//45.58.38.51/public: 

Sólo tienes que pulsar Enter sin introducir ninguna contraseña para montar el recurso compartido Samba:

Ahora puedes acceder al recurso compartido Samba en la dirección /mnt:

ls /mnt/

Deberías ver la siguiente salida:

file1.txt  file2.txt

Crear un recurso compartido privado con Samba

En esta sección crearemos un recurso compartido privado con Samba para que sólo los usuarios autentificados puedan acceder al directorio compartido privado.

Crear usuario y grupo

Primero, crea un grupo llamado private con el siguiente comando:

groupadd private

A continuación, crea un nuevo usuario llamado privateuser y añádelo al grupo privado:

useradd -g private privateuser

A continuación, establece la contraseña para el usuario con el siguiente comando:

smbpasswd -a privateuser

Salida:

New SMB password:
Retype new SMB password:
Added user privateuser.

Crea un directorio compartido privado

A continuación, crea una carpeta compartida llamada private y crea también dos archivos dentro del directorio private:

mkdir -p /samba/share/private
touch /samba/share/private/private1.txt
touch /samba/share/private/private2.txt

A continuación, asigna el permiso y la propiedad adecuados con el siguiente comando:

chmod -R 0770 /samba/share/private
chown -R root:private /samba/share/private

A continuación, configura el contexto SELinux para el directorio privado con el siguiente comando:

semanage fcontext –at samba_share_t "/samba/share/private(/.*)?"
restorecon /samba/share/private

Configurar Samba

A continuación, abre el archivo de configuración de Samba y define el recurso compartido privado:

nano /etc/samba/smb.conf

Añade las siguientes líneas al final del archivo:

[Private]
path = /samba/share/private
valid users = @private     
guest ok = no
writable = yes
browsable = yes

Guarda y cierra el archivo y reinicia el servicio Samba para aplicar los cambios:

systemctl restart smb

A continuación, comprueba la configuración de Samba con el siguiente comando:

testparm

Deberías ver la siguiente salida:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

# Global parameters
[global]
	dns proxy = No
	map to guest = Bad User
	netbios name = SAMBA-SERVER
	security = USER
	server string = Samba Server %v
	idmap config * : backend = tdb


[Public]
	guest ok = Yes
	path = /samba/share/public
	read only = No


[Private]
	path = /samba/share/private
	read only = No
	valid users = @private

Acceder al recurso compartido Samba desde la línea de comandos de Ubuntu

Primero, accede al recurso compartido disponible con el siguiente comando:

smbclient -L //45.58.38.51

Deberías ver la siguiente salida:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Sharename       Type      Comment
	---------       ----      -------
	Public          Disk      
	Private         Disk      
	IPC$            IPC       IPC Service (Samba Server 4.10.4)
Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------

A continuación, conéctate al servidor Samba y lista el recurso compartido disponible con el siguiente comando:

smbclient //45.58.38.51/private -U privateuser

Se te pedirá que proporciones una contraseña como se muestra a continuación:

Enter privateuser's password: 

Escribe tu contraseña y pulsa Intro para acceder al shell de Samba, como se muestra a continuación:

Domain=[WORKGROUP] OS=[Windows 6.1] Server=[Samba 4.10.4]
smb: \>

Ahora, lista el recurso compartido disponible con el siguiente comando:

smb: \> ls

Deberías ver la siguiente salida:

  
.                                   D        0  Tue Mar  3 10:03:22 2020
  ..                                  D        0  Tue Mar  3 10:01:56 2020
  private1.txt                        N        0  Tue Mar  3 10:03:17 2020
  private2.txt                        N        0  Tue Mar  3 10:03:22 2020

		51194 blocks of size 2097152. 49358 blocks available

Ahora, sal del shell Samba con el siguiente comando:

smb: \>exit

También puedes montar el recurso compartido Samba en el directorio /opt:

mount -t cifs -o user=privateuser //45.58.38.51/private /opt

Se te pedirá que proporciones una contraseña como se muestra a continuación:

Password for privateuser@//45.58.38.51/private:  *********

Proporciona tu contraseña y pulsa Intro para montar el recurso compartido Samba.

Ahora puedes comprobar tu recurso compartido Samba en el directorio /opt como se muestra a continuación:

ls /opt/

Salida:

private1.txt  private2.txt

Acceder al recurso compartido Samba desde Ubuntu Gnome

Para acceder al recurso compartido Samba, ve a la máquina remota, abre el gestor de archivos de Gnome y haz clic en el botón Conectar con el servidor, como se muestra a continuación:

Acceder a la cuota privada en Gnome

Proporciona la dirección IP de tu servidor Samba y haz clic en el botón Conectar. Tras una conexión exitosa, deberías ver el recurso compartido Samba en la siguiente pantalla:

Acción pública y privada

Ahora, haz clic en el directorio privado, proporciona tu nombre de usuario y contraseña, y luego haz clic en el botón Conectar. Deberías ver tus archivos en la siguiente pantalla:

Acceder con nombre de usuario y contraseña

Archivos

Enhorabuena! has instalado y configurado con éxito el servidor Samba en CentOS 8.

También te podría gustar...