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).