Configurar Samba en Linux: guía completa para una unidad compartida
Configura Samba en Linux paso a paso con esta guía completa que cubre la configuración de smb.conf, la seguridad SMB3, las correcciones para Windows 11 24H2, el descubrimiento con wsdd2 y la configuración de clientes.
Actualizado Publicado 38 min de lectura

Si necesitas configurar Samba en Linux para compartir archivos entre plataformas con Windows, macOS y dispositivos móviles, esta guía recorre todo el proceso: configuración de smb.conf, compatibilidad con Windows 11 24H2, WS-Discovery y parches de seguridad.
Aunque NFS funciona bien para compartir archivos entre sistemas Linux, muchos servidores domésticos conviven con una mezcla de sistemas operativos. Cuando necesitas compartir archivos entre servidores Linux y máquinas Windows, o quieres compatibilidad con más dispositivos, Samba lo resuelve.
Divulgación de afiliados
Algunos enlaces de hardware de esta guía son enlaces de afiliado, incluidos los redireccionamientos /go/ que llevan a Amazon. Si compras a través de ellos, gano una pequeña comisión sin coste adicional para ti.
Yo ejecuto Samba junto a NFS en mi mini PC N100, que aloja Jellyfin y gestiona las copias de seguridad. Todos los dispositivos de la familia (portátiles Windows, teléfonos Android y máquinas Linux) acceden al contenido multimedia y a los documentos compartidos a través de él. NFS me da rendimiento entre sistemas Linux y Samba cubre todo lo demás. Si estás buscando hardware, el GMKtec M5 Ultra es una buena opción compacta para este tipo de servidor doméstico siempre encendido.
Entendiendo SMB, CIFS y Samba
Evolución del protocolo
SMB (Server Message Block) es el protocolo original desarrollado por Microsoft. CIFS (Common Internet File System) fue la versión extendida de Microsoft. Las implementaciones modernas usan los protocolos SMB2/SMB3, pero los términos se suelen usar indistintamente.
¿Qué es Samba?
Samba es una implementación de código abierto del protocolo SMB/CIFS que permite a los sistemas Linux y Unix comunicarse con sistemas Windows usando los protocolos de red nativos de Windows. Convierte tu máquina Linux en un servidor de archivos compatible con Windows.
Qué te ofrece Samba
- Compatibilidad multiplataforma: funciona con Windows, macOS, Linux y dispositivos móviles
- Integración nativa: aparece como una unidad de red estándar en el Explorador de Windows
- Autenticación avanzada: admite Active Directory y gestión de usuarios compleja
- Impresoras compartidas: puede compartir impresoras en la red
- Amplia compatibilidad de dispositivos: compatible con smart TVs, reproductores multimedia y dispositivos IoT
Comparación Samba vs NFS
| Característica | Samba (SMB/CIFS) | NFS |
|---|---|---|
| Multiplataforma | Excelente (nativo en Windows) | Limitada (enfoque Linux/Unix) |
| Rendimiento en Linux | Bueno | Excelente |
| Opciones de seguridad | Avanzadas (integración con AD) | Básicas a moderadas |
| Complejidad de configuración | Moderada | Sencilla |
| Soporte de dispositivos móviles | Excelente | Limitado |
| Integración con Windows | Nativa | Requiere herramientas de terceros |
| Funciones modernas | SMB3 Directory Leases (4.22+), Unix Extensions (4.23+) | Delegaciones NFSv4 |
Si solo necesitas acceso a archivos por HTTP, servir un recurso WebDAV con Nginx es otra opción que vale la pena considerar.
Requisitos previos y planificación
Antes de configurar Samba, asegúrate de tener:
- Servidor Linux con espacio de almacenamiento suficiente
- Acceso root o sudo en el servidor
- Conectividad de red entre los dispositivos
- Dirección IP estática para el servidor (recomendado)
- Conocimientos de configuración de firewall
- Cuentas de usuario planificadas para el control de acceso
Nunca expongas SMB a Internet
El puerto 445 (SMB) es uno de los puertos más atacados de internet. Nunca lo expongas al público. Si necesitas acceso remoto a los recursos Samba, usa una VPN como WireGuard o Tailscale. Consulta qué VPN de malla encaja con tu configuración o autoaloja un servidor de control de Tailscale para ver opciones.
Hardware para un servidor Samba
Samba funciona en casi cualquier hardware. Lo que importa es una caja que permanezca encendida y unos discos en los que puedas confiar. El montaje que yo haría hoy es un mini PC pequeño con una carcasa USB (DAS) para los discos de capacidad:
| Pieza | Elección | Precio (23 oct 2026) | Por qué |
|---|---|---|---|
| Mini PC | Beelink EQ14 | $369 | N150, 16GB, 2.5GbE dual. Con 2.5GbE un único disco duro es el cuello de botella, no la red |
| DAS | TerraMaster D4-320 | $170.99 | 4 bahías por USB 3.2 Gen 2 (10Gbps), sin discos |
| Discos | Discos NAS CMR | ver la sección de discos | Evita los discos SMR en cualquier cosa con RAID o ZFS |
Si prefieres un appliance de almacenamiento en lugar de una caja Linux que mantener, un NAS de 2 bahías como el UGREEN DXP2800 ($339.99 el 23 de oct) sirve SMB listo para usar. Los compromisos entre ambas opciones están en prescindir del NAS: mini PC + DAS.
Comprueba tu versión de Samba
Ejecuta esto primero para ver qué incluye tu distribución:
smbd --version| Distro | Versión de Samba | Notas |
|---|---|---|
| Debian 12 bookworm | 4.17.x | Antigua; considera backports por seguridad |
| Debian 13 trixie | 4.22.10 | Con parches de seguridad, incluye wsdd2 |
| Ubuntu 24.04 LTS | 4.19.x | Backports de seguridad aplicados |
| Ubuntu 26.04 LTS | 4.24.x | Última serie estable |
| RHEL/Rocky/Alma 9 | 4.18–4.20 | Usa los nombres de servicio smb/nmb |
Mantén Samba parcheado
Samba ha tenido publicaciones de seguridad críticas durante el último año, incluido CVE-2025-10230 (CVSS 10.0), una inyección de comandos en el hook de WINS en controladores de dominio AD. Los servidores standalone (lo que configura esta guía) no están afectados por ese CVE concreto, pero mantener Samba actualizado sigue siendo importante. Consulta la sección de Seguridad y parcheo más abajo.
Arquitectura de red para un entorno mixto
Paso 1: configuración del servidor Samba en Linux (smb.conf)
Esta es la sección central. Instala, configura, prueba e inicia tu servidor Samba.
Instala el paquete Samba
Debian / Ubuntu
sudo apt update && sudo apt install samba samba-common-bin -yRHEL / Fedora
sudo dnf install samba samba-client samba-common -yCrea usuarios de Samba
Samba mantiene su propia base de datos de usuarios, separada de los usuarios del sistema. Crea usuarios para compartir archivos:
# Add system user (if doesn't exist)
sudo useradd -m -s /bin/bash mediauser
# Add user to Samba database
sudo smbpasswd -a mediauserGestión de usuarios
Los usuarios de Samba deben existir primero como usuarios del sistema. El comando smbpasswd establece una contraseña independiente para la autenticación SMB, que puede ser distinta de la contraseña del sistema. Usa smbpasswd -d mediauser para deshabilitar y smbpasswd -e mediauser para volver a habilitar a un usuario.
Crea los directorios compartidos
Organiza tus directorios compartidos:
# Create main Samba directory
sudo mkdir -p /srv/samba
# Create specific share directories
sudo mkdir -p /srv/samba/media
sudo mkdir -p /srv/samba/documents
sudo mkdir -p /srv/samba/backups
sudo mkdir -p /srv/samba/public
# Set ownership
sudo chown -R mediauser:mediauser /srv/samba/media
sudo chown -R mediauser:mediauser /srv/samba/documents
sudo chown -R nobody:nogroup /srv/samba/public
# Set permissions
sudo chmod -R 755 /srv/samba
sudo chmod -R 777 /srv/samba/publicConfigura smb.conf (bloque global moderno)
El archivo de configuración principal es /etc/samba/smb.conf. Haz primero una copia de seguridad del original:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backupEdita el archivo de configuración:
sudo nano /etc/samba/smb.confEste es un bloque [global] moderno y limpio que funciona con Samba 4.19+ y Windows 11 24H2:
[global]
workgroup = WORKGROUP
server string = BitDoze Home Server
netbios name = HOMESERVER
# LAN-only bind (use your real CIDR, or remove these two lines entirely)
interfaces = lo 192.168.1.0/24
bind interfaces only = yes
server role = standalone server
security = user
map to guest = bad user
guest account = nobody
# Explicit SMB3 (optional, SMB1 is already disabled by default since 4.11)
server min protocol = SMB2_10
server max protocol = SMB3_11
# Recommended for Windows 11 24H2+ clients (signing required by default there)
server signing = mandatory
logging = file
log file = /var/log/samba/%m.log
max log size = 1000
log level = 1
# Uncomment to disable legacy NetBIOS traffic entirely (port 445 only)
# smb ports = 445
# disable netbios = yesQué ha cambiado respecto a guías antiguas
Si comparas esto con tutoriales antiguos, se han eliminado varias opciones: encrypt passwords (obsoleta desde Samba 4.11, las contraseñas cifradas siempre están activadas), socket options con SO_RCVBUF/SO_SNDBUF (los kernels modernos lo gestionan; los valores grandes pueden incluso perjudicar el rendimiento), max xmit (obsoleta), aio read size/aio write size con valores en bytes (ahora es un interruptor 0/1, con 1 por defecto) y dos charset = CP932 (codificación japonesa, probablemente un error en guías antiguas). Ejecuta testparm después de editar y presta atención a los avisos de opciones obsoletas.
Define las secciones de recursos compartidos
[media]
comment = Media Files (Movies, Music, Photos)
path = /srv/samba/media
valid users = mediauser
read only = no
browsable = yes
create mask = 0755
directory mask = 0755
force user = mediauser
force group = mediauser
[documents]
comment = Personal Documents
path = /srv/samba/documents
valid users = mediauser
read only = no
browsable = yes
create mask = 0644
directory mask = 0755
[backups]
comment = Backup Storage
path = /srv/samba/backups
valid users = mediauser
read only = no
browsable = no
create mask = 0600
directory mask = 0700
hide unreadable = yes
[public]
comment = Public Share (Guest Access)
path = /srv/samba/public
public = yes
guest ok = yes
read only = no
browsable = yes
create mask = 0666
directory mask = 0777
force user = nobody
force group = nogroupRecursos de invitado y Windows 11 24H2
Windows 11 24H2 Pro/Enterprise/Education bloquea por defecto el inicio de sesión de invitado no seguro. El recurso [public] anterior no funcionará desde clientes 24H2 sin una cuenta de usuario real. Consulta la sección de Windows 11 24H2 para la corrección.
Con Samba 4.23+, las extensiones SMB3 Unix están habilitadas por defecto. Los archivos creados desde clientes Linux y macOS conservan sus bits de modo POSIX. Los ajustes create mask y force user siguen aplicando a los clientes Windows.
Prueba, inicia y habilita los servicios de Samba
Primero, valida tu configuración:
# Test configuration syntax (read the output carefully)
sudo testparm -sSi testparm muestra errores o parámetros desconocidos, corrígelos antes de continuar. Errores habituales: dead time (debería ser deadtime), encrypt passwords (elíminala).
Después inicia los servicios:
Debian / Ubuntu
sudo systemctl enable --now smbd nmbd
sudo systemctl status smbd nmbdRHEL / Fedora
sudo systemctl enable --now smb nmb
sudo systemctl status smb nmbVerifica que Samba está escuchando:
ss -tlnp | grep -E '445|139'Salida esperada: líneas mostrando el puerto 445 (y el 139 si NetBIOS está habilitado) en estado LISTEN.
Prueba una conexión local:
smbclient //localhost/media -U mediauser -c 'ls'Deberías ver el contenido de tu recurso media (vacío si acabas de crearlo).
Configura el firewall
UFW (Ubuntu)
sudo ufw allow samba
# Or manually if you prefer:
sudo ufw allow 445/tcp # SMB over TCP
sudo ufw allow 137/udp # NetBIOS Name Service
sudo ufw allow 138/udp # NetBIOS Datagram Service
sudo ufw allow 139/tcp # NetBIOS Session ServiceSi has deshabilitado NetBIOS en smb.conf (disable netbios = yes), solo necesitas el puerto 445/tcp.
firewalld (RHEL / Fedora)
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reloadPaso 2: conecta clientes Linux, Windows y macOS
Monta recursos Samba en Linux (cifs-utils y fstab)
Instala las utilidades CIFS
# Ubuntu/Debian
sudo apt install cifs-utils -y
# CentOS/RHEL
sudo dnf install cifs-utils -yCrea el archivo de credenciales
Por seguridad, guarda las credenciales en un archivo protegido en lugar de ponerlas en fstab:
sudo nano /etc/samba/credentialsAñade:
username=mediauser
password=your_password
domain=WORKGROUPProtege el archivo:
sudo chmod 600 /etc/samba/credentialsMonta los recursos Samba
# Create mount points
sudo mkdir -p /mnt/samba-media
sudo mkdir -p /mnt/samba-docs
# Mount shares
sudo mount -t cifs //192.168.1.100/media /mnt/samba-media \
-o credentials=/etc/samba/credentials,uid=1000,gid=1000,vers=3.1.1,iocharset=utf8
# Verify mount
df -h | grep cifsMontaje permanente con fstab
Añade entradas a /etc/fstab para el montaje automático:
sudo nano /etc/fstabAñade estas líneas:
//192.168.1.100/media /mnt/samba-media cifs credentials=/etc/samba/credentials,uid=1000,gid=1000,file_mode=0664,dir_mode=0775,vers=3.1.1,iocharset=utf8,nofail,x-systemd.automount,_netdev 0 0
//192.168.1.100/documents /mnt/samba-docs cifs credentials=/etc/samba/credentials,uid=1000,gid=1000,file_mode=0664,dir_mode=0775,vers=3.1.1,iocharset=utf8,nofail,x-systemd.automount,_netdev 0 0Opciones clave: vers=3.1.1 fuerza SMB3 y evita cualquier negociación SMB1. x-systemd.automount monta en el primer acceso en lugar de en el arranque (soluciona la condición de carrera en la que fstab intenta montar antes de que la red esté lista). nofail evita que el arranque se quede colgado si el recurso no está disponible.
Verifica:
sudo mount -a && mount | grep cifsFallos habituales:
mount error(2): No such file or directory: nombre de recurso incorrectomount error(13): Permission denied: credenciales incorrectas o incompatibilidad de versión SMB; prueba añadiendovers=3.0overs=2.0
Explorador de archivos y cliente SMB de Windows 11 / 10 (incl. correcciones de 24H2)
Conexión básica
Método 1: Explorador de archivos
- Abre el Explorador de archivos
- En la barra de direcciones, escribe:
\\192.168.1.100(sustitúyela por la IP de tu servidor) - Introduce tu usuario y contraseña de Samba
- Navega por los recursos compartidos disponibles
Método 2: asignar una unidad de red
# Using Command Prompt
net use Z: \\192.168.1.100\media /user:mediauser
# Using PowerShell
New-PSDrive -Name "Z" -PSProvider FileSystem -Root "\\192.168.1.100\media" -Credential (Get-Credential)Cambios en Windows 11 24H2
Windows 11 24H2 exige la firma SMB
Windows 11 24H2 (y Windows Server 2025) exigen la firma SMB por defecto en las ediciones Pro, Enterprise y Education. El inicio de sesión de invitado no seguro también está bloqueado. Esta es la razón número 1 por la que los clientes Windows no consiguen conectarse a Samba tras una actualización a 24H2.
Si recibes errores de conexión tras actualizar a Windows 11 24H2, comprueba la configuración de tu cliente:
Get-SmbClientConfiguration | FL RequireSecuritySignature,EnableInsecureGuestLogonsCorrección: Windows 11 24H2 no consigue conectarse a Samba
Prueba estos pasos en orden:
1. Asegúrate de que la firma está habilitada en el servidor Samba
En la sección [global] de smb.conf:
server signing = mandatoryReinicia Samba:
sudo systemctl restart smbd # Debian/Ubuntu
sudo systemctl restart smb # RHEL/Fedora2. Conéctate por nombre de host, no por IP
Windows 11 24H2 puede rechazar conexiones firmadas cuando se usan direcciones IP en algunas configuraciones de grupo de trabajo. Usa el nombre NetBIOS:
\\HOMESERVER\media3. Usa cuentas de usuario reales, no de invitado
Los recursos de invitado están bloqueados en 24H2 Pro+. Crea un usuario Samba real y autentícate:
net use Z: \\HOMESERVER\media /user:mediauser4. Último recurso: desactiva el requisito de firma del cliente (no recomendado)
Set-SmbClientConfiguration -RequireSecuritySignature $falseEsto debilita la seguridad. Úsalo solo para pruebas.
Finder de macOS + descubrimiento con Avahi
- Abre Finder
- Pulsa
Cmd + Kpara abrir “Conectar al servidor” - Introduce:
smb://192.168.1.100 - Autentícate con tus credenciales de Samba
- Selecciona los recursos a montar
Para que los recursos Samba aparezcan automáticamente en la barra lateral Red de Finder, instala avahi-daemon para el anuncio por mDNS/DNS-SD:
sudo apt install avahi-daemon -y
sudo systemctl enable --now avahi-daemonCrea el archivo de servicio:
sudo nano /etc/avahi/services/smb.service<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h SMB</name>
<service>
<type>_smb._tcp</type>
<port>445</port>
</service>
</service-group>Reinicia avahi:
sudo systemctl restart avahi-daemonVerifica desde otro Mac: avahi-browse -a debería mostrar el servicio SMB.
Dispositivos móviles
iOS (iPhone/iPad): la app nativa Archivos incluye soporte SMB desde iOS 13. Abre Archivos → toca los tres puntos (⋯) → “Conectar al servidor” → introduce smb://192.168.1.100 → autentícate. No hace falta ninguna app de terceros.
Android: usa Solid Explorer, CX File Explorer o el cliente Android Samba de Google (samba-documents-provider en Play Store). AndSMB es otra opción.
Streaming de contenido: VLC en iOS y Android puede navegar y reproducir contenido directamente desde recursos SMB.
Paso 3: seguridad y rendimiento avanzados
Gestión de usuarios y grupos
Crea varios usuarios
# Add additional users
sudo useradd -m john
sudo smbpasswd -a john
sudo useradd -m mary
sudo smbpasswd -a mary
# Create groups
sudo groupadd sambausers
sudo usermod -a -G sambausers john
sudo usermod -a -G sambausers maryRecursos compartidos por grupo
Añade acceso basado en grupos a smb.conf:
[family-photos]
comment = Family Photo Collection
path = /srv/samba/photos
valid users = @sambausers
read only = no
browsable = yes
create mask = 0664
directory mask = 0775
force group = sambausersCifrado y firma SMB3
La firma ya está habilitada mediante server signing = mandatory en la configuración global anterior. Esto protege contra ataques de intermediario y es un requisito de Windows 11 24H2.
Para cifrar todo el tráfico (útil en segmentos de red no confiables o al tunelizar a través de una VPN):
[global]
smb encrypt = requiredO por recurso, solo para datos sensibles:
[secure-docs]
path = /srv/samba/secure
smb encrypt = required
valid users = mediauserEn una LAN doméstica típica, la firma por sí sola es suficiente. El cifrado añade carga de CPU. Úsalo cuando la ruta de red no sea de confianza.
Listas de control de acceso (ACL)
# Install ACL support
sudo apt install acl -y
# Set detailed permissions
sudo setfacl -R -m u:john:rwx /srv/samba/media
sudo setfacl -R -m u:mary:r-- /srv/samba/media
sudo setfacl -R -m g:sambausers:rw- /srv/samba/documentsRendimiento: lo que de verdad importa en 2026
Olvídate del ajuste de búferes
Las guías antiguas recomiendan configurar socket options = SO_RCVBUF=262144 SO_SNDBUF=262144. No lo hagas. La página de manual de Samba lo desaconseja explícitamente. Los kernels Linux modernos gestionan el tamaño de los búferes automáticamente, y los valores manuales grandes pueden reducir el rendimiento. Elimina cualquier línea socket options que encuentres en configuraciones antiguas.
Lo que realmente afecta al rendimiento de Samba:
- Cableado gigabit y switch. Si estás en 100Mbps, ningún ajuste de smb.conf ayudará. Este es el cuello de botella en la mayoría de montajes domésticos.
- SMB3 Directory Leases (Samba 4.22+, activado por defecto). Los clientes cachean los listados de directorios localmente. Genial para bibliotecas multimedia donde navegas por las mismas carpetas repetidamente.
deadtime = 15. Cierra las conexiones inactivas tras 15 minutos. Libera recursos. Añádelo a[global]si lo quieres.- Opción de montaje
noatime. Añádela al sistema de archivos que aloja tus recursos Samba en/etc/fstabpara evitar escribir marcas de tiempo de acceso en cada lectura. - io_uring. Las compilaciones de las distribuciones con
liburing(Debian, Ubuntu) obtienen E/S asíncrona basada en io_uring en smbd automáticamente. vfs_aio_ratelimit(Samba 4.24). Útil si tu almacenamiento de respaldo es lento (discos mecánicos, unidades USB). Limita la E/S asíncrona para no saturar el dispositivo.
Paso 4: integración con tu servidor doméstico
Integración con Jellyfin
Para la integración con un servidor multimedia, como uso en mi montaje con el N100:
# Create dedicated media structure
sudo mkdir -p /srv/samba/media/{movies,tvshows,music,photos}
# Set ownership for Jellyfin user
sudo chown -R jellyfin:jellyfin /srv/samba/media[jellyfin-media]
comment = Jellyfin Media Library
path = /srv/samba/media
valid users = mediauser, jellyfin
read only = no
browsable = yes
force user = jellyfin
force group = jellyfin
create mask = 0664
directory mask = 0775Integración con copias de seguridad
Combínalo con añadir un nuevo disco a Ubuntu LVM para el almacenamiento de copias de seguridad:
#!/bin/bash
# Backup script using Samba shares
BACKUP_DATE=$(date +%Y%m%d)
rsync -av --delete /home/ /srv/samba/backups/home-backup-$BACKUP_DATE/Para una estrategia de copias de seguridad más completa, considera autoalojar copias de seguridad con Restic y Rclone.
Acceso desde contenedores Docker
Para contenedores Docker que necesitan acceso a los recursos Samba:
services:
filebrowser:
image: filebrowser/filebrowser
volumes:
- /srv/samba:/srv
ports:
- "8080:80"Puedes autoalojar FileBrowser con Docker para tener un gestor de archivos web que funciona junto a Samba.
Propiedad de archivos en contenedores
Cuando los contenedores Docker escriben en los directorios de recursos Samba, los archivos pueden crearse como root (o con el UID del contenedor). Usa force user y force group en la configuración del recurso Samba, o establece el usuario del contenedor con user: "1000:1000" en el archivo compose para que coincida con tu usuario de Samba.
Paso 5: descubrimiento y monitorización
Por qué Windows no ve tu recurso Samba (wsdd2 / WS-Discovery)
Esta es la queja más común tras configurar Samba: abres el Explorador de Windows, haces clic en “Red” y tu servidor no aparece.
La razón: el Windows moderno (10/11) usa WS-Discovery para descubrir dispositivos de red, no el antiguo protocolo de exploración NetBIOS que gestiona el nmbd de Samba. Samba no incluye un servidor WS-Discovery.
Instala wsdd2 para solucionarlo:
Debian 13+
sudo apt install wsdd2 -y
sudo systemctl enable --now wsdd2Ubuntu 24.04
Ubuntu 24.04 incluye wsdd (versión Python), que puede carecer de una unidad systemd. Instálalo y crea la unidad manualmente:
sudo apt install wsdd -y
# Create systemd unit if missing
sudo nano /etc/systemd/system/wsdd.service[Unit]
Description=Web Services for Devices (wsdd)
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/wsdd --interface eth0
Restart=on-failure
[Install]
WantedBy=multi-user.targetSustituye eth0 por el nombre real de tu interfaz (ip link show para encontrarlo).
sudo systemctl daemon-reload
sudo systemctl enable --now wsddVerifica:
systemctl status wsdd2 # or wsddAbre el Explorador de Windows y después Red. Tu servidor Samba debería aparecer ahora.
Opcional: desactiva NetBIOS por completo
En LAN modernas donde todos los clientes soportan SMB2+, puedes desactivar NetBIOS para reducir la superficie de ataque:
[global]
smb ports = 445
disable netbios = yesDespués detén y deshabilita nmbd:
sudo systemctl disable --now nmbd # Debian/Ubuntu
sudo systemctl disable --now nmb # RHEL/FedoraEsto elimina los puertos 137, 138 y 139. Solo queda el puerto 445. Hazlo únicamente si todos tus clientes son Windows 10+, macOS o Linux moderno.
Monitorización con smbstatus, logs y Prometheus
# View active Samba connections
sudo smbstatus
# Detailed connection info
sudo smbstatus -v
# Brief summary
sudo smbstatus -b
# Share access
sudo smbstatus -S
# Locked files
sudo smbstatus -L
# Real-time monitoring
watch -n 2 'sudo smbstatus'Análisis de logs:
# View Samba logs
sudo tail -f /var/log/samba/log.smbd
# Client-specific logs
sudo tail -f /var/log/samba/192.168.1.101.log
# Search for errors
sudo grep -i error /var/log/samba/*.log
# Systemd journal
journalctl -u smbd -fRecarga elegante (sin cortar conexiones) frente a reinicio:
sudo systemctl reload smbd # Graceful, preferred for config changes
sudo systemctl restart smbd # Drops active connectionsPara usuarios de Grafana, Samba 4.23+ incluye smb_prometheus_endpoint, un exportador de métricas Prometheus integrado en el puerto 9922. Consulta la monitorización de servidores y Docker para montar un stack de monitorización completo.
Solución de problemas comunes
Problemas de conexión
Error habitual: acceso denegado
Esto suele ocurrir por problemas de autenticación de usuario o permisos incorrectos.
Pasos de diagnóstico:
- Verifica que el usuario existe en Samba:
sudo pdbedit -L -v - Comprueba los permisos del recurso:
ls -la /srv/samba/ - Prueba desde el servidor:
smbclient -L localhost -U mediauser - Verifica el firewall:
sudo ufw statusosudo firewall-cmd --list-all - Comprueba errores de configuración:
sudo testparm -s
# Reset user password
sudo smbpasswd -x mediauser # Remove user
sudo smbpasswd -a mediauser # Re-add user
# Test local connection
smbclient //localhost/media -U mediauser -c 'ls'Códigos de error de Windows 11 24H2
Error 0xc000a000: STATUS_INVALID_SIGNATURE
Causa: incompatibilidad de firma SMB entre el cliente y el servidor.
Corrección:
- Añade
server signing = mandatorya la sección[global]de smb.conf - Reinicia Samba
- Conéctate por nombre de host (
\\HOMESERVER\share) en lugar de por IP - Verifica:
Get-SmbClientConfiguration | FL RequireSecuritySignatureen el cliente Windows
Error 0x80070035: no se encuentra la ruta de red
Causa: el cliente no consigue alcanzar el servidor en absoluto.
Corrección:
- Comprueba el firewall en el servidor Samba:
sudo ufw status - Verifica que Samba está escuchando:
ss -tlnp | grep 445 - Haz ping al servidor desde el cliente Windows
- Si usas el nombre de host, comprueba que wsdd2 está en ejecución o añade la IP del servidor al archivo hosts de Windows
Las políticas de seguridad bloquean el acceso de invitado no autenticado
Causa: Windows 11 24H2 Pro/Enterprise/Education bloquea el inicio de sesión de invitado no seguro.
Corrección:
- Crea un usuario Samba real:
sudo smbpasswd -a username - Elimina
guest ok = yesdel recurso (o crea un recurso separado autenticado) - Conéctate con credenciales:
net use Z: \\HOMESERVER\share /user:username
Velocidades de transferencia lentas
-
Comprueba la velocidad del enlace de red:
bash ethtool eth0 | grep SpeedSi muestra 100Mb/s, ese es tu cuello de botella; revisa cables y switch.
-
Prueba el rendimiento bruto de la red:
bash # On server iperf3 -s # On client iperf3 -c 192.168.1.100 -
Comprueba la E/S de disco:
bash sudo iotop -o -
Elimina cualquier
socket optionsheredada de smb.conf. Estas opciones perjudican más que ayudan en kernels modernos.
Depuración de permisos
# Check effective permissions
sudo smbcacls //localhost/media /path/to/file -U mediauser
# Check ACLs
getfacl /srv/samba/media
# Reset permissions
sudo chmod -R 755 /srv/samba/
sudo chown -R mediauser:mediauser /srv/samba/mediaBuenas prácticas de seguridad y parcheo de Samba
Mantén Samba parcheado
CVE-2025-10230: RCE con CVSS 10.0 en Samba
En octubre de 2025 se parcheó una vulnerabilidad crítica (CVE-2025-10230) en Samba. Permitía ejecución remota de código sin autenticación a través del hook de WINS en controladores de dominio AD. CVSS 10.0. Afectadas: todas las versiones desde la 4.0 al ejecutarse como controlador de dominio con wins support = yes y un wins hook configurado. Los servidores standalone y miembros no están afectados. Corregido en 4.23.2, 4.22.5 y 4.21.9. Si ejecutas Samba como AD DC y no lo has actualizado desde mediados de 2025, hazlo ahora.
Publicaciones de seguridad de Samba del último año:
- 15 oct 2025: CVE-2025-10230 (CVSS 10.0), CVE-2025-9640
- 26 may 2026: 6 CVE parcheados
- 28 jul 2026: 6 CVE parcheados
Pasos prácticos:
# Check your version
smbd --version
# Update Samba
sudo apt update && sudo apt upgrade -y # Debian/Ubuntu
sudo dnf upgrade samba -y # RHEL/Fedora
# Check for deprecation warnings after update
sudo testparm -s
journalctl -u smbd -b --priority=errSuscríbete a los anuncios de seguridad de Samba en https://www.samba.org/samba/history/security.html.
Lista de verificación de seguridad de red
- Usa contraseñas fuertes para todos los usuarios de Samba
- Limita el acceso por rango de IP:
hosts allow = 192.168.1.0/24 - Desactiva el acceso de invitado salvo que sea necesario
- Usa
smb encrypt = requiredpara datos sensibles en redes no confiables - Nunca expongas el puerto 445 a Internet público
- Usa una VPN para el acceso remoto (consulta cómo proteger un servidor Linux con CrowdSec)
- Mantén Samba actualizado y revísalo como mínimo cada trimestre
[secure-share]
path = /srv/samba/secure
hosts allow = 192.168.1.0/24
hosts deny = ALL
smb encrypt = required
valid users = mediauserCopia de seguridad y restauración
Copia de seguridad de la configuración
Haz siempre una copia de seguridad de tu configuración de Samba antes de hacer cambios. La configuración y la base de datos de usuarios son críticas para mantener el acceso.
# Backup Samba configuration
sudo cp /etc/samba/smb.conf /backup/smb.conf.$(date +%Y%m%d)
# Backup user database
sudo cp -r /var/lib/samba /backup/samba-users.$(date +%Y%m%d)Restauración:
#!/bin/bash
# restore-samba.sh
sudo cp /backup/smb.conf.YYYYMMDD /etc/samba/smb.conf
sudo cp -r /backup/samba-users.YYYYMMDD/* /var/lib/samba/
sudo systemctl restart smbd nmbd # Debian/Ubuntu
# sudo systemctl restart smb nmb # RHEL/FedoraConclusión
Samba en Linux te da compartición de archivos multiplataforma para entornos mixtos. Requiere más configuración que NFS, pero la compatibilidad universal compensa en redes con Windows, macOS y dispositivos móviles.
En mi mini PC N100, ejecutar NFS y Samba a la vez es lo que mejor funciona. NFS gestiona las transferencias entre sistemas Linux con velocidad, mientras Samba cubre todo lo demás. En 2026, lo principal que hay que hacer bien: habilitar server signing = mandatory para la compatibilidad con Windows 11 24H2, instalar wsdd2 para que Windows pueda descubrir tus recursos y mantener Samba parcheado.
Para más sobre servidores domésticos, consulta mis guías sobre los mejores mini PC para servidores domésticos y la monitorización de servidores. Si necesitas un VPS remoto para replicación externa o un endpoint de WireGuard, un VPS de Hetzner Cloud funciona bien para eso.
Los precios de los VPS subieron en 2026 en todos los proveedores. Si estás replanteándote un servidor alquilado, mira qué cambió y cuándo gana un mini PC.
Empieza tu configuración de Samba

