🐋
Apuntes Sistemas
  • ⚓Presentación
  • 📊Sistemas y Servidores
    • Personalizar el prompt de Windows
    • Utilidad de manejo de apps para Windows
    • PRACTICA: Arranque dual Windows y Ubuntu
    • 🚧SysLinuxOS: el SO para ASIX
    • Comandos Linux
      • PRACTICA - Ejercicio de práctica comandos
      • 🚧Instalación de paquetes
      • Apuntes Linux: blue/red team
      • Ejemplos de bash
      • Listado de comandos de Linux
    • Comandos Windows
      • 🚧Apuntes Powershell
      • Bucles FOR con batch
      • Scripts de práctica de Windows
    • Prácticas con Windows 10
    • Configuración de netplan
    • Terminal shell
      • SSH
      • 🚧Ghostty
      • 🚧Warp: la terminal inteligente
      • tmux: paneles de terminal
      • Tabby: Mejorar terminal
      • Conexión SSH en red NAT con VirtualBox
      • TheFuck!: Corrección de comandos
      • Wave: Mejorar terminal Linux
      • 🚧Registros de sesiones
    • Instalación manual de Wordpress en CDMON
    • 🏗️Proxmox
    • 🚧TrueNAS
    • Docker
      • Instalación de Docker
      • Dockerfiles
      • Volúmenes de docker
      • Deployment web con Docker con ejemplos
        • 🚧PRACTICA: Node.js con docker
      • Docker Compose
        • Ejemplo 1: Implantación de Wordpress
        • Ejemplo 2: Implementación de servidor con Nginx, Flask y mySQL
        • Ejemplo 3: Implantación de onlyoffice
        • 🚧Ejemplo 4: Passbolt
        • 🚧PRACTICA: Creando una web de emulación de juegos con docker-compose
      • Monitorización con Grafana en Docker
      • Pi-hole con docker
      • Actividad clase: Deployment app
      • Proyectos self-hosted de docker
    • 🚧Ansible
      • Configuración de laboratorio de ansible
    • 🚧Monitorización de servicios y redes
      • Servicios y cronjobs
      • 1Panel
      • 🚧WatchYourLAN
      • 🚧Uptime-kuma
      • 🚧Netdata
      • 🚧Prometheus + Grafana + Loki
    • LDAP
      • 🚧Gestión gráfica de LDAP
      • Carpetas compartidas NFS
      • PRACTICA: Infraestructura LDAP
  • 🗃️Servicios
    • 🚧Servidor hosting público
    • DHCP
      • DHCP con Ubuntu
      • 🦖DHCP & DNS script
      • DHCP con Alpine
        • Alpine - configuración de red
    • DNS
      • 😡Comprobación DNS
      • Script para enumeración DNS
      • DNS con ubuntu server
      • 🏗️DNSmasq
      • 🚧Securizar servidor DNS
    • Web
      • IIS con Windows server
      • Apache
        • Instalación de LAMP en Ubuntu
          • Prueba de servidor LAMP
          • 🚧Configuración de seguridad de Ubuntu
          • Creación de un VirtualHost en LAMP
          • Creación de varios VirtualHosts en LAMP
          • 🚧Instalación por script de LAMP
        • Aplicaciones con LAMP
          • Instalación de WP en entorno LAMP
          • 🚧Instalación de MantisBT en LAMP
            • 👷Guía de MantisBT
          • 🚧Instalación de QDPM con LAMP
      • Nginx
        • Virtualhosts
        • Instalando Wordpress en nginx
      • 👷MEAN stack
      • 👷‍♂️Caddy
      • 🚧Plesk
      • 🚧Ajenti -Web interface
    • 🏗️Proxy
      • Nginx como proxy inverso y balanceador
      • 🚧Zoraxy
    • Mailing
      • 🚧Servidor Mail con cloudfare
      • 🚧Reenvío de correos de root
      • 🚧Roundcube como MUA
      • Comprobación ESMTP
      • 🚧Seguridad en mailing
      • 🚧Mailhog
    • 🏗️File transfer
      • 🚧FTP
      • Git
    • Sistemas de comunicación instantánea
      • Comunicación mediante CLI
      • Ejabberd - XMPP
        • 🚧Ejabberd con docker
      • 🚧Openfire - XMPP
      • 🚧Comunicaciones servidor-móvil
    • 🏗️Multimedia services
      • Stremio
      • Ver anime por CLI
      • Jellyfin
      • 🚧HLS sobre Apache
      • 🚧Servicio autohospedado de videoconferencia
      • 🚧Morphos: Conversor docs
      • 🚧Reproductores de música en CLI
      • 🚧Icecast - música en streaming
      • 🚧RTMP-HLS server
      • 🚧Guacamole
  • 🖱️Hardware
    • 🚧Identificando conectores
    • Curso de electrónica analógica
    • Alcanzar los 3200MHz con la RAM
    • Calculadora de cuellos de botella
    • 🚧PXE: Bootear sistemas en red
    • 🚧PRÁCTICA - Clonación de disco con Clonezilla
    • Logitech iFixit
  • 🕸️Redes
    • Apuntes IPv4 Alina
    • ¿Cómo diferenciar tantos elementos de red?
    • 🚧IPv6
    • PRÁCTICA - Subneteo con IPcalc en Linux
    • PRÁCTICA - Comandos de red en Windows
    • 🚧PRÁCTICA - Comandos de red en Linux
    • Herramientas de red
      • 🚧TCPDump: analizado de paquetes en red
      • PRÁCTICA - Netsh
      • 🚧PRÁCTICA - mtr.ping.pe
      • 🚧Netcat
    • Wireshark
    • VPN y escritorio remoto
      • Comunicación punto a punto con ngrok
      • 🚧VPN
    • Escaneo de red
      • PRÁCTICA - Mapeado de red con Draw.io
      • 🚧PRÁCTICA - Nmap/Zenmap
    • Redes inalámbricas
      • Wi-fi
        • 🚧PRÁCTICA - Configuración de router
        • 🚧PRÁCTICA - Como hacer un Wifi Heatmap
        • 🚧Seguridad de redes inalámbricas
        • PRÁCTICA - Crackear la contraseña del Wifi con WPA/WPA2
    • PRÁCTICA - Usar SSH en Cisco packet tracer
  • 🛑Ciberseguridad
    • 🚧Securizando un servidor Linux
      • Protégete de ataques de fuerza bruta con Fail2ban
      • Firewall
        • UFW (uncomplicated firewall)
          • GUFW - Interfaz gráfica de ufw
        • 🚧IPTables
        • 🚧PFsense
          • 🚧DMZ con PFsense
      • 🚧Passbolt: gestor de contraseñas autohospedado
      • 🚧Hashes y encriptación
      • 🚧Certificados SSL/TLS
      • Copias de seguridad
    • 🚧Alerta de escaneo de puertos
    • 🚧Google dorks
    • 🚧Enumeración DNS
    • Comandos destructivos de linux
    • Webs enseñanza cyber
    • Wireless Pentesting CheatSheet Github
    • The password game!
    • Personal Security Checklist
  • 🔌Arduino
    • Termómetro e higrómetros digitales y online con Arduino
    • Construyendo un coche multipropósito
      • Multi
      • Montaje del auto
    • Arduino con Sigfox para IoT
    • 10 proyectos de Arduino
  • 📚Recursos y libros
    • Media library: libros varios
    • Herramientas básicas de sysadmin
  • 🌍Sostenibilidad y digitalización
    • Portfolio curso digitalización MOOC
    • 🚧Explotación de recursos por IA
    • 🚧Nuevas tecnologias y comunicaciones
    • 🚧Enlaces sobre Inteligencia artificial
Con tecnología de GitBook
En esta página
  • Introducción
  • Compartir una carpeta con un grupo de LDAP
  • Comprobación del servicio NFS
  • 🖥️ EN EL SERVIDOR NFS
  • 💻 EN EL CLIENTE NFS
  1. Sistemas y Servidores
  2. LDAP

Carpetas compartidas NFS

AnteriorGestión gráfica de LDAPSiguientePRACTICA: Infraestructura LDAP

Última actualización hace 1 mes

Introducción

En las redes locales, como las que se encuentran en las oficinas y los hogares, es deseable que los ordenadores no sólo puedan acceder a Internet, sino que también puedan comunicarse entre sí.

En ocasiones un ordenador puede actuar como un servidor y un cliente. Por ejemplo, cuando se desea acceder a los archivos de otro ordenador de la red (Supongamos, que se necesita acceder a un archivo almacenado en un ordenador de sobremesa desde un dispositivo portátil) sin la molestia de tener que copiarlo en una unidad USB o similar.

Entre máquinas Linux, NFS (Network File System) se utiliza a menudo para este tipo de funciones, el protocolo NFS es la forma estándar de compartir sistemas de archivos en redes equipadas únicamente con máquinas Unix/Linux con las que un ordenador puede compartir uno o varios de sus directorios con ordenadores específicos de la red. De este modo, NFS puede leer y escribir archivos en estos directorios.

Incluso se puede usar NFS para compartir el árbol de directorios de todo un sistema operativo con clientes que lo usarán para arrancar (Bootear) desde el servidor. Estas computadoras, llamadas thin clients, se utilizan principalmente en redes grandes para evitar el mantenimiento de cada sistema operativo de cada máquina.

Si existen otros tipos de sistemas operativos conectados a la red, como Windows, se recomienda utilizar un protocolo de datos compartidos comprensible para todos ellos como es Samba.

Compartir una carpeta con un grupo de LDAP

✅ Servidor LDAP configurado y funcionando.

✅ Grupo LDAP creado (por ejemplo, grupo_nfs).

✅ Usuarios LDAP que formen parte de ese grupo.

✅ Un servidor NFS instalado y funcionando.

✅ Un cliente que pueda montar ese recurso.

Realmente, la única diferencia entre hacerlo vinculado a ldap o sin él es que en el paso 3, cuando hagas "sudo chown root:smx /srv/nfs/redes" en vez de vincularlo a un grupo de ldap, ponlo como "sudo chown nobody:nogroup /mnt/redes" en otra ruta y dale permisos chmod 755 para que pueda acceder cualquiera. Inlcuso vas a tener menos problemas por que no hace falta configurar grupos o usuarios de ldap, solo locales.

Si ya lo tienes todo claro, ¡prosigue con la guía!

Paso 1. Asegúrate de que LDAP gestiona los usuarios y grupos del sistema Si tienes LDAP funcionando con NSS (Name Service Switch), los grupos de usuarios de LDAP pueden ser reconocidos por el sistema, en mi caso es "smx" , desde el cliente ejecuta:

getent group smx

Si el grupo LDAP aparece en la salida, puedes usarlo en permisos de archivos, quédate con el gid del grupo que aparecerá al lado.

También es muy importante que los usuarios LDAP tengan el mismo UID/GID en el cliente y servidor NFS. Si no, los permisos no se aplicarán correctamente. Puedes verificar con:

#En servidor
ldapsearch -x -b dc=ifp,dc=local -s sub "(uid=alex)"

#En cliente:
getent passwd alex
id alex

Ahora deberemos comprobar que el servidor tambien detecte estos grupos como locales, para ello prueba lo mismo que antes, si esto no funciona deberás hacer lo siguiente:

Asegurarnos que el grupo ldap se reconoce correctamente

Si tu servidor NFS no está conectado a LDAP correctamente, necesitarás configurar el cliente LDAP en el servidor. Para ello, asegúrate de que los servicios como nslcd o sssd (dependiendo de la configuración de tu sistema) estén instalados y funcionando.

  • Instala nslcd (si no está instalado):

    sudo apt-get install nslcd

    Cuando aparezca el mensaje asegúrate de marcar las tres primeras opciones:

  • Luego, asegúrate de que el servicio esté activo y lo fijamos:

    sudo systemctl status nslcd
    sudo systemctl enable nslcd
  • Reinicia nslcd para que cargue la configuración:

    arsudo systemctl restart nslcd

Esto debería permitir que el sistema reconozca los grupos de LDAP y sea capaz de usarlos en los comandos de chown como lo haces con grupos locales.

Paso 2. Instala el servidor NFS:

Revisa si nfs esta instalado:

dpkg -l | grep nfs-kernel-server

y, sino, instálalo con:

sudo apt install nfs-kernel-server -y

Paso 3. Crea la carpeta compartida en el servidor NFS

En nuestro caso la carpeta la llamaremos "redes", le daremos los permisos solo para el grupo "smx":

sudo mkdir -p /srv/nfs/redes
sudo chown root:smx /srv/nfs/redes
sudo chmod 770 /srv/nfs/redes

El chmod con esta configuración permitirá que usuarios del grupo LDAP grupo_nfs puedan leer, escribir y ejecutar (entrar en) la carpeta pero bloqueará completamente el acceso a usuarios que no pertenezcan ni al grupo ni sean root.

Paso 4. Exporta la carpeta en /etc/exports Abrimos el archivo:

sudo nano /etc/exports

Y agregaremos una entrada que definirá que directorios se van a compartir por NFS y con que opciones (recuerda cambiar la IP a la de tu red):

/srv/nfs/redes 20.0.0.0/24(rw,sync,no_root_squash)

Las opciones marcadas entre paréntesis hacen lo siguiente:

Opción
Qué hace

rw

Permite lectura y escritura a los clientes.

sync

Hace que los datos se escriban de inmediato en disco, no en caché (más seguro, menos rápido).

no_subtree_check

Desactiva la comprobación de subdirectorios, lo cual mejora el rendimiento y evita errores si el directorio compartido es parte de otro más grande.

Paso 5. Aplica los cambios en el servidor NFS

Es necesario como siempre, para aplicar los cambios, que reiniciemos los servicios:

sudo exportfs -ra
sudo systemctl restart nfs-kernel-server

Paso 6. Monta la carpeta en los clientes Vamos ahora a nuestro cliente, que son los equipos que usarán la carpeta NFS, ejecutaremos:

sudo apt install nfs-common

Crearemos el punto de montaje:

sudo mkdir -p /mnt/nfs/redes

Montamos la carpeta usando la IP del servidor:

  • Si queremos que sea temporal para esta sesión:

    sudo mount 20.0.0.5:/srv/nfs/redes /mnt/nfs/redes

Y si queremos que sea permanente deberemos añadirla a fstab:

echo "20.0.0.5:/srv/nfs/redes /mnt/nfs/redes nfs defaults 0 0" | sudo tee -a /etc/fstab

Y ahora, para terminarlo del todo:

sudo mount -a

La magia de esto está en que solo los usuarios del grupo smx podrán ahora escribir, gracias a los permisos 770 y la pertenencia al grupo, por lo tanto, si tus usuarios LDAP están en ese grupo, ya deberían poder ver la carpeta.


Comprobación del servicio NFS

Vamos ahora a ver, en cualquier caso, cómo verificar que todo esté correcto desde el servidor NFS y desde el cliente:

🖥️ EN EL SERVIDOR NFS

1. Verifica que la carpeta exista

La carpeta que estás compartiendo en /etc/exports debería existir ya en el sistema de archivos:

ls -ld /srv/nfs/compartido

* Si no aparece nada o da error, vuelve a revisar los pasos

2. Asegúrate de que tenga permisos adecuados

Puedes revisar:

ls -ld /srv/nfs/compartido

3. Verifica la exportación NFS

Una vez hayas añadido la línea al /etc/exports, ejecuta:

sudo exportfs -ra         # Recarga las exportaciones
sudo exportfs -v          # Muestra lo que está exportado y con qué opciones

💻 EN EL CLIENTE NFS

1. Verifica que puedes ver lo que exporta el servidor:

showmount -e 20.0.0.5

Esto te mostrará algo como:

Export list for 20.0.0.5:
/srv/nfs/redes 20.0.0.5/24

2. Verifica que está montada:

df -h | grep nfs

Vamos a hacer la prueba para revisar si al subir un archivo se comparte con otros usuarios:

  1. Desde el servidor creamos un archivo:

  1. Ahora vamos a comprobar desde un usuario no perteneciente al grupo smx el acceso a la carpeta:

  1. Ahora vamos a probar desde el usuario "alex" de mi ldap autorizado en el cliente:

Espero que esta guia te haya ayudado.

Esta práctica esta pensada para realizarse con la práctica de la infraestructura LDAP, la puedes ver ya que para poder realizar debemos revisar lo siguiente:

aquí
📊
Page cover image
Ejemplo de mapa de servicio NFS con un servidor compartiendo carpetas.
Esto permitirá usar los usuarios y grupos de ldap, realmente para esta practica con marcar la opción "group", ya funciona.
Desde servidor
Como ves, desde el usuario "ubuntu" no me deja acceder ni ver el directorio.
Ahora sí! ya puedo ver el archivo compartido.