Configuración de un servidor de archivos Samba en Linux para redes locales

Preparación del entorno y gestión de almacenamiento

Para implementar un servidor de archivos robusto en Linux que interactúe con sistemas Windows, es fundamental asegurar el soporte para diferentes sistemas de archivos y la correcta gestión de discos.

Soporte parra NTFS y montaje de unidades

Para que Linux pueda operar con particiones NTFS, es necesario instalar el controlador ntfs-3g. En sistemas basados en RHEL/CentOS, esto se realiza habilitando primero el repositorio EPEL:

# Instalación de dependencias para NTFS
yum install epel-release -y
yum update
yum install ntfs-3g -y

Configuración de arreglos RAID 0

En escenarios donde se prioriza el rendimiento y se cuenta con mecanismos de respaldo externos, se puede configuarr un arreglo RAID 0 utilizando la herramienta mdadm. Una vez creadas las particiones con fdisk, el arreglo se inicializa de la siguiente manera:

# Creación de un volumen RAID 0 con dos discos
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

Montaje persistente mediante fstab

Para asegurar que los recursos (locales y remotos) estén disponibles tras un reinicio, se deben añadir al archivo /etc/fstab. A continuación se muestra un ejemplo de configuración para volúmenes locales, particiones NTFS y recursos compartidos vía CIFS:

# Edición de /etc/fstab
/dev/md0                /mnt/datos_locales      ext4      defaults  0 0  
/dev/sde2               /mnt/unidad_nas         ntfs-3g   defaults  0 0 
//192.168.1.10/backup   /mnt/remoto_sql         cifs      ro,username=usuario_smb,password=clave123 0 0
//192.168.1.20/files    /mnt/remoto_files       cifs      ro,username=usuario_smb,password=clave123 0 0

Para validar y aplicar los cambios sin reiniciar, ejecute: mount -av.

Implementación y configuración de Samba

Samba permite la interoperabilidad entre Linux y Windows mediante el protocolo SMB/CIFS. Su configuración requiere la creación de usuarios específicos en el sistema y en la base de datos de Samba.

Gestión de usuarios

Se recomienda crear un grupo dedicado y usuarios sin acceso a la shell del sistema por seguridad:

# Creación de grupo y usuario de red
groupadd grupo_samba
useradd -g grupo_samba -s /sbin/nologin usuario_red

# Asignación de contraseña en la base de datos de Samba
smbpasswd -a usuario_red

Configuración del archivo smb.conf

El archivo de configuración principal define los privilegios y las rutas de los directorios compartiods. Edite /etc/samba/smb.conf con la siguiente estructura:

[global]
    workgroup = WORKGROUP
    server string = Servidor de Archivos Linux

[almacen_principal]
    comment = Directorio de Trabajo
    path = /mnt/datos_locales
    valid users = usuario_red
    browseable = yes
    writable = yes
    create mask = 0775
    directory mask = 0775

[copia_nas]
    comment = Unidad NAS Externa
    path = /mnt/unidad_nas
    valid users = usuario_red
    browseable = yes
    writable = yes
    create mask = 0775

[logs_sistema]
    comment = Registros de Sincronización
    path = /var/log/respaldos
    valid users = usuario_red
    read only = yes
    browseable = yes

Tras editar la configuración, verifique la sintaxis con testparm y reinicie el servicio:

systemctl restart smb
systemctl enable smb

Automatización de respaldos con Crontab y Rsync

Para mantener la integridad de los datos, se pueden programar tareas de sincronización utilizando rsync. Esto permite copiar solo los archivos modificados, optimizando el uso de la red.

# Ejemplo de programación en /etc/crontab
# Sincronización diaria a la 01:00 AM
0 1 * * * rsync -avz --delete /mnt/remoto_files/ /mnt/datos_locales >> /var/log/respaldos/$(date +\%Y\%m\%d)_sync.log

# Respaldo de seguridad hacia la NAS a las 03:00 AM
0 3 * * * rsync -avz --delete /mnt/datos_locales/ /mnt/unidad_nas/backup_servidor >> /var/log/respaldos/$(date +\%Y\%m\%d)_nas.log

Gestión de codificación de caracteres

Un problema común al compartir archivos entre Linux y Windows es la codificación de nombres de archivos o contenido de texto. Mientras que Linux utiliza predominantemente UTF-8, los entornos Windows antiguos o configuraciones específicas pueden usar GBK o CP1252.

Si se generan archivos automáticos (como reportes HTML o logs) que serán visualizados en navegadores o editores de Windows, asegúrese de que el proceso de generación fuerce la codificación UTF-8 para evitar caracteres ilegibles (mojibake).

Etiquetas: linux Samba rsync raid0 Storage

Publicado el 7-21 03:26