Configurando el servicio FTP SSL sobre IIS 7.5 y Windows 2008 R2

La primera vez que intenté configurar un servidor FTP en una máquina con Windows 2008 R2 y su correspondiente servidor IIS 7.5, me resultó bastante tedioso y complicado dar con los pasos de instalación. Acostumbrado a la sencillez de instalar otros servidores FTP autónomos, como por ejemplo, un Filezilla Server, este resulta más complejo al integrarse dentro de IIS y compartir su ‘filosofía’.

Además, quería que la comunicación fuese segura, aprovechando un certificado SSL ya instalado en IIS y que toda la información viajase encriptada.

Los pasos que di y que finalmente resultaron satisfactorios fueron los que os comento a continuación. Si estás es una situación similar, espero que te sirva de ayuda.


  1. Suponemos la existencia de un certificado válido ya instalado en el servidor IIS. Si no lo tienes, busca en Internet cualquier artículo sobre cómo crear un ‘selfcert’, crea el certificado e instálalo. También suponemos que la máquina no pertenece a un dominio de Active Directory.
  2. Crea un usuario local abriendo la consola de ‘Administración del servidor’ y yendo a ‘Configuración’, ‘Usuarios y grupos locales’. Supondremos que el usuario creado es ‘ftp_User’.
  3. Por seguridad, saca a ‘ftp_User’ de cualquier grupo, incluido el de usuarios. Desactiva también el ‘Permiso de inicio de sesión mediante Escritorio remoto’ para el usuario en la pestaña ‘’Perfil de Servicios de Escritorio remoto’
  4. Crea una carpeta que será la raíz del servicio FTP, por ejemplo ‘D:\FTP’ y dale  permisos de control total sólo al Administrador del equipo, eliminando cualquier otro preexistente.
  5. Crea una subcarpeta dentro de la anterior denominada ‘Localuser’. No pongas otro nombre. Confirma que ha heredado los permisos de la anterior, esto es, control total para el Administrador y ningún permiso más.
  6. Crea  una subcarpeta dentro de la anterior, cuyo nombre coincida exactamente con el del usuario creado anteriormente. Añade permisos de control total a ese usuario en esta carpeta.
  7. Resumiendo, la estructura de carpetas es, hasta el momento:D:\FTP\Localuser\ftp_UserCon permisos totales sólo para el Administrador en ’D:\FTP’ y ‘D:\FTP\Localuser’ y añadiendo permisos totales para ‘ftp_User’ en ‘D:\FTP\Localuser\ftp_User’
  8. Inicia la consola del Administrador de IIS
  9. Localiza la carpeta raíz (coincide con el nombre de tu servidor) y haz clic ahí.
  10. Dentro de la sección ‘FTP’ verifica estas configuraciones:
    – Aislamiento de usuario FTP: Directorio físico de nombres de usuario
    – Autenticación FTP: Autenticación básica habilitada
    – Compatibilidad con el firewall de FTP: sin tocar
    – Configuración SSL de FTP: Seleccionar el certificado y requerir conexiones SSL
    – Examen de directorios FTP: Sin tocar
    – Filtrado de solicitudes FTP: Sin tocar
    – Mensajes FTP: Sin tocar
    – Registro FTP: Sin tocar
    – Reglas de Autorización de FTP: Sin tocar
    – Restricciones de direccionamiento IPv4 y dominios de FTP: Sin tocar
  11. Justo debajo de la raíz, despliega y haz clic en ‘Grupos de aplicaciones’. Botón derecho y ‘Agregar grupo de aplicaciones’. Escribe
    Nombre: por ejemplo, el mismo que el usuario ‘ftp_User’
    Versión de .NET: elige ‘Sin código administrado’
    Canalización: integrada
    Iniciar grupo: Marcar
  12. Haz clic en el grupo recién creado y luego clic en la parte derecha de la pantalla, opción ‘Configuración avanzada’ y revisa
    Cargar perfil de usuario: False
    Identidad: cambia a ‘ftp_User’
  13. Haz clic sobre la carpeta ‘Sitios’, botón derecho y ‘Agregar sitio FTP…’
    Nombre del sitio FTP: el del usuario creado, por coherencia, no por otra cosa, ‘ftp_User’
    Ruta de acceso física: Sólo ‘D:\FTP’, no toda la ruta creada anteriormente
    Enlace Dirección IP: Todas las no asignadas
    Puerto: 21
    Habilitar nombres de host virtuales: marcar y escribir un nombre que identifique al usuario, por ejemplo, su dominio, ‘user.com’ o el que sea. No tiene relación con DNS ni debe resolver a una IP ni nada por el estilo. Es un mero nombre. Podríamos colocar ‘ftp_User’ pero usarlo en tantas partes parece que complica las cosas.
    SSL: Requerir y elegir el certificado.
    Autenticación 
    Básica: marcar
    Permitir el acceso a: Usuarios específicos y escribir ‘ftp_User’
    Permisos: marcar Leer y Escribir
  14. Revisa en la sección FTP del sitio recién creado. Las opciones habrán heredado la configuración que hicimos en la raíz del servidor IIS anteriormente. Cambia si quieres la sección ‘Mensajes de FTP’ para que muestren textos en relación al usuario.
  15. Con esto, la configuración del servidor esta LISTA.
  16. Ahora prueba la conexión desde otro PC con un cliente FTP como, por ejemplo Filezilla, indicando en los parámetros de conexión que ésta requiere cifrado explícito sobre TLS.
  17. En el cliente FTP, como usuario, debes usar el nombre de host virtual que has escrito en el paso 13 junto con el del usuario creado en el paso 1, separados por una barra vertical ‘|’.
    Ejemplo: user.com|ftp_User.
  18. En la primera conexión, deberás confiar en el certificado. 
  19. En caso de problemas, asegúrate que no hay reglas de firewall (en el router o en windows) que bloqueen los puertos vinculados con el servicio FTP.

Suerte!

Leave a Reply