LinuxParty
Configurar un servidor NAS (Network Attached Storage) en Red Hat Enterprise Linux (RHEL) o AlmaLinux puede transformar una máquina en un potente centro de almacenamiento compartido para tu red local. En este artículo te mostraremos paso a paso cómo instalar y configurar un servidor NAS funcional usando Samba (para entornos mixtos) y opcionalmente NFS (para redes puramente Linux/Unix).
✅ Requisitos Previos
- Un servidor con RHEL o AlmaLinux 8 o 9 instalado.
- Acceso root o privilegios sudo.
- Conexión de red estable.
- Espacio de almacenamiento extra o un disco dedicado para los archivos compartidos.
🛠️ Paso 1: Preparar el sistema
🔄 Actualizar el sistema
sudo dnf update -y sudo dnf install epel-release -y
🧰 Instalar herramientas útiles
sudo dnf install vim net-tools wget firewalld -y
📦 Paso 2: Instalar Samba (para compartir archivos en red)
📥 Instalar paquetes necesarios
sudo dnf install samba samba-client samba-common -y
📁 Paso 3: Crear estructura de carpetas compartidas
Vamos a crear un directorio dedicado al almacenamiento compartido.
sudo mkdir -p /srv/nas/public sudo mkdir -p /srv/nas/privado
Asignamos permisos apropiados:
sudo chown -R nobody:nogroup /srv/nas/public sudo chmod -R 0777 /srv/nas/public sudo chown -R root:sambashare /srv/nas/privado sudo chmod -R 0770 /srv/nas/privado
Creamos un grupo para los usuarios del NAS:
sudo groupadd sambashare
🔧 Paso 4: Configurar Samba
Abre el archivo de configuración:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak sudo vim /etc/samba/smb.conf
Agrega al final:
[public] path = /srv/nas/public browsable = yes writable = yes guest ok = yes read only = no force user = nobody [privado] path = /srv/nas/privado browsable = yes writable = yes valid users = @sambashare guest ok = no read only = no
👤 Paso 5: Crear usuarios Samba
Creamos un usuario Linux y lo agregamos al grupo sambashare
:
sudo useradd juan sudo passwd juan sudo usermod -aG sambashare juan
Añadimos el usuario a Samba:
sudo smbpasswd -a juan sudo smbpasswd -e juan
🔥 Paso 6: Configurar el firewall
sudo firewall-cmd --permanent --zone=public --add-service=samba sudo firewall-cmd --reload
▶️ Paso 7: Habilitar y arrancar servicios
sudo systemctl enable smb --now sudo systemctl enable nmb --now
Verifica que estén corriendo:
systemctl status smb systemctl status nmb
🧪 Paso 8: Probar la conexión desde otro equipo
En un equipo Windows:
-
Abre el explorador de archivos.
-
En la barra de direcciones, escribe:
\\IP_DEL_SERVIDOR
-
Accede a las carpetas compartidas (
public
estará abierta,privado
requerirá autenticación).
En Linux:
smbclient //IP_DEL_SERVIDOR/public -U guest
o para la privada:
smbclient //IP_DEL_SERVIDOR/privado -U juan
📎 (Opcional) Configurar NFS (para entornos Linux)
📥 Instalar NFS
sudo dnf install nfs-utils -y
📁 Crear carpeta y exportarla
sudo mkdir -p /srv/nfsdata sudo chown nobody:nobody /srv/nfsdata
Edita el archivo /etc/exports
:
sudo vim /etc/exports
Agrega:
/srv/nfsdata 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
Reinicia y habilita servicios:
sudo systemctl enable nfs-server --now sudo exportfs -a
Desde un cliente Linux:
sudo mount -t nfs IP_DEL_SERVIDOR:/srv/nfsdata /mnt
🔒 Seguridad y consideraciones finales
-
Usa particiones o discos separados para el almacenamiento compartido.
-
Configura cuotas si hay varios usuarios.
-
Considera cifrado si los datos son sensibles.
-
Usa SELinux: Si está activado, habilita el acceso con:
sudo setsebool -P samba_enable_home_dirs on sudo chcon -t samba_share_t /srv/nas/public sudo chcon -t samba_share_t /srv/nas/privado
Ya tienes un servidor NAS funcional usando Samba en RHEL o AlmaLinux. Puedes almacenar y compartir archivos con equipos de tu red fácilmente, y escalar la configuración con discos adicionales, RAID o incluso integrarlo con Active Directory si lo deseas.
Hemos creado un script sencillo, por si quieres utilizarlo para la configuración de tu sitio (no es recomendable si no tienes experiencia, mejor hacerlo manualmente, siguiendo el artículo).
Debes adaptar y cambiar el valor de las variables y la IP del servidor. (aquí, es un ejemplo)
#!/bin/bash # CONFIGURACIÓN INICIAL DOMAIN="midominio.local" REALM="MIDOMINIO.LOCAL" AD_ADMIN="Administrador" AD_GROUP="NASUsers" HOSTNAME="nas01.$DOMAIN" SHARE_DIR="/srv/nas/adcompartido" SHARE_NAME="adcompartido" DNS_SERVER="192.168.1.10" # IP de tu servidor DNS/AD # VERIFICACIONES INICIALES if [[ $EUID -ne 0 ]]; then echo "Este script debe ejecutarse como root" exit 1 fi echo "[+] Estableciendo hostname..." hostnamectl set-hostname "$HOSTNAME" echo "[+] Configurando DNS..." cat > /etc/resolv.conf <<EOF nameserver $DNS_SERVER search $DOMAIN EOF echo "[+] Instalando paquetes requeridos..." dnf install -y realmd sssd adcli oddjob oddjob-mkhomedir \ samba samba-common samba-common-tools krb5-workstation echo "[+] Descubriendo el dominio..." realm discover $DOMAIN || { echo "Error descubriendo el dominio"; exit 1; } echo "[+] Uniendo al dominio..." realm join --user=$AD_ADMIN $DOMAIN || { echo "Error al unir al dominio"; exit 1; } echo "[+] Verificando unión..." realm list echo "[+] Configurando Samba..." cp /etc/samba/smb.conf /etc/samba/smb.conf.bak cat > /etc/samba/smb.conf <<EOF [global] workgroup = ${REALM%%.*} security = ads realm = $REALM dedicated keytab file = /etc/krb5.keytab kerberos method = secrets and keytab winbind use default domain = yes winbind enum users = yes winbind enum groups = yes idmap config * : backend = tdb idmap config * : range = 3000-7999 idmap config ${REALM%%.*} : backend = rid idmap config ${REALM%%.*} : range = 10000-999999 [$SHARE_NAME] path = $SHARE_DIR browseable = yes read only = no guest ok = no valid users = @"$REALM\\$AD_GROUP" EOF echo "[+] Creando carpeta compartida..." mkdir -p "$SHARE_DIR" chown root:"$REALM\\$AD_GROUP" "$SHARE_DIR" chmod 2770 "$SHARE_DIR" echo "[+] Etiquetando SELinux para Samba..." semanage fcontext -a -t samba_share_t "$SHARE_DIR(/.*)?" restorecon -Rv "$SHARE_DIR" echo "[+] Habilitando servicios..." systemctl enable --now smb nmb sssd echo "[+] Configurando firewall..." firewall-cmd --permanent --add-service=samba firewall-cmd --reload echo "[+] Activando creación automática de carpetas home..." authselect enable-feature with-mkhomedir authselect apply-changes echo "[✅] ¡Servidor NAS con AD integrado y compartición Samba listo!" echo "Puedes probar accediendo desde un cliente a: \\\\$HOSTNAME\\$SHARE_NAME"
Después:
- Guarda el contenido como
setup_ad_nas.sh
- Dale permisos de ejecución: chmod a+x setup_ad_nas.sh
- Ejecútalo escribiendo: ./setup_ad_nas.sh

-
Empleo
- El CEO de IBM no cree que la IA vaya a reemplazar a los programadores en el futuro cercano
- El desempleo en el sector de TI en Estados Unidos aumenta al 5,7 %. ¿Está la IA afectando a los empleos tecnológicos?
- Un estudio afirma que el incumplimiento de los plazos hace que la gente juzgue el trabajo con más dureza
- Los buscadores de empleo inundan a los reclutadores con CV generados por IA
- Esto es lo que sucede cuando le das "dinero gratis" a la gente
- ¿Una semana laboral de tres días? Experimentos de inicio para atraer talento
- Seguir el valor de las criptomonedas en la terminal de Linux en tiempo real
- Reportero deplora dejar entrar a la gente de Amazon en su casa
- La Economía Gig celebra el Trabaje Usted mismo Hasta Morir
- ¿Qué es la Economía Gig?
- El Ejercito Italiano se ahorra 29 millones de euros, con LibreOffice
- Economía Star Trek
- Las 25 empresas de Software que mejor pagan a sus empleados
- Google no es puro demonio como Facebook
- Facturar un diseño web sin ser autónomo (I)