Búsqueda de sitios web

Cómo instalar Samba en Ubuntu para compartir archivos en Windows


Samba es un software gratuito/de código abierto y de uso popular para compartir archivos y servicios de impresión entre sistemas similares a Unix, incluidos hosts Linux y Windows en la misma red.

En esta guía, mostraremos cómo configurar Samba4 para compartir archivos básicos entre sistemas Ubuntu y máquinas Windows. Cubriremos dos escenarios posibles: anónimo (no seguro) así como intercambio seguro de archivos.

Lectura sugerida: Cómo instalar Samba4 en CentOS/RHEL 7 para compartir archivos en Windows

Tenga en cuenta que a partir de la versión 4.0, Samba se puede utilizar como controlador de dominio (DC) de Active Directory (AD). Hemos organizado una serie especial para configurar el controlador de dominio de Active Directory Samba4, que comprende temas clave en Ubuntu, CentOS y Windows.

  1. Configuración del controlador de dominio de Active Directory Samba4

Instalar y configurar Samba en Ubuntu

El servidor Samba está disponible para instalar desde los repositorios predeterminados de Ubuntu utilizando la herramienta de administración de paquetes apt como se muestra.

sudo apt install samba samba-common python-dnspython

Una vez instalado el servidor Samba, ahora es el momento de configurar el servidor Samba como: anónimo no seguro y intercambio seguro de archivos.

Para esto, necesitamos editar el archivo de configuración principal de Samba /etc/samba/smb.conf (que explica varias directivas de configuración).

Primero haga una copia de seguridad del archivo de configuración de samba original de la siguiente manera.

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

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

Importante: antes de continuar, asegúrese de que la máquina con Windows esté en el mismo grupo de trabajo que se configurará en el servidor Ubuntu.

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

Inicie sesión en su máquina Windows, haga clic derecho en “Esta PC” o “Mi PC Propiedades Configuración avanzada del sistema Nombre de la computadora para verificar el grupo de trabajo.

Alternativamente, abra el símbolo del sistema y véalo ejecutando el siguiente comando y busque "dominio de estación de trabajo".

>net config workstation

Una vez que conozca su grupo de trabajo de Windows, es hora de seguir adelante y configurar el servidor Samba para compartir archivos.

Intercambio anónimo de archivos Samba

Primero comience creando un directorio samba compartido donde se almacenarán los archivos.

sudo mkdir -p /srv/samba/anonymous_shares

Luego configure los permisos apropiados en el directorio.

sudo chmod -R 0775 /srv/samba/anonymous_shares
sudo chown -R nobody:nogroup /srv/samba/anonymous_shares

Ahora abra el archivo de configuración.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

A continuación, edite o modifique la configuración de la directiva como se describe a continuación.

global]
	workgroup = WORKGROUP
	netbios name = ubuntu
	security = user
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	browsable =yes
	writable = yes
	guest ok = yes
	read only = no
	force user = nobody

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)
WARNING: The "syslog" option is deprecated
Processing section "[printers]"
Processing section "[print$]"
Processing section "[Shares]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb

[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes

Luego reinicie los servicios de Samba para efectuar los cambios anteriores.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Prueba del intercambio anónimo de archivos Samba

Vaya a la máquina con Windows y abra "Red" desde una ventana del Explorador de Windows. Haga clic en el host Ubuntu (TECMINT para nuestro caso), o intente acceder al servidor samba utilizando su dirección IP.

\2.168.43.168

Nota: utilice el comando ifconfig para obtener la dirección IP de su servidor Ubuntu.

Luego abra el directorio Anónimo e intente agregar archivos allí para compartirlos con otros usuarios.

Uso compartido seguro de archivos Samba

Para proteger con contraseña un recurso compartido de samba, debe crear un grupo “smbgrp” y establecer una contraseña para cada usuario. En este ejemplo utilizo aaronkilik como usuario y contraseña como “tecmint“.

sudo addgroup smbgrp
sudo usermod aaronkilik -aG smbgrp
sudo smbpasswd -a aaronkilik

Nota: El modo de seguridad de samba: security=user requiere que los clientes ingresen un nombre de usuario y contraseña para conectarse a los recursos compartidos.

Las cuentas de usuario de Samba están separadas de las cuentas del sistema; sin embargo, opcionalmente puede instalar el paquete libpam-winbind que se utiliza para sincronizar los usuarios y contraseñas del sistema con la base de datos de usuarios de samba.

sudo apt install libpam-winbind

Luego cree el directorio seguro donde se guardarán los archivos compartidos.

sudo mkdir -p /srv/samba/secure_shares

A continuación, establezca los permisos adecuados en el directorio.

sudo chmod -R 0770 /srv/samba/secure_shares
sudo chown -R root:smbgrp /srv/samba/secure_shares

Ahora abra el archivo de configuración.

sudo vi /etc/samba/smb.conf
OR
sudo nano /etc/samba/smb.conf

A continuación, edite o modifique la configuración de la directiva como se describe a continuación.

[Secure]
	comment = Secure File Server Share
	path =  /srv/samba/secure_shares
	valid users = @smbgrp
	guest ok = no
	writable = yes
	browsable = yes

Como antes, ejecute este comando para ver su configuración actual de samba.

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

Press enter to see a dump of your service definitions

Global parameters
[global]
	netbios name = UBUNTU
	server string = %h server (Samba, Ubuntu)
	server role = standalone server
	map to guest = Bad User
	obey pam restrictions = Yes
	pam password change = Yes
	passwd program = /usr/bin/passwd %u
	passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
	unix password sync = Yes
	syslog = 0
	log file = /var/log/samba/log.%m
	max log size = 1000
	dns proxy = No
	usershare allow guests = Yes
	panic action = /usr/share/samba/panic-action %d
	idmap config * : backend = tdb
[printers]
	comment = All Printers
	path = /var/spool/samba
	create mask = 0700
	printable = Yes
[print$]
	comment = Printer Drivers
	path = /var/lib/samba/printers
	browseable = No
[Anonymous]
	comment = Anonymous File Server Share
	path = /srv/samba/anonymous_shares
	force user = nobody
	read only = No
	guest ok = Yes
[Secure]
	comment = Secure File Server Share
	path = /srv/samba/secure_shares
	valid users = @smbgrp
	read only = No

Una vez que haya terminado con las configuraciones anteriores, reinicie los servicios de Samba para aplicar los cambios.

sudo systemctl restart smbd   [Systemd]
sudo service smbd restart     [Sys V]

Prueba del uso compartido seguro de archivos Samba

Como antes, en la máquina con Windows, abra “Red” desde una ventana del Explorador de Windows. Haga clic en el host Ubuntu (TECMINT para nuestro caso). Es posible que reciba el siguiente error; de lo contrario, continúe con el siguiente paso.

Intente acceder al servidor utilizando su dirección IP, p. \\192.168.43.168 así. Luego ingrese las credenciales (nombre de usuario y contraseña) para el usuario aaronkilik y haga clic en Aceptar.

Ahora verá todos los directorios compartidos, haga clic en Seguro para abrirlo.

Puede compartir de forma segura algunos archivos con otros usuarios permitidos en la red colocándolos en este directorio.

Habilite Samba en UFW Firewall en Ubuntu

Si tiene el firewall UFW habilitado/activo en su sistema, debe agregar las reglas para permitir que Samba pase a través de su firewall.

Para probar esto, hemos utilizado el esquema de red 192.168.43.0. Ejecute los siguientes comandos especificando su dirección de red.

sudo ufw allow proto udp to any port 137 from 192.168.43.0/24
sudo ufw allow proto udp to any port 138 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 139 from 192.168.43.0/24
sudo ufw allow proto tcp to any port 445 from 192.168.43.0/24

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

  1. Configuración del controlador de dominio de Active Directory Samba4: partes 1 a 14
  2. Cómo montar/desmontar sistemas de archivos locales y de red (Samba y NFS) en Linux
  3. Uso de ACL (listas de control de acceso) y montaje de recursos compartidos Samba/NFS
  4. Cómo reparar la vulnerabilidad SambaCry (CVE-2017-7494) en sistemas Linux

¡Eso es todo! En esta guía, le mostramos cómo configurar Samba4 para compartir archivos de forma anónima y segura entre máquinas Ubuntu y Windows. Utilice el formulario de comentarios a continuación para compartir cualquier idea con nosotros.