Guía para montar comparticiones Unix con un cliente NFS de Windows
Nov 18, 2022
Las organizaciones modernas suelen utilizar una mezcla de sistemas operativos, incluyendo Unix, Linux, Windows y macOS. Network File System (NFS) es un protocolo abierto de cliente/servidor que permite a las organizaciones centralizar su almacenamiento de datos en uno o más servidores y habilitar el intercambio de archivos sin problemas entre sus diversos sistemas operativos.
Este blog explica cómo montar clientes NFS Windows para que los usuarios puedan acceder a archivos compartidos a través de la red como si estuvieran almacenados localmente. También proporciona las mejores prácticas para optimizar tanto la seguridad como el rendimiento.
Configuración de NFS en Windows: Guía paso a paso
Para permitir que un usuario acceda a archivos NFS remotos, siga estos pasos para configurar Windows mount NFS.
Paso 1: Instale la característica ‘Client for NFS’ en su máquina Windows para configurar el cliente NFS para Windows.
En Windows 10 o Windows 11, abra el Panel de Control y vaya a Windows Features. Expanda Services for NFS y marque la casilla junto a Client for NFS, como se muestra a continuación.
Para Windows Server 2012 y versiones posteriores, ejecute el Asistente de roles y características y seleccione Client for NFS, como se muestra a continuación.
Alternativamente, puede usar una sesión elevada de Windows PowerShell para instalar el cliente NFS de Windows:
- Para Windows 10 o Windows 11, el comando es:
Enable-WindowsOptionalFeature -Online -FeatureName ServicesForNFS-ClientOnly
- Para Windows Server, el comando es:
Install-WindowsFeature -Name NFS-Client
Paso 2: Verifique el cliente y la conectividad.
Verifique que el servicio NFS Client esté ejecutándose en su máquina, como se muestra a continuación.
Por supuesto, debe tener conectividad al servidor NFS designado. Para montar NFS en Windows con éxito, asegúrese de que el servicio Cliente NFS esté en funcionamiento y que el firewall permita el tráfico NFS. El puerto predeterminado es el 2049.
Paso 3: Realizar el mapeo de identidad.
Para permitir que los usuarios de Windows se autentiquen en un servidor Unix que proporciona exportaciones NFS, necesitamos mapear los usuarios de Windows a los identificadores de usuario (UIDs) y los identificadores de grupo (GIDs) utilizados por los sistemas operativos similares a Unix. Este mapeo permite al servidor Unix determinar qué usuario realizó la solicitud de la exportación NFS.
El mapeo de identidades se puede realizar utilizando cualquiera de los siguientes métodos:
- Active Directory (si está integrado con el entorno NFS)
- Archivos de mapeo de usuario local
- Configuraciones del Registro de Windows
La primera opción es preferida por razones de seguridad y escalabilidad.
Método A (Preferido): Realizar el mapeo de identidad en Active Directory (AD)
If both the Unix NFS server and Windows NFS client are joined to the same Active Directory domain, then we can use identity mapping in Active Directory. This is the preferred method whenever possible.
Por defecto, un cliente NFS no buscará el mapeo de identidad en Active Directory. Sin embargo, podemos cambiar eso ejecutando el siguiente comando en una sesión de PowerShell elevada en el cliente NFS:
Set-NfsMappingStore -EnableADLookup $True -ADDomainName “yourdomain.com”
Puede agregar estas opciones LDAP para especificar sus controladores de dominio:
Set-NfsMappingStore -LdapServers “dc1.yourdomain.com”,”dc2.yourdomain.com”
Reinicie el servicio de cliente NFS.
A continuación, necesitamos configurar nuestro mapeo de identidad. Podemos hacerlo en Active Directory Users and Computers de la siguiente manera:
- Habilite las funciones avanzadas en el menú desplegable Ver, como se muestra a continuación.
- Haga clic derecho en el objeto que desea ver y seleccione Properties.
- En la pestaña del Editor de Atributos, seleccione el atributo uidNumber o gidNumber y haga clic en Editar.
- Introduzca un valor y haga clic en OK para guardar los cambios.
Alternativamente, puede usar el siguiente comando de PowerShell:
Set-ADUser -Identity <UserPrincipalName> -Add @{uidNumber=”<user_unix_uid>”;gidNumber=”<user_unix_gid>”}
Reemplace lo siguiente:
- UserPrincipalName — El usuario a modificar (por ejemplo, user@domain.com)
- @{ … } — Una tabla hash que contiene los nuevos atributos a añadir
- uidNumber — El ID de usuario Unix (UID) para el usuario
- gidNumber — El ID de grupo Unix (GID) para el grupo principal del usuario
Para realizar esta tarea automáticamente, cree un archivo CSV que contenga datos de usuario y recórralo.
Método B: Realizar el mapeo de identidad utilizando archivos de configuración locales
El uso de archivos de mapeo de usuarios locales es un enfoque sencillo para establecer correspondencia entre usuarios de Windows y UIDs/GIDs de Unix sin depender de Active Directory. Este método utiliza dos archivos de configuración principales:
- passwd — Asocia usuarios de Windows con UIDs de Unix
- grupo — Asocia grupos de Windows con GIDs de Unix
Ambos archivos se encuentran típicamente en el directorio C:\Windows\system32\drivers\etc\. Siguen un formato específico, donde cada línea representa una asignación de usuario o grupo. Cuando un usuario de Windows intenta acceder a un recurso NFS, el servicio NFS consulta estos archivos para buscar el nombre de cuenta de Windows del usuario y recuperar el UID y GID correspondientes, que luego se utilizan para las operaciones NFS.
Este método es fácil de configurar y gestionar en entornos pequeños y es particularmente útil para servidores independientes o grupos de trabajo. Sin embargo, debido a que requiere mantenimiento manual de archivos de mapeo, no escala bien para entornos grandes. Además, aunque ofrece una solución para entornos donde la integración con Active Directory no es factible, es importante considerar las implicaciones de seguridad y auditar regularmente los mapeos para asegurar que sigan siendo precisos y seguros.
Método C: Realizar el mapeo de identidad utilizando la configuración del Registro de Windows
Este método implica establecer valores del registro para especificar un UID y GID predeterminados que el cliente NFS de Windows utilizará al acceder a las comparticiones NFS. Es particularmente útil cuando se desea que todo el acceso NFS desde el cliente Windows se muestre como un usuario Unix específico, independientemente de la cuenta de usuario de Windows.
Para implementar este mapeo, utilice los siguientes comandos de PowerShell:
New-ItemProperty “HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default” -Name AnonymousUID -Value <unix_export_owner_uid> -PropertyType “DWord”
New-ItemProperty “HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default” -Name AnonymousGID -Value <unix_export_owner_gid> -PropertyType “DWord”
Necesita reiniciar para que los nuevos ajustes surtan efecto. Esta asignación se aplicará a todas las monturas NFS realizadas por el cliente de Windows. Después de realizar la asignación de identidad, puede montar NFS en Windows utilizando el símbolo del sistema.
Tenga en cuenta que este método aplica el mismo UID/GID a todo el acceso NFS desde el cliente Windows, lo que puede no proporcionar un control de acceso suficiente en entornos multiusuario. Además, modificar el registro requiere privilegios administrativos, lo que podría ser una preocupación de seguridad. Por estas y otras razones, este método se considera un enfoque inseguro y no se recomienda.
Paso 4: Montar compartición NFS en Windows
Montar en NFS significa adjuntar un sistema de archivos remoto (exportado por un servidor NFS) a un directorio en el sistema de archivos local de una máquina cliente. Cuando un cliente monta una compartición NFS, se conecta al sistema de archivos remoto y lo hace aparecer como si la compartición NFS fuera parte de la estructura de directorios local.
Para montar NFS en Windows, asígnelo a una letra de unidad disponible utilizando el símbolo del sistema, de la siguiente manera:
montar \\<nfs_server_ip_address>\<pathtonfsexport> Z:
Reemplace lo siguiente:
- <nfs_server_ip_address> — La dirección IP de su servidor NFS
- <pathtonfsexport> — La ruta de exportación en el servidor
- Z — La letra de unidad a la que se montará el recurso compartido NFS en su computadora con Windows.
Puede agregar opciones adicionales; por ejemplo, mount -o anon indica que la conexión debe realizarse de forma anónima, y mount -o nolock anula el bloqueo de archivos predeterminado utilizado por NFS.
Después de ejecutar el comando mount o mount o, verifique si la compartición NFS se montó con éxito ejecutando el comando net use para mostrar todas las unidades de red mapeadas.
Consejos para la resolución de problemas
Aquí hay algunos errores que pueden surgir durante el proceso de montaje y sus causas subyacentes típicas:
- Permiso denegado — Configuración de exportación incorrecta en el servidor NFS o regla de NFS bloqueando
- Acceso denegado por el servidor — UID/GID no coinciden entre el cliente y el servidor
- Incompatibilidad de versión — Cliente y servidor utilizan versiones incompatibles de NFS
- Punto de montaje ya en uso — Intentando montar en un directorio que ya se está utilizando como punto de montaje
- No existe tal archivo o directorio — La ruta de exportación en el servidor no existe
Mejores prácticas para montar NFS en Windows
Las siguientes mejores prácticas pueden ayudarlo a optimizar la seguridad y el rendimiento al usar montaje NFS en Windows.
Seguridad
- Utilice protocolos de autenticación fuertes como Kerberos.
- Configure los firewalls para segmentar la red y restringir el acceso NFS desde redes no confiables, permitiendo solo los puertos necesarios (puerto TCP y UDP 2049).
- Cifre los datos en tránsito utilizando protocolos seguros para proteger los datos contra la interceptación y la manipulación.
- Limite los permisos de exportación NFS otorgando el acceso mínimo requerido y restringiendo las conexiones de clientes a direcciones IP o nombres de host específicos.
- Actualice y aplique parches regularmente tanto en el cliente Windows como en el servidor NFS para protegerse contra vulnerabilidades conocidas.
- Habilite el registro detallado en el servidor NFS y monitoree la actividad sospechosa.
- Utilice medidas de seguridad de red adicionales como VPNs para el acceso remoto.
Rendimiento
- Si es posible, utilice NFSv4 o NFSv4.1 en lugar de NFSv3.
- Habilite la caché de lectura y escritura en el lado del cliente para mejorar el rendimiento de los datos a los que se accede con frecuencia. Puede hacer esto utilizando el siguiente comando: mount –o readcache,writecache.
- Si la seguridad no es una preocupación en su entorno, considere usar la opción nolock para deshabilitar el bloqueo de archivos.
- Mantenga el software cliente NFS de Windows actualizado para beneficiarse de las últimas mejoras de rendimiento y correcciones de errores.
Monitoree los cambios en las comparticiones Unix con Netwrix
Netwrix Change Tracker garantiza la seguridad mediante el monitoreo de cambios en archivos y el mantenimiento de un registro de auditoría
FAQ
¿Windows 11 admite clientes NFS?
Sí, Windows 11 admite clientes NFS.
¿Cómo puedo usar NFS en Windows?
Aquí hay algunas formas en que puedes usar NFS en Windows:
- Puede proporcionar acceso al mismo recurso compartido de archivos utilizando tanto los protocolos SMB como NFS mediante un servidor de archivos NFS de Windows.
- Puede implementar un sistema operativo que no sea Windows para proporcionar recursos compartidos de archivos NFS accesibles a clientes que no sean Windows mediante el protocolo NFS.
- Para permitir que las aplicaciones se migren de un sistema operativo a otro, puede almacenar datos en recursos compartidos de archivos accesibles utilizando tanto los protocolos SMB como NFS.
¿Qué mejoras se incluyen en la versión 4.1 de NFS?
Para obtener detalles completos, visite la página de Microsoft NFS. Las mejoras clave en la versión 4.1 incluyen:
- Infraestructura de transporte Remote Procedure Call (RPC)/External Data Representation (XDR), que ofrece un mejor soporte y proporciona una mejor escalabilidad
- Multiplexor de puerto RPC
- Cachés y grupos de hilos autoajustables
- Nueva implementación de privacidad Kerberos y opciones de autenticación
¿Cómo agrego el servicio de rol para el servidor de NFS?
En Server Manager o Windows Admin Center, utilice el Asistente para agregar roles y características.
¿Qué herramientas de administración de línea de comandos de Windows contiene Server for NFS?
- Mount proporciona un montaje NFS en clientes Windows que se asigna a una unidad local.
- Nfsadmin manages configuration settings of the Server for NFS and Client for NFS components.
- Nfsshare configura los ajustes de compartición NFS para carpetas que se comparten a través de Server for NFS.
- Nfsstat muestra o reinicia las estadísticas de las llamadas recibidas por Server for NFS.
- Showmount lista los sistemas de archivos que han sido exportados por Server for NFS.
Compartir en
Aprende más
Acerca del autor
Joe Dibley
Investigador de seguridad
Investigador de seguridad en Netwrix y miembro del Equipo de Investigación de Seguridad de Netwrix. Joe es un experto en Active Directory, Windows y una amplia variedad de plataformas y tecnologías de software empresarial, Joe investiga nuevos riesgos de seguridad, técnicas de ataque complejas y las mitigaciones y detecciones asociadas.