LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

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:

  1. Abre el explorador de archivos.

  2. En la barra de direcciones, escribe: \\IP_DEL_SERVIDOR

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

 

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías