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.
- 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.
- Configuración del controlador de dominio de Active Directory Samba4: partes 1 a 14
- Cómo montar/desmontar sistemas de archivos locales y de red (Samba y NFS) en Linux
- Uso de ACL (listas de control de acceso) y montaje de recursos compartidos Samba/NFS
- 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.