Cómo Instalar y Configurar Samba en Ubuntu: Una Guía Completa Paso a Paso
Samba es un potente conjunto de software de código abierto que permite el intercambio fluido de archivos e impresoras entre computadoras que ejecutan Windows y sistemas operativos similares a Unix, como Ubuntu. Al instalar y configurar correctamente Samba, puede cerrar la brecha entre entornos Linux y Windows, permitiendo que los usuarios en ambas plataformas compartan archivos, directorios e incluso impresoras a través de una red de área local o amplia.
Ya sea que esté administrando un laboratorio doméstico, una red de pequeña empresa o un entorno de servidor de producción, esta guía completa lo guía a través de cada paso de la instalación, configuración y seguridad de Samba en Ubuntu, incluidas opciones avanzadas que la mayoría de los tutoriales omiten.
Requisitos previos
Antes de comenzar, asegúrese de tener:
- Un servidor o máquina que ejecute Ubuntu 20.04, 22.04 o 24.04
- Acceso Sudo o root al sistema
- Una comprensión básica de la línea de comandos de Linux
- Conectividad de red entre las máquinas que desea conectar
Si está ejecutando Samba en un servidor remoto, un entorno de alojamiento confiable y de alto rendimiento es esencial. Alojamiento VPS de AlexHost le proporciona acceso root completo, recursos dedicados y la flexibilidad para configurar su servidor exactamente como lo necesita.
Paso 1: Actualizar paquetes del sistema
Antes de instalar cualquier software nuevo, es fundamental actualizar el índice de paquetes de su sistema y actualizar los paquetes existentes a sus versiones más recientes. Esto garantiza la compatibilidad y protege contra vulnerabilidades conocidas.
sudo apt update && sudo apt upgrade -yEspere a que se complete el proceso antes de continuar.
Paso 2: Instalar Samba
Instale el paquete Samba usando el gestor de paquetes APT:
sudo apt install samba -yUna vez completada la instalación, verifique que fue exitosa comprobando la versión de Samba:
smbd --versionDebería ver una salida similar a:
Version 4.15.13-UbuntuTambién puede verificar que el servicio Samba se está ejecutando:
sudo systemctl status smbdLa salida debe mostrar el servicio como active (running).
Paso 3: Hacer copia de seguridad del archivo de configuración predeterminado de Samba
Antes de hacer cambios, siempre haga una copia de seguridad del archivo de configuración original. Esto le permite restaurar los valores predeterminados si algo sale mal:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bakEsta es una práctica recomendada que muchas guías pasan por alto pero que los administradores de sistemas experimentados siempre siguen.
Paso 4: Crear y configurar un directorio compartido
4.1 Crear el directorio
Decida qué directorio desea compartir a través de la red. Para esta guía, crearemos una carpeta dedicada llamada shared dentro del directorio de inicio:
mkdir ~/shared4.2 Establecer permisos del directorio
Establezca los permisos apropiados en el directorio. Para un entorno compartido donde varios usuarios necesitan acceso de lectura y escritura:
chmod 777 ~/shared> Nota de seguridad: La configuración chmod 777 otorga permisos completos de lectura, escritura y ejecución a todos los usuarios. Si bien es conveniente para pruebas, no se recomienda para entornos de producción. En una configuración de producción, use permisos más restrictivos como chmod 770 y administre el acceso a través de la pertenencia a grupos.
Paso 5: Configurar Samba — Editar smb.conf
Abra el archivo de configuración principal de Samba usando un editor de texto:
sudo nano /etc/samba/smb.confDesplácese hasta el final del archivo y agregue el siguiente bloque de configuración:
[SharedFolder]
path = /home/username/shared
available = yes
valid users = username
read only = no
browsable = yes
public = yes
writable = yesReemplace username con su nombre de usuario real del sistema Ubuntu.
Comprender cada directiva
| Directiva | Descripción |
|---|---|
path | La ruta absoluta al directorio que se comparte |
available | Si el recurso compartido está disponible para los usuarios |
valid users | Restringe el acceso a los usuarios enumerados |
read only | Establecer en no para permitir acceso de escritura |
browsable | Si el recurso compartido aparece al examinar la red |
public | Permite el acceso sin autenticación (usar con cuidado) |
writable | Permite a los usuarios escribir archivos en el recurso compartido |
Después de hacer sus cambios, guarde el archivo presionando CTRL + O, luego Enter y salga con CTRL + X.
Validar la configuración
Antes de reiniciar Samba, pruebe su archivo de configuración para detectar errores de sintaxis:
testparmEste comando analiza el archivo smb.conf e informa cualquier problema. Corrija cualquier error antes de continuar.
Paso 6: Crear una cuenta de usuario de Samba
Samba mantiene su propia base de datos de contraseñas separada de las contraseñas estándar del sistema Linux. Debe agregar una contraseña específica de Samba para cualquier usuario que necesite acceder al recurso compartido.
sudo smbpasswd -a usernameSe le pedirá que ingrese y confirme una contraseña. Esta contraseña será necesaria al conectarse a la carpeta compartida desde una máquina remota Windows o Linux.
> Consejo: Use una contraseña fuerte y única para cada usuario de Samba. Evite reutilizar contraseñas del sistema.
Para habilitar la cuenta de usuario en Samba (si fue deshabilitada previamente):
sudo smbpasswd -e usernamePaso 7: Configurar el cortafuegos
Si tiene UFW (Cortafuegos sin complicaciones) habilitado en su servidor Ubuntu, debe permitir el tráfico de Samba a través del cortafuegos:
sudo ufw allow sambaVerifique que la regla se agregó:
sudo ufw statusSamba utiliza los siguientes puertos:
- TCP 445 — SMB sobre TCP (principal)
- TCP 139 — Servicio de sesión NetBIOS
- UDP 137 y 138 — Servicios de nombre y datagrama NetBIOS
Paso 8: Reiniciar y habilitar los servicios de Samba
Aplique sus cambios de configuración reiniciando los servicios de Samba:
sudo systemctl restart smbd
sudo systemctl restart nmbdHabilite ambos servicios para que se inicien automáticamente al arrancar el sistema:
sudo systemctl enable smbd
sudo systemctl enable nmbdEl servicio nmbd maneja la resolución de nombres NetBIOS, que es importante para que los clientes Windows descubran su servidor Samba por nombre en la red local.
Paso 9: Acceder a la carpeta compartida desde un sistema Windows
Desde cualquier computadora Windows en la misma red, ahora puede conectarse a su recurso compartido de Samba en Ubuntu:
- Abra el Explorador de archivos
- En la barra de direcciones, escriba la ruta de red a su máquina Ubuntu:
ubuntu_ip_addressSharedFolderReemplace ubuntu_ip_address con la dirección IP real de su servidor Ubuntu (por ejemplo, 192.168.1.100SharedFolder)
- Cuando se le solicite, ingrese el nombre de usuario de Samba y la contraseña que configuró en el Paso 6
- La carpeta compartida ahora aparecerá en el Explorador de archivos, y puede leer, escribir, copiar y eliminar archivos como lo haría con cualquier carpeta local
Asignar el recurso compartido como unidad de red (Opcional)
Para un acceso persistente, puede asignar el recurso compartido de Samba como una unidad de red en Windows:
- Haga clic derecho en Este equipo en el Explorador de archivos
- Seleccione Asignar unidad de red
- Elija una letra de unidad e ingrese la ruta de red
- Marque Reconectar al iniciar sesión para montaje automático
Paso 10: Acceder al recurso compartido de Samba desde otro sistema Linux
En otra máquina Linux, puede conectarse al recurso compartido de Samba usando la herramienta de línea de comandos smbclient.
Primero, instale smbclient si aún no está presente:
sudo apt install smbclient -yLuego conéctese al recurso compartido:
smbclient //ubuntu_ip_address/SharedFolder -U usernameIngrese la contraseña de Samba cuando se le solicite. Será llevado a un shell interactivo similar a FTP donde puede usar comandos como ls, get, put y cd para navegar y transferir archivos.
Montar el recurso compartido de Samba en Linux
Para una experiencia más fluida, puede montar el recurso compartido de Samba como un sistema de archivos local usando cifs-utils:
sudo apt install cifs-utils -y
sudo mkdir /mnt/samba_share
sudo mount -t cifs //ubuntu_ip_address/SharedFolder /mnt/samba_share -o username=username,password=yourpasswordPara hacer que el montaje sea persistente entre reinicios, agregue una entrada a /etc/fstab:
//ubuntu_ip_address/SharedFolder /mnt/samba_share cifs username=username,password=yourpassword,_netdev 0 0> Consejo de seguridad: En lugar de almacenar credenciales en /etc/fstab, use un archivo de credenciales con permisos restringidos.
Paso 11: Opciones avanzadas de configuración de Samba
El smb.conf de Samba admite una amplia gama de directivas que le dan control granular sobre su entorno de intercambio de archivos. Aquí están las opciones avanzadas más útiles:
Acceso de solo lectura
Para evitar que los usuarios modifiquen archivos en un recurso compartido, establezca:
read only = yesAcceso de invitado (Recursos compartidos anónimos)
Para permitir que los usuarios se conecten sin contraseña:
guest ok = yes
public = yes> Use el acceso de invitado solo en redes confiables y aisladas. Nunca lo habilite en un servidor accesible públicamente.
Restringir acceso por dirección IP
Para limitar qué máquinas pueden conectarse a un recurso compartido:
hosts allow = 192.168.1.0/24
hosts deny = ALLEsto restringe el acceso a máquinas en la subred 192.168.1.x solamente.
Múltiples carpetas compartidas
Puede definir tantos recursos compartidos como sea necesario agregando bloques adicionales a smb.conf:
[Documents]
path = /home/username/documents
valid users = username
read only = no
writable = yes
[Backups]
path = /srv/backups
valid users = admin
read only = yes
browsable = noEstablecer conexiones máximas
Para limitar el número de conexiones simultáneas a un recurso compartido:
max connections = 10Forzar un usuario o grupo específico
Para garantizar que todos los archivos se creen con una propiedad de usuario o grupo específica:
force user = samba_user
force group = samba_groupPaso 12: Asegurar su instalación de Samba
La seguridad es primordial, especialmente si su servidor Samba es accesible más allá de su red local. Siga estas mejores prácticas de endurecimiento:
1. Deshabilitar acceso de invitado
A menos que sea explícitamente requerido, siempre deshabilite el acceso anónimo:
map to guest = Never2. Usar contraseñas fuertes
Aplique contraseñas fuertes y únicas para todos los usuarios de Samba. Evite palabras del diccionario y use una combinación de mayúsculas, minúsculas, números y símbolos.
3. Restringir visibilidad de recursos compartidos
Establezca browsable = no en recursos compartidos sensibles para que no aparezcan al examinar la red. Los usuarios que conocen la ruta exacta aún pueden conectarse.
4. Limitar permisos en directorios compartidos
Aplique el principio de menor privilegio — solo otorgue los permisos que los usuarios realmente necesitan. Evite chmod 777 en producción.
5. Vincular Samba a una interfaz específica
Si su servidor tiene múltiples interfaces de red, vincule Samba solo a la interfaz interna:
[global]
interfaces = eth0 lo
bind interfaces only = yes6. Habilitar registro
Habilite el registro de Samba para monitorear el acceso y detectar actividad sospechosa:
[global]
log file = /var/log/samba/log.%m
max log size = 1000
log level = 17. Mantener Samba actualizado
Actualice regularmente Samba para parchear vulnerabilidades de seguridad conocidas:
sudo apt update && sudo apt upgrade samba -yElegir el entorno de alojamiento correcto para su servidor Samba
El rendimiento y la confiabilidad de su servidor de archivos Samba dependen en gran medida de la infraestructura subyacente. Aquí hay algunas opciones de alojamiento a considerar según su caso de uso:
- Equipos pequeños y proyectos personales: Alojamiento web compartido proporciona un punto de entrada asequible para cargas de trabajo ligeras.
- Empresas en crecimiento y equipos de desarrollo: Alojamiento VPS ofrece recursos dedicados, acceso root completo y la escalabilidad necesaria para ejecutar Samba junto con otros servicios.
- Cargas de trabajo de alto rendimiento o empresariales: Servidores dedicados ofrecen rendimiento máximo, capacidad de almacenamiento y rendimiento de red, ideales para entornos de intercambio de archivos a gran escala.
- Aplicaciones de IA e intensivas en datos: Si está ejecutando Samba junto con cargas de trabajo de aprendizaje automático o procesamiento de datos, Alojamiento GPU proporciona la potencia de cálculo que necesita.
Para equipos que también necesitan una experiencia de panel de control administrado, VPS con cPanel simplifica la administración del servidor mientras le proporciona la flexibilidad para instalar y configurar Samba.
Solución de problemas comunes de Samba
No se puede conectar desde Windows
- Verifique que el servicio
