IIS FTP: Solución al error intermitente “User cannot log in, home directory inaccessible” en Windows Server 2016 con Active Directory

¿Tu servidor Windows Server 2016 con IIS FTP acepta inicios de sesión por horas y, sin tocar nada, todos los usuarios empiezan a fallar con “User cannot log in, home directory inaccessible”? Aquí tienes un método probado para diagnosticar y corregir el problema, evitando reinicios completos.

Índice

Resumen del escenario y del error

Entorno típico: IIS FTP en Windows Server 2016 Datacenter, autenticación contra Active Directory, acceso restringido a un grupo de AD y aislamiento de usuarios basado en atributos de AD. El servicio funciona un tiempo y, de forma intermitente, todos los usuarios dejan de autenticarse con el error 530: “User cannot log in, home directory inaccessible”. Reiniciar IIS/FTP no ayuda; solo reiniciar el servidor recupera temporalmente el acceso.

Por qué sucede: patrones de ruptura más comunes

En la mayoría de incidentes con este patrón “funciona → 24 h → deja de funcionar”, hay un elemento que expira, rota o pierde su canal seguro. Los sospechosos habituales son:

Cuenta de servicio o credenciales (AD y/o UNC)

  • El aislamiento por Active Directory utiliza una cuenta de lectura para consultar atributos como msIIS-FTPDir y msIIS-FTPRoot. Si la contraseña caduca, la cuenta se bloquea o pierde el derecho de lectura, el FTP no puede resolver la ruta home.
  • Si las home están en UNC/DFS (por ejemplo, \\filesrv\home\usuario) y el sitio usa Pass-through o Conectar como… mal configurado, las sesiones SMB expiran, la delegación Kerberos falla (doble salto) o el FTP pierde acceso intermitente al recurso.

Replicación o selección de Controlador de Dominio (DC)

El servidor puede alternar a un DC con replicación incompleta o con permisos inconsistentes. Resultado: la consulta de atributos msIIS-FTPDir/msIIS-FTPRoot devuelve vacío o rutas incorrectas, bloqueando el login.

Permisos NTFS/Share o rutas no disponibles

Herencias cambiadas, destinos DFS desincronizados o fuera de línea, o permisos Share más restrictivos que NTFS provocan denegaciones que desembocan en “home directory inaccessible”.

Hora/Kerberos y canal seguro Netlogon

Un desfase horario rompe Kerberos. Un canal seguro (Secure Channel) deteriorado entre el servidor y el dominio causa fallos de autenticación o lectura de AD que, de forma engañosa, “se curan” tras reiniciar la máquina.

Cómo confirmarlo rápido: señales en logs

IndicioProbable causaQué verificar
FTP 530 con home directory inaccessibleAtributos AD no legibles o ruta UNC sin accesoLectura de msIIS-FTPDir/msIIS-FTPRoot y permisos NTFS/Share
Eventos 4768/4771 en Seguridad (Kerberos)Desfase horario, SPN o delegaciónNTP correcto, SPN CIFS del file server, KCD si hay “doble salto”
Eventos de Netlogon o Secure ChannelCanal seguro rotonltest /sc_verify, reinicio de Netlogon
Errores SMB en el servidor de archivosShare o NTFS insuficienteOpen Files/SMB Server, auditoría, denegaciones

Solución recomendada paso a paso (evita reiniciar el servidor)

Estabiliza las cuentas de servicio

  • Crea una cuenta dedicada de solo lectura en AD para el modo “Active Directory user isolation”. Concédele lectura a los atributos msIIS-FTPDir y msIIS-FTPRoot. Marca Password never expires.
  • Si la raíz/home está en UNC, en el sitio FTP (o en la raíz/VD correspondiente) usa “Conectar como…” con una cuenta de servicio que tenga permisos NTFS/Share mínimos en el recurso. Evita Pass-through si no tienes configurada la delegación Kerberos (KCD).
# Ejemplo: configurar aislamiento AD con appcmd
%windir%\system32\inetsrv\appcmd.exe set config "FTPSitio" ^
  /section:system.ftpServer/userIsolation ^
  /mode:"ActiveDirectory" /adUserName:"DOM\svcftpad" /adPassword:""

Establecer credenciales para acceder a \\filesrv\home desde la raíz del sitio
IIS Manager → Sitio FTP → Configuración básica → Conectar como… (DOM\svcftpdata)

Si usas UNC/DFS para los directorios home

  • Opción preferida: “Conectar como…” con la cuenta de servicio mencionada. Esto elimina el doble salto y estabiliza SMB.
  • Si debes usar Pass-through: configura Delegación Kerberos (KCD) en la cuenta del servidor FTP (o en la identidad que use) hacia el servicio CIFS del servidor de archivos. Asegúrate de que los SPN del file server (cifs/filesrv, cifs/filesrv.dominio.local) están correctos.
# Comprobar SPN del servidor de archivos
setspn -L FILESRV

(Si usas identidad de dominio para el servicio FTP) validar SPN de la identidad frontal
setspn -L DOM\svcftpfront

Delegación: en AD Users & Computers → Cuenta del FTP server/servicio →
"Trust this computer/account for delegation to specified services only" →
Añadir CIFS del FILESRV

Valida atributos y permisos en Active Directory

  • Verifica que todos los usuarios que deben iniciar sesión tienen poblados msIIS-FTPDir (y msIIS-FTPRoot si aplica) apuntando a una ruta válida (local o UNC).
  • Confirma que la cuenta de consulta puede leer esos atributos en todos los DCs.
# Revisar atributos de un usuario (desde un equipo con RSAT)
Get-ADUser usuario1 -Properties msIIS-FTPDir,msIIS-FTPRoot |
  Select-Object SamAccountName, msIIS-FTPDir, msIIS-FTPRoot

Comprobar que el valor es una ruta válida (p.ej. \\filesrv\home\usuario1)

Comprueba salud de AD, replicación y hora

# Resumen de replicación
repadmin /replsummary

Ver el DC preferido/actual y su disponibilidad

nltest /dsgetdc\:DOMINIO.LOCAL
dcdiag /test\:Advertising

Validar canal seguro (Secure Channel)

nltest /sc\_verify\:DOMINIO.LOCAL
Test-ComputerSecureChannel -Verbose

NTP

w32tm /query /status
w32tm /query /source
w32tm /resync 

Registra, traza y aísla la causa

  • Activa el log Microsoft-Windows-IIS-FTP Service/Operational (Visor de eventos → Registros de aplicaciones y servicios → Microsoft → Windows → IIS-FTP Service → Operational).
  • Habilita Failed Request Tracing (FREB) en el sitio y filtra por estado 530. Verás el detalle del fallo y, a menudo, el motivo home directory inaccessible con código Win32.
  • En el servidor de archivos, revisa Open Files/SMB y auditoría de denegaciones.
  • En Seguridad, observa 4625 (NTLM fallido), 4768/4771 (Kerberos TGT/PA fallidos), 4769 (TGS).

Prueba A/B para acotar origen

Temporalmente cambia el aislamiento a “User name directory” con ruta local (p.ej., D:\FTP\%UserName%).

  • Si el fallo desaparece, el problema está en AD/UNC/Delegación.
  • Si persiste, investiga permisos locales, antivirus o la propia configuración del sitio FTP.

Acciones de mitigación sin reinicio completo

Si el incidente se reproduce, prueba estas acciones controladas. Suelen recuperar el servicio cuando la causa es Netlogon/SMB/Kerberos:

# 1) Renovar credenciales y sesiones de red del proceso
klist purge
nltest /sc_verify:DOMINIO.LOCAL

2) Reiniciar Netlogon (reestablece el canal seguro)

net stop netlogon && net start netlogon

3) Reiniciar el cliente SMB del servidor FTP

net stop lanmanworkstation && net start lanmanworkstation
net use \* /delete /y

4) Reiniciar únicamente el servicio FTP

Restart-Service -Name ftpsvc -Force 

Importante: estas acciones son menos disruptivas que un reinicio completo y, bien coordinadas, apenas cortan sesiones activas durante unos segundos.

Tabla de mapeo de errores frecuentes

FTP/EstadoWin32 (logs FTP)Interpretación prácticaAcción sugerida
530 Not logged in5 (Access is denied)Permiso NTFS/Share insuficienteRevisar ACL NTFS/Share y “Conectar como…”
530 Not logged in53 (Network path not found)Ruta UNC inválida o DNS/DFSValidar existencia/DFS y resolución de nombres
530 Not logged in64 (Network name deleted)Sesión SMB caída, recurso intermitenteReiniciar Workstation, revisar SMB/DFS
530 Not logged in1326 (Logon failure)Credenciales erróneas/expiradasActualizar cuenta de servicio/AD query
530 Not logged in86 (Wrong password)Contraseña de “Conectar como…” cambiadaActualizar secreto almacenado en IIS

Checklist de corrección definitiva

  • La cuenta de consulta a AD existe, no caduca, no está bloqueada y puede leer msIIS-FTPDir/msIIS-FTPRoot.
  • Si la raíz/home es UNC, el sitio usa “Conectar como…” con cuenta de servicio (o KCD correctamente configurado para Pass-through).
  • Permisos NTFS/Share coherentes en todas las rutas (y destinos DFS con la misma ACL).
  • Los atributos de AD están poblados y replicados en todos los DCs.
  • Hora NTP correcta en FTP server y DCs; canal seguro Netlogon verificado.
  • FTP Operational log y FREB activados con filtro 530, confirmando causa raíz.

Guía práctica de permisos mínimos

ObjetoPermisos mínimosNotas
Carpeta raíz del sitio (local)Lectura para el proceso FTPEvita escribir si no es necesario
Compartido \\filesrv\homeShare: “Change” o “Read” según necesidadACL de Share no más restrictiva que NTFS
Carpeta de cada usuarioNTFS: Usuario (Modify/Read), Servicio (Read)Habilita “Traverse folder/execute file”

Verificaciones de línea de comandos útiles

# Probar acceso a la ruta UNC con la cuenta de servicio (desde un CMD elevado)
runas /user:DOM\svcftpdata cmd
dir \\filesrv\home\usuario1

Limpiar y reestablecer sesión SMB (solo en el FTP server)

net use \* /delete /y
dir \filesrv\home  & rem Fuerza reconexión

Confirmar que el sitio FTP está usando el modo de aislamiento AD esperado

%windir%\system32\inetsrv\appcmd.exe list config "FTPSitio" /section\:system.ftpServer/userIsolation 

Buenas prácticas para producción

  • Estándar de cuentas de servicio: evita cuentas personales; usa cuentas dedicadas con contraseña controlada por TI. Documenta quién, dónde y para qué.
  • Rotación segura de secretos: cuando cambies la contraseña de Conectar como… o de la cuenta AD de consulta, actualiza inmediatamente IIS para evitar tokens caducados.
  • Topología DFS simple: intenta que las homes tengan un único target por site o alinea permisos en todos los targets para evitar sorpresas al conmutar.
  • Supervisión proactiva: alerta en eventos 530 del FTP, 4768/4771 de Seguridad, y en indisponibilidad de \\filesrv.
  • FTPS obligatorio: habilita TLS para proteger credenciales y datos (recomendación de seguridad).

Preguntas frecuentes

¿Por qué tras reiniciar el servidor “se arregla” por unas horas?

El reinicio renueva credenciales, sesiones SMB y el canal seguro. Si la causa raíz es expiración de tickets, bloqueo de cuenta o canal Netlogon roto, el problema reaparece cuando vuelven a caducar/romperse esos elementos. Por eso conviene reiniciar servicios específicos (Netlogon/Workstation) o corregir la raíz (credenciales/permiso/tiempo).

¿Puedo usar Pass-through sin KCD?

Funcionar, puede, pero en cuanto el servicio necesite acceder a \\UNC con las credenciales del usuario, sin delegación Kerberos caerás en el problema del doble salto. Lo más estable es “Conectar como…” con una cuenta de servicio dedicada; si debes Pass-through, configura KCD.

¿Qué valores debería tener msIIS-FTPDir?

Una ruta válida local o UNC accesible por el FTP y por el usuario, por ejemplo \\filesrv\home\%UserName%. Evita rutas con letras de unidad asignadas por usuario (no existen en el contexto del servicio), y verifica que la cuenta de consulta puede leer el atributo en todos los DCs.

¿Por qué los usuarios ven “home directory inaccessible” si su contraseña es correcta?

Porque la autenticación puede superarse pero fallar la resolución/entrada a la home: permisos NTFS/Share, ruta DFS no disponible, atributo AD vacío o ilegible, o el FTP no puede hacer double-hop hasta \\UNC.

Plan de prueba y validación final

  1. Confirma que la cuenta de consulta de AD está operativa y con Password never expires.
  2. En el FTP, configura “Conectar como…” para el acceso UNC y valida con dir \\filesrv\home.
  3. Activa FREB filtrado 530, reproduce el fallo con un usuario de prueba.
  4. Si falla, revisa el código Win32 y cruza con la tabla de mapeo.
  5. Si apunta a autenticación, verifica hora/NTP, nltest /sc_verify, klist, y SPN/Delegación.
  6. Si apunta a permisos, ajusta Share/NTFS y herencias en todos los targets DFS.

Conclusión

El error intermitente “User cannot log in, home directory inaccessible” en IIS FTP suele tener causas repetibles: credenciales caducadas o bloqueadas, delegación Kerberos ausente/defectuosa para \\UNC, atributos de AD inconsistentes, o problemas de hora y canal seguro. Con una cuenta de servicio estable, acceso a UNC mediante “Conectar como…” (o KCD bien definido), permisos coherentes y verificación de AD/SMB/NTP, se elimina la necesidad de reiniciar la máquina y se obtiene un servicio FTP predecible y mantenible.

Lista de verificación rápida

  • Cuenta de consulta a AD: existente, sin caducidad ni bloqueos, con lectura de msIIS-FTPDir/msIIS-FTPRoot.
  • Si hay \\UNC: usar “Conectar como…” con cuenta de servicio o, alternativamente, KCD configurado para Pass-through.
  • Permisos NTFS/Share correctos (y destinos DFS coherentes).
  • Atributos AD presentes y replicados en todos los DCs.
  • Hora NTP alineada; canal Netlogon verificado.
  • FREB/Operational log activos para confirmar causa.

Nota de seguridad: habilita FTPS (TLS) para proteger credenciales y datos en tránsito.

Índice