Cómo crear un servidor de archivos seguro y de alto rendimiento en Ubuntu: Guía de configuración de Samba y NFS

目次

1. ¿Cuáles son los beneficios de crear un servidor de archivos en Ubuntu?

¿Qué es un servidor de archivos?

Un servidor de archivos es un servidor que permite a varios dispositivos en una red almacenar y compartir archivos comunes. Facilita el intercambio de archivos dentro de redes domésticas o de oficina, permite la gestión centralizada de datos, simplifica las copias de seguridad y ofrece muchas ventajas adicionales.

Por ejemplo, si varias personas necesitan editar el mismo documento, guardarlo en un servidor de archivos permite que todos accedan a la versión más reciente, en lugar de intercambiar archivos guardados en PCs locales. También reduce el riesgo de almacenar datos importantes en máquinas individuales y sirve como una protección eficaz contra la pérdida de datos.

¿Por qué elegir Ubuntu?

Muchos sistemas operativos pueden usarse para crear un servidor de archivos, pero Ubuntu es una de las opciones más populares por las siguientes razones:

1. Gratis

Ubuntu es una distribución Linux de código abierto, lo que significa que no requiere licencias. Esto lo convierte en una opción muy atractiva para personas u organizaciones que desean crear un entorno de servidor manteniendo bajos los costos.

2. Ligero y muy estable

Ubuntu consume pocos recursos del sistema y puede ejecutarse en PCs antiguos o dispositivos como Raspberry Pi. Elegir una versión LTS (Long Term Support) brinda actualizaciones de seguridad y correcciones de errores a largo plazo, lo que lo hace ideal para uso en servidores.

3. Amplio soporte para herramientas como Samba y NFS

Ubuntu facilita la instalación y configuración de sistemas de archivos en red como Samba (para compartir archivos con Windows) y NFS (para compartir archivos con Linux/Unix). Con abundantes paquetes y documentación, incluso los principiantes pueden crear un servidor con confianza.

4. Gran comunidad y documentación extensa

Debido a que Ubuntu se usa ampliamente en todo el mundo, puedes encontrar fácilmente soluciones en línea cuando surgen problemas. La documentación extensa en inglés y otros idiomas hace que la plataforma sea amigable incluso para usuarios que no se sienten cómodos con el inglés.

Perfecto para entornos domésticos o de pequeñas oficinas

Un servidor de archivos construido con Ubuntu es ideal para compartir datos entre varios dispositivos en una red doméstica o para el trabajo colaborativo en un entorno SOHO. En comparación con la compra de un dispositivo NAS dedicado, Ubuntu te permite crear una solución más flexible y rentable adaptada a tus necesidades.

Algunos casos de uso típicos:

  • Un servidor multimedia para compartir fotos y videos en el hogar
  • Compartir facturas, presupuestos y documentos en una pequeña empresa
  • Intercambio de código y documentación dentro de un equipo de desarrollo

2. Comparación de métodos de intercambio de archivos: diferencias entre Samba y NFS

Al crear un servidor de archivos en Ubuntu, las dos opciones principales son Samba y NFS. Ambas permiten compartir archivos a través de la red, pero difieren en los sistemas operativos cliente compatibles y en sus características funcionales. Esta sección compara las características de cada método para ayudarte a decidir cuál se adapta mejor a tu entorno.

¿Qué es Samba? — Compatibilidad excelente con Windows

Samba implementa el protocolo de uso compartido de archivos de Windows SMB (Server Message Block) en Linux. Instalar Samba en Ubuntu permite crear un servidor de archivos al que las PCs con Windows pueden acceder como una unidad de red.

Características de Samba

  • Excelente compatibilidad con Windows
  • Acceso fácil a carpetas compartidas mediante el Explorador de Windows
  • Configuración granular de autenticación de usuarios y permisos
  • Herramientas de configuración con interfaz gráfica (p. ej., Webmin) disponibles

Cuándo Samba es la mejor opción

  • Cuando se comparten archivos con clientes Windows
  • Cuando se comparten archivos entre diferentes plataformas (p. ej., Windows + Linux)
  • Cuando se prefiere una configuración fácil de usar en entornos domésticos o de oficina

¿Qué es NFS? — Intercambio rápido de archivos para sistemas Linux/Unix

NFS (Network File System) es un protocolo usado principalmente para compartir archivos entre sistemas Linux y Unix. Desde la perspectiva del cliente, la carpeta de un servidor NFS se comporta casi como un directorio local.

  • Ideal para compartir archivos de Linux a Linux
  • Rendimiento ligero y de alta velocidad
  • Configuración simple adecuada para compartir a gran escala
  • Requiere una configuración de seguridad cuidadosa (control de acceso basado en IP)

Cuando NFS es la mejor opción

  • Entornos de servidores basados en Linux
  • Directorios de servidor compartidos para equipos de desarrollo
  • Escenarios que requieren transferencias de archivos ligeras y de alta velocidad

Tabla comparativa: Samba vs. NFS

ItemSambaNFS
Supported OSWindows / Linux / macOSLinux / Unix (Windows not recommended)
ProtocolSMB (CIFS)NFS
SpeedMedium (varies by configuration)High
SecurityUser authentication, encryption supportedIP-based control, Kerberos support
Configuration DifficultyModerateSimple
Use CaseCross-platform sharingEfficient Linux-to-Linux sharing

¿Cuál deberías elegir?

En última instancia, la elección depende del sistema operativo del cliente, el caso de uso y las prioridades:

  • Samba es la mejor opción al compartir con clientes Windows
  • NFS es la mejor opción para compartir de Linux a Linux a alta velocidad
  • Para entornos mixtos, usar tanto Samba como NFS también es una solución válida

La flexibilidad de Ubuntu te permite combinar ambos según tus necesidades.

3. [Samba] Cómo crear un servidor de archivos en Ubuntu

En esta sección, explicamos cómo instalar y configurar Samba en Ubuntu para crear un servidor de archivos. Este método es especialmente eficaz al compartir archivos con clientes Windows.

Preparación: actualizar Ubuntu y comprobar paquetes instalados

Primero, actualiza tu sistema Ubuntu a la última versión. Abre una terminal y ejecuta los siguientes comandos:

sudo apt update
sudo apt upgrade

A continuación, verifica si Samba ya está instalado:

smbclient --version

Si no se muestra ninguna versión, instala Samba en el siguiente paso.

Cómo instalar Samba

Instala el paquete Samba usando el siguiente comando:

sudo apt install samba -y

Después de la instalación, verifica que el servicio esté activo:

sudo systemctl status smbd

Si muestra “active (running)”, Samba está funcionando correctamente.

Configuración de smb.conf y creación de una carpeta compartida

El archivo de configuración de Samba se encuentra en /etc/samba/smb.conf. Primero, crea un directorio compartido. En este ejemplo, usamos /srv/samba/shared como la carpeta compartida.

sudo mkdir -p /srv/samba/shared
sudo chmod 777 /srv/samba/shared

A continuación, edita el archivo de configuración:

sudo nano /etc/samba/smb.conf

Añade la siguiente configuración al final del archivo:

[Shared]
   path = /srv/samba/shared
   browseable = yes
   read only = no
   guest ok = yes

Esta configuración crea una carpeta pública escribible por cualquiera. Para un uso seguro, configura la autenticación de usuarios como se describe más adelante.

Aplica los cambios reiniciando Samba:

sudo systemctl restart smbd

Creación de usuarios Samba y configuración de permisos de acceso

Para mejorar la seguridad, se recomienda crear usuarios Samba y restringir el acceso.

  1. Crea un usuario local de Ubuntu (omite este paso si ya existe):
    sudo adduser sambauser
    
  1. Registra el usuario como una cuenta Samba:
    sudo smbpasswd -a sambauser
    
  1. Cambia la propiedad del directorio y restringe el acceso:
    sudo chown sambauser:sambauser /srv/samba/shared
    sudo chmod 770 /srv/samba/shared
    
  1. Modifica smb.conf para requerir autenticación:
    [SecureShared]
       path = /srv/samba/shared
       browseable = yes
       read only = no
       valid users = sambauser
    

Cómo conectarse desde un cliente Windows

Una vez configurado Samba, puedes conectarte desde un PC con Windows siguiendo estos pasos:

  1. Abre el Explorador de archivos
  2. Introduce lo siguiente en la barra de direcciones: \\<Ubuntu-server-IP>\Shared
  3. Cuando se solicite, ingresa el nombre de usuario y la contraseña para sambauser

Si tiene éxito, la carpeta compartida funcionará como cualquier directorio normal en Windows.

4. [NFS] Cómo crear un servidor de archivos en Ubuntu

NFS (Network File System) es un protocolo de compartición de archivos en red ligero y rápido, ampliamente usado en entornos Linux y Unix. Es fácil de instalar en Ubuntu y permite un intercambio fluido de archivos entre múltiples máquinas Linux.

Aquí, describimos los pasos para configurar un servidor NFS en Ubuntu.

Cómo instalar el servidor NFS

Instala el paquete del servidor NFS ejecutando los siguientes comandos en el servidor Ubuntu:

sudo apt update
sudo apt install nfs-kernel-server -y

Verifique que el servicio esté en ejecución:

sudo systemctl status nfs-server

Si muestra “active (running)”, la instalación fue exitosa.

Configuración de /etc/exports y definición de directorios compartidos

A continuación, cree el directorio al que los clientes deben acceder. En este ejemplo, usamos /srv/nfs/shared:

sudo mkdir -p /srv/nfs/shared
sudo chown nobody:nogroup /srv/nfs/shared
sudo chmod 755 /srv/nfs/shared

Edite el archivo de configuración de NFS:

sudo nano /etc/exports

Agregue la siguiente línea (reemplazando 192.168.1.0/24 por su red):

/srv/nfs/shared 192.168.1.0/24(rw,sync,no_subtree_check)

Aplique los cambios:

sudo exportfs -a
sudo systemctl restart nfs-server

La configuración del servidor NFS ya está completa.

Cómo montar desde un cliente Linux

En cada cliente Linux que vaya a acceder al servidor NFS, instale el paquete cliente de NFS:

sudo apt update
sudo apt install nfs-common -y

Cree un punto de montaje, por ejemplo /mnt/nfs_shared:

sudo mkdir -p /mnt/nfs_shared

Luego monte el recurso NFS:

sudo mount -t nfs 192.168.1.10:/srv/nfs/shared /mnt/nfs_shared

※ Reemplace 192.168.1.10 por la dirección IP de su servidor NFS.

Una vez montado, el directorio compartido se comporta como una carpeta local.

Montaje automático al iniciar (opcional)

Para montar el recurso NFS automáticamente al arrancar, añada esta línea a /etc/fstab:

192.168.1.10:/srv/nfs/shared /mnt/nfs_shared nfs defaults 0 0

Esto garantiza que el recurso NFS se monte automáticamente al iniciar el sistema.

Restricciones de acceso específicas de NFS y notas importantes

NFS utiliza control de acceso basado en IP, a diferencia de Samba. En /etc/exports, siempre especifique únicamente redes o hosts de confianza.

Además, si el UID (identificador de usuario) y el GID (identificador de grupo) en el servidor y el cliente no coinciden, la propiedad de los archivos puede interpretarse incorrectamente. Para un funcionamiento fluido, se recomienda usar UIDs y GIDs coincidentes en todos los sistemas.

Con esto, su servidor de archivos NFS en Ubuntu está listo. En comparación con Samba, NFS es más sencillo y rápido, lo que lo hace muy adecuado para entornos Linux.

5. Seguridad y buenas prácticas operativas

Aunque un servidor de archivos es una herramienta poderosa para compartir datos en una red, también incrementa el riesgo de filtraciones de datos y accesos no autorizados si no se implementan medidas de seguridad adecuadas. Esta sección presenta las mejores prácticas de seguridad y gestión esenciales para ejecutar un servidor de archivos Ubuntu de forma segura y eficiente.

Restringir el acceso con el firewall (ufw)

Ubuntu incluye un firewall integrado llamado ufw (Uncomplicated Firewall). Para el uso compartido de archivos mediante Samba o NFS, puede limitar el tráfico de red innecesario permitiendo explícitamente solo los puertos requeridos.

Ejemplo: permitir puertos para Samba

sudo ufw allow Samba

Este comando abre todos los puertos necesarios para Samba (137, 138, 139, 445) de una sola vez.

Ejemplo: permitir puertos para NFS

Los puertos de NFS varían según el entorno, por lo que puede ser necesario abrirlos individualmente o configurarlos para que usen puertos fijos.

sudo ufw allow from 192.168.1.0/24 to any port nfs

192.168.1.0/24 representa el rango de red permitido.

Fortalecer el control de acceso y la autenticación de usuarios

Restricciones de acceso en Samba

  • Use valid users para limitar quién puede acceder a cada recurso compartido
  • Use read only = yes para permitir solo lectura cuando sea necesario
  • Use hosts allow y hosts deny para restricciones basadas en IP

Ejemplo (smb.conf):

[SecureShared]
   path = /srv/samba/secure
   read only = no
   valid users = user1
   hosts allow = 192.168.1.

Restricciones de acceso en NFS

  • Especifique direcciones IP o redes permitidas en /etc/exports
  • Defina explícitamente rw (lectura/escritura) o ro (solo lectura)
  • Use root_squash para evitar que los clientes utilicen privilegios de root

Ejemplo:

/srv/nfs/secure 192.168.1.0/24(rw,sync,no_subtree_check,root_squash)

Monitorear registros y detectar irregularidades

Monitorear los registros es esencial para detectar accesos no autorizados, errores o actividades sospechosas.

  • Registros de Samba: /var/log/samba/log.smbd
  • Registros de NFS: /var/log/syslog o journalctl -u nfs-server

Usar herramientas como fail2ban permite bloquear automáticamente direcciones IP después de repetidos fallos de inicio de sesión.

Construir un sistema de copias de seguridad automatizado

Las copias de seguridad regulares son esenciales para proteger contra la eliminación accidental, la corrupción o fallas de hardware.

Ejemplos de copias de seguridad

  • Copia diferencial usando rsync
  • Copias programadas usando cron
  • Almacenamiento de copias en HDD externos o NAS
  • Sincronización con almacenamiento en la nube (Google Drive, Dropbox) usando rclone

Ejemplo: Un trabajo cron que realiza copias de seguridad diariamente a las 2:00 AM

0 2 * * * rsync -a /srv/samba/shared/ /mnt/backup/shared/

Mantener el software actualizado regularmente

Las actualizaciones regulares son una de las formas más efectivas de prevenir vulnerabilidades de seguridad.

sudo apt update && sudo apt upgrade -y

Usar una versión LTS de Ubuntu garantiza acceso a actualizaciones de seguridad y estabilidad a largo plazo.

Ejecutar un servidor de archivos no es una configuración única. Para una operación estable, debes gestionar de forma constante seguridad, copias de seguridad y mantenimiento.

6. Problemas comunes y cómo solucionarlos (Resolución de problemas)

Incluso después de la configuración, los servidores de archivos pueden experimentar problemas de configuración o operacionales. Esta sección resume problemas comunes con servidores de archivos Samba y NFS en Ubuntu y cómo resolverlos.

No se puede conectar / Carpeta compartida no visible

Síntomas

  • Los clientes Windows o Linux no pueden acceder a las carpetas compartidas
  • El servidor no aparece en la lista de la red

Causas principales y soluciones

CauseSolution
Firewall blocking trafficsudo ufw allow Samba or sudo ufw allow from [IP] to any port nfs
Hostname resolution failureAccess using IP directly: \\192.168.1.10\Shared
Samba/NFS service is not runningsudo systemctl restart smbd or restart nfs-server
Incorrect client network settingsCheck subnet mask, gateway, and DNS settings

Errores de permisos

Síntomas

  • No se pueden crear o modificar archivos
  • Aparecen mensajes de “Acceso denegado”

Causas principales y soluciones

CauseSolution
Incorrect directory ownershipsudo chown -R user:group /shared-folder
Insufficient permissions (chmod)sudo chmod -R 770 /shared-folder
Misconfigured Samba settingsEnsure read only = no in the [shared] section
UID/GID mismatch in NFSAlign user IDs between server and client (id command)

Montaje no persistente / Carpeta compartida desaparece después del reinicio

Síntomas

  • Las carpetas compartidas montadas con NFS desaparecen después de reiniciar el cliente
  • El comando de montaje debe ejecutarse manualmente cada vez

Causas principales y soluciones

CauseSolution
Missing fstab entryAdd auto-mount settings to /etc/fstab
Network initializes later than fstabAdd nofail,_netdev to mount options
Slow response from serverAdd timeout settings such as timeo=14 when mounting

Ejemplo de entrada en fstab (para NFS):

192.168.1.10:/srv/nfs/shared /mnt/nfs_shared nfs defaults,_netdev,nofail 0 0

Archivos no visibles / Cambios no sincronizados

Síntomas

  • Los archivos guardados desde otro cliente no aparecen inmediatamente
  • Los cambios tardan en reflejarse en los dispositivos

Causas principales y soluciones

CauseSolution
Cache delayOften temporary—refresh (Ctrl + F5) or reconnect
Client-side buffering (NFS)Use actimeo=0 for immediate sync
Delayed write operations (Samba)Add strict sync = yes to smb.conf

Revisar registros para diagnóstico

Al investigar problemas en Ubuntu, revisar los archivos de registro es esencial.

Registros de Samba

cat /var/log/samba/log.smbd

Registros de NFS

journalctl -u nfs-server

Los registros contienen información sobre intentos de acceso fallidos, errores de autenticación y problemas de configuración. Buscar mensajes de error en línea suele llevar a soluciones relevantes.

Consejos para una resolución de problemas eficaz

  • Cambie la configuración en pasos pequeños y pruebe cada cambio
  • Siempre haga copias de seguridad de los archivos de configuración
  • Use herramientas de validación como testparm y exportfs -v
  • Reinicie los servicios o recargue la configuración después de realizar cambios

7. Preguntas frecuentes: Preguntas comunes sobre servidores de archivos Ubuntu

Esta sección cubre preguntas y dudas habituales que encuentran los usuarios principiantes e intermedios al crear y operar servidores de archivos Ubuntu.

P1. ¿Debería usar Samba o NFS?

R. Elija según el sistema operativo del cliente.

  • Samba (SMB) para entornos Windows Acceso fácil a través del Explorador de archivos
  • NFS para compartir entre Linux Ligero, rápido y estable

También puede usar ambos en entornos mixtos; no es necesario limitarse a uno solo.

P2. ¿Cómo comparto un dispositivo de almacenamiento externo (USB HDD)?

R. Monte primero el dispositivo de almacenamiento externo y luego configure Samba o NFS para compartir el directorio montado.

  1. Verifique los dispositivos disponibles:
    lsblk
    
  1. Cree un punto de montaje y monte el dispositivo:
    sudo mkdir /mnt/usb
    sudo mount /dev/sdX1 /mnt/usb
    
  1. Luego configure Samba o NFS para compartir /mnt/usb .

Si desea que se monte automáticamente, añada una entrada en /etc/fstab.

Q3. No puedo conectar a Samba desde Windows 11.

A. El problema puede estar relacionado con las versiones del protocolo SMB o la autenticación.

Intente añadir lo siguiente a /etc/samba/smb.conf:

client min protocol = SMB2
server min protocol = SMB2
  • Evite el acceso de invitado—utilice nombre de usuario/contraseña en su lugar
  • Si SMB 1.0 está habilitado en Windows, considere desactivarlo por razones de seguridad

Q4. ¿Cómo debo hacer copias de seguridad de mi servidor de archivos?

A. Automatizar las copias de seguridad es el enfoque más fiable.

  • Copias de seguridad diferenciales usando rsync
  • Tareas programadas usando cron
  • Copia de seguridad a HDD externo o NAS
  • Sincronizar con servicios en la nube usando rclone

Ejemplo de trabajo crontab (se ejecuta diariamente a las 2 a.m.):

0 2 * * * rsync -a /srv/samba/shared/ /mnt/backup/

Q5. ¿Qué es mejor para un servidor de archivos: Ubuntu Desktop o Ubuntu Server?

A. Ubuntu Server para una operación estable a largo plazo; Ubuntu Desktop por su facilidad de uso.

ItemUbuntu ServerUbuntu Desktop
GUI availabilityNo (lightweight)Yes (beginner-friendly)
Resource usageLowHigher
Operation styleCommand-line focusedGUI operations possible
Recommended useFull-scale server environmentsHome use, learning, lightweight setups

Si no necesita una GUI, Ubuntu Server tiende a ser más seguro y eficiente en recursos.

8. Resumen: Construya un Sistema de Compartición de Archivos Flexible con Ubuntu

Construir un servidor de archivos en Ubuntu es una excelente opción para crear un entorno de compartición de archivos económico, estable y personalizable. Esta guía cubrió las diferencias entre Samba y NFS, instrucciones de configuración paso a paso, prácticas de seguridad, métodos de solución de problemas y más.

Elija Samba o NFS según su caso de uso

Seleccione el método de compartición de archivos de acuerdo a sus necesidades:

  • Samba para compartir archivos con Windows — acceso directo desde el Explorador de archivos
  • NFS para compartir a alta velocidad entre Linux — ligero y eficiente

También puede combinar ambos para entornos mixtos.

Enfoque en la seguridad y el mantenimiento

  • Configure firewalls y restricciones de acceso
  • Mantenga la salud del sistema con actualizaciones regulares y monitoreo de logs
  • Implemente copias de seguridad automatizadas para prepararse ante fallos

¿Por qué crear un servidor de archivos personalizado?

Aunque comprar un NAS es una opción, crear su propio servidor con Ubuntu ofrece:

  • Un sistema sencillo con solo las funciones que necesita
  • Flexibilidad en hardware y capacidad de almacenamiento
  • Habilidades valiosas tanto para el aprendizaje personal como para aplicaciones empresariales

Si el proceso le pareció difícil al principio, esperamos que esta guía haya demostrado que construir su propio servidor de archivos está totalmente al alcance.

Ubuntu le permite crear un entorno de servidor de archivos potente y versátil, adecuado para todo, desde uso doméstico hasta aplicaciones profesionales. Elija la configuración que mejor se adapte a su red y flujo de trabajo.