Convierte tu PC en un servidor FTP local con IIS: guía completa

Última actualización: 13/08/2025
Autor: Isaac
  • IIS incorpora FTP/FTPS con autenticación, aislamiento y control fino de conexiones.
  • Seguridad integral: FTPS, firewall pasivo, filtrado, límites de login y permisos NTFS.
  • Operación y auditoría: directorios virtuales, logging W3C y mensajes personalizados.

Servidor FTP local con IIS

Convertir tu PC en un servidor FTP local con IIS es una forma rápida y potente de compartir archivos dentro de tu red (y, si te interesa, también hacia Internet con seguridad). IIS incorpora un servicio FTP maduro, con soporte para autenticación básica, aislamiento de usuarios, FTPS (SSL/TLS), registro avanzado y multitud de ajustes finos para conexiones, filtrado y mensajes.

En esta guía vas a encontrar un recorrido completo que integra lo mejor de varios enfoques publicados por Microsoft y expertos: instalación del rol, creación del sitio, configuración de seguridad y firewall, parámetros por defecto del servicio, aislamiento, filtrado de solicitudes, registro, mensajes al usuario, pruebas desde consola/Explorador, e incluso cómo crear el sitio editando el archivo ApplicationHost.config. También verás *alternativas* y notas prácticas de permisos NTFS para que todo funcione como la seda.

Requisitos, compatibilidad y conceptos que conviene tener claros

IIS 8 en Windows Server 2012 y Windows 8 ya incluye el servidor FTP y es muy sencillo de activar. En entornos anteriores (IIS 7.0/7.5 en Windows Server 2008/2008 R2 y Windows 7) el servicio FTP se distribuyó como característica (7.5 integrada en 7.5; para 7.0 se descargaba aparte), pero la operativa de configuración es muy similar.

Equipo compatible (según la documentación de Microsoft y guías prácticas): Windows Server 2012 y Windows 8 para IIS 8, y Windows Server 2008/2008 R2/Windows 7 para IIS 7.x con el módulo FTP correspondiente. Ten a mano permisos de administrador y, si vas a publicar hacia Internet, acceso al firewall/router.

Compatibilidad y requisitos IIS FTP

Paso 1. Instalar el servicio FTP en IIS

Windows Server 2012 (IIS 8)

  1. Abre Administrador del servidor desde Inicio y pulsa en «Agregar roles y características».
  2. Instalación basada en características o roles y «Seleccionar un servidor del grupo de servidores»; elige el servidor destino.
  3. Rol Servidor web (IIS) y expande «Servidor FTP» para marcar «Servidor FTP» y «Servicio FTP»; acepta las características requeridas.
  4. Avanza con Siguiente en «Seleccionar características» y confirma en «Confirmar selecciones de instalación», luego pulsa «Instalar».

Windows 8 (IIS 8)

  1. Panel de control → Programas → «Activar o desactivar las características de Windows».
  2. Internet Information Services → expande «Servidor FTP» y marca «Servidor FTP» y «Servicio FTP»; acepta y aplica.

Consejo práctico: en Server 2012, marca «Incluir herramientas de administrador (si es aplicable)» para que el sistema añada las consolas necesarias de una tacada.

Configurar un servidor FTP casero en Windows
Artículo relacionado:
Tutorial para configurar tu propio servidor FTP casero en Windows

Paso 2. Crear el sitio FTP en IIS

  1. Abre el Administrador de IIS y en el panel Conexiones, selecciona el nodo «Sitios».
  2. Acciones → Agregar sitio FTP. Dale un «Nombre del sitio FTP» descriptivo y elige la «Ruta de acceso física» (por ejemplo, %SystemDrive%\inetpub\ftproot o C:\FTP si vas a separar el contenido).
  3. Enlaces y SSL: selecciona «Dirección IP» (puedes dejar «Todas las no asignadas» o especificar la IP), «Puerto» (21 por defecto) y opcionalmente «Host virtual» si planeas varios FTP en la misma IP.
  4. SSL: si ya tienes certificado, selecciónalo y decide «Permitir SSL» (mixto) o «Requerir SSL» (FTPS obligatorio). Si no, déjalo «No seleccionado» temporalmente y vuelve a esta pantalla tras crear el certificado.
  5. Autenticación: marca «Básica» para credenciales de usuarios del sistema/AD y «Anónima» solo si quieres un área pública (ojo: envía contraseñas en claro si no usas FTPS).
  6. Autorización: «Permitir el acceso a» → «Todos los usuarios», «Usuarios anónimos», «Roles o grupos de usuarios especificados» o «Usuarios especificados». Marca permisos «Lectura» y, si procede, «Escritura».
  7. Finalizar y, si lo prefieres, desmarca «Iniciar sitio FTP automáticamente» para arrancarlo tú a mano después de afinar la seguridad.
  Guía definitiva para instalar y configurar Vagrant en Hyper-V en Windows

Nota de Microsoft IIS 7.x: en sus ejemplos crean «Mi nuevo sitio FTP», lo encajan a 127.0.0.1:21, permiten SSL y dan lectura anónima. Luego habilitan autenticación básica y una regla de autorización para el usuario «administrador» con lectura y escritura. El patrón funciona igual en IIS 8.

Paso 3. Ajustes globales y valores predeterminados del servicio FTP

Los valores predeterminados del sitio FTP aplican a nuevos sitios. En IIS, «Valores predeterminados del sitio FTP» te dejan cambiar opciones que conviene conocer:

  • General: «Permitir UTF-8» (true por defecto) y «Iniciar automáticamente» (arranque del sitio al crear o cuando arranca el servicio).
  • Conexiones: «Controlar el tiempo de espera del canal», «Tiempo de espera del canal de datos», «Deshabilitar cola de socket», «Conexiones máximas», «Restablecer en el máximo de conexiones», «Registro de escucha del servidor» y «Tiempo de espera sin autenticar».
  • Caché de credenciales: «Habilitado» y «Flush Interval» (segundos que se mantienen en caché).
  • Control de archivos: «Permitir leer archivos al cargarlos», «Permitir reemplazar al cambiar de nombre» y «Mantener cargas parciales».

Truco: si esperas muchos clientes o transferencias largas, sube los timeouts y ajusta «Conexiones máximas». Para sitios por IP distinta, «Deshabilitar cola de socket» evita colas compartidas.

Paso 4. Compatibilidad con firewall y modo pasivo

FTP usa un canal de control (21) y canales de datos; en modo pasivo, el servidor abre puertos adicionales. Hay dos tareas: configurar en IIS el rango pasivo y, por otro lado, abrir esos puertos en el firewall de Windows y, si procede, en el borde/ISP.

  1. IIS → Compatibilidad con el firewall de FTP: define «Intervalo de puertos del canal de datos» (ej. 5000-6000 o 0-0 para efímeros) y «Dirección IP externa del firewall».
  2. Firewall de Windows con seguridad avanzada: crea reglas entrantes predefinidas de «Servidor FTP», permite la conexión y verifica que el puerto 21 y el rango pasivo están abiertos. Reinicia el servicio si lo pide.

Si publicas hacia Internet, además de las reglas locales, reenvía el puerto 21 y el rango pasivo en tu router/firewall perimetral hacia la IP del servidor IIS.

Firewall para FTP en IIS

Paso 5. Aislamiento de usuarios FTP

El aislamiento de usuarios evita que un usuario navegue fuera de su propia raíz. Las opciones principales en «Aislamiento de usuario FTP» son:

  • No aislar usuarios: todas las sesiones empiezan en el directorio raíz del sitio FTP. Opcionalmente, «Directorio de nombres de usuario» (si existe carpeta igual al usuario, entra ahí; si no, raíz).
  • Aislar a los usuarios:
    • Directorio de nombres de usuario (deshabilitar directorios virtuales globales): encierra al usuario en su carpeta (física/virtual) con su nombre.
    • Directorio físico de nombres de usuario (habilitar directorios virtuales globales): similar, pero los directorios virtuales globales también se aplican.
    • Directorio particular de FTP en Active Directory: usa el home configurado en AD para cada cuenta.
    • Personalizado: para proveedores a medida (escenarios avanzados).

Configuración: abre «Aislamiento de usuario FTP», elige el modo, y si usas AD, establece credenciales de acceso a AD desde el botón «Establecer». Aplica los cambios.

Añadir accesos a ubicaciones de red o servidores en Este Equipo de WIndows-0
Artículo relacionado:
Cómo añadir accesos a ubicaciones de red o servidores en ‘Este Equipo’ de Windows

Paso 6. Opciones de exploración de directorios

Exploración de directorios FTP controla el formato del listado que ven los clientes al navegar:

  • Estilo de lista: MS-DOS o UNIX.
  • Opciones: mostrar directorios virtuales, bytes disponibles y años de cuatro dígitos.
  Cómo apagar correctamente tu ordenador para evitar errores

Ajusta la compatibilidad con el cliente que uses (por ejemplo, algunos scripts esperan formato UNIX) y aplica en el nivel de sitio o servidor.

Paso 7. Restringir intentos de inicio de sesión

Para mitigar ataques de fuerza bruta, «Restricciones de intentos de inicio de sesión en FTP» permite fijar:

  • Número máximo de intentos (por defecto 4) y período de tiempo (por defecto 30 s).
  • Acción: denegar IP automáticamente o solo registrar.

Recomendación: activa la restricción para todos los sitios en producción y monitoriza los eventos en el visor de registros FTP.

Paso 8. Filtrado de solicitudes FTP

El filtrado de solicitudes FTP es una capa de seguridad para limitar el protocolo y acceso:

  • Extensiones de nombre de archivo: permitir/denegar.
  • Segmentos ocultos: denegar rutas (p. ej., nombres de carpetas sensibles).
  • Secuencias de URL denegadas: bloquea patrones en rutas.
  • Comandos: permitir/denegar comandos FTP específicos (avanzado; úsalo con cautela o puedes dejar el servidor inaccesible).

Personaliza por sitio en función del riesgo (por ejemplo, deniega DELE si no quieres borrados).

Paso 9. Registro (logging) de FTP

El registro FTP es clave para auditoría y diagnóstico. Opciones:

  • Un archivo de registro por: Sitio o Servidor.
  • Campos W3C: selecciona qué información guardar.
  • Directorio de logs: ruta base y codificación (UTF8/ANSI).
  • Conversión de archivos: rotación por tiempo (hora/día/semana/mes), por tamaño máximo o sin rotación.
  • Hora local para nombres de archivo y rotación.

Consejo: rota diario o por tamaño y centraliza los logs para análisis.

Cómo usar tu Android antiguo como un servidor multimedia doméstico
Artículo relacionado:
Cómo convertir tu antiguo Android en un potente servidor multimedia doméstico

Paso 10. Mensajes y banner de FTP

Los mensajes FTP permiten mostrar textos al conectar, dar la bienvenida, al salir o cuando se alcance el máximo de conexiones. Comportamientos:

  • Suprimir banner predeterminado.
  • Variables de usuario en mensajes: %BytesReceived%, %BytesSent%, %SessionID%, %SiteName%, %UserName%.
  • Mensajes detallados para solicitudes locales.

Personaliza los textos de Banner, Bienvenida, Salir y Conexiones máximas para dar contexto y normas de uso.

Usuarios, grupos y permisos NTFS para el home de FTP

Separa el contenido y aplica el principio de mínimo privilegio. Un flujo típico:

  1. Crea un usuario específico (o varios) y, si procede, un grupo para gestionar permisos comunes. En Windows, abre la administración de usuarios y crea el usuario con contraseña (puedes marcar que no caduque si es de servicio).
  2. Crea la carpeta del FTP (ej., C:\\FTP) y abre sus «Propiedades → Seguridad → Opciones avanzadas».
  3. Deshabilita la herencia y «Convierte los permisos heredados en permisos explícitos en este objeto».
  4. Elimina entradas innecesarias (por ejemplo, «Usuarios» de la máquina si no deben acceder).
  5. Agrega el usuario/grupo de FTP y concédele «Control total» sobre la carpeta para leer/escribir/borrar sin errores.

Asocia la ruta al crear el sitio en IIS y limita la autorización en el asistente a esos usuarios/grupos con los permisos necesarios.

Directorios virtuales FTP

Un directorio virtual mapea una ruta física a un alias dentro del FTP. Por ejemplo, un alias «dir2» que apunta a C:\\ftp\\directorio2. El usuario puede hacer cd dir2 y acceder a su contenido sin exponer la ruta real.

  Cuota de mercado actual de Windows, macOS y Linux: análisis y tendencias

Usos típicos: consolidar carpetas dispersas bajo una misma raíz FTP o compartir subcarpetas específicas a varios usuarios cuando usas aislamiento con directorios virtuales globales.

Certificados y FTPS (SSL/TLS) en IIS

Para proteger credenciales y datos, activa FTPS. Pasos básicos:

  1. Crear certificado: en IIS (nivel servidor), «Certificados de servidor» → «Crear certificado autofirmado». Pon un nombre y guárdalo (almacén Personal). Alternativamente, usa una CA o genera con PowerShell (ej.: New-SelfSignedCertificate -FriendlyName "FTP Server" -CertStoreLocation cert:\\LocalMachine\\My -DnsName ftp.midominio.com).
  2. Vincularlo al sitio FTP: entra en «Configuración FTP SSL», selecciona el certificado y elige «Requerir SSL» (o «Permitir SSL» si mantienes compatibilidad no cifrada en LAN).
  3. Cliente: usa «FTP con cifrado TLS/SSL explícito» (puerto 21) en clientes como WinSCP o FileZilla.

Aclaración importante: SFTP (sobre SSH) no es lo mismo que FTPS; IIS implementa FTPS. Si un cliente habla exclusivamente SFTP, no funcionará con IIS.

Pruebas desde consola y Explorador

Primera comprobación local (CMD):

  1. Conéctate con ftp localhost. Para pruebas públicas, usa «anónimo» y tu correo; para pruebas privadas, «administrador» o el usuario que creaste.
  2. Sube un archivo con put archivo.extensión; activa hash para ver el progreso si tu cliente lo soporta.

Alternativa rápida: abre el Explorador de archivos y escribe ftp://IP_del_Servidor en la barra de direcciones; introduce credenciales cuando te las pida y valida que ves y manipulas el contenido según permisos.

Alternativa: servidor FTP de terceros (FileZilla Server)

Si prefieres un enfoque ajeno a IIS, FileZilla Server permite montar un FTP local con instalación asistida: instalas, entras a la consola, creas usuarios, asignas contraseñas y carpetas compartidas con permisos. Es útil en equipos de usuario, aunque para entornos Windows Server, IIS ofrece una integración y seguridad más afinadas con FTPS y las características descritas.

Creación del sitio FTP editando ApplicationHost.config

Además del asistente de IIS, puedes crear el sitio editando %SystemRoot%\\System32\\inetsrv\\config\\ApplicationHost.config con privilegios de administrador:

  • Duplica la entrada del «Default Web Site» dentro de <sites>, renómbrala a algo como «Default FTP Site», cambia el protocol a «ftp», el physicalPath a %SystemDrive%\\inetpub\\ftproot y el enlace a *:21:.
  • Agrega bajo el sitio una sección <ftpServer> con <security>: habilita anonymousAuthentication si quieres lectura anónima, basicAuthentication si deseas credenciales, y define la política SSL en «Allow» si no vas a requerirlo aún.
  • En una sección <location> específica del sitio, añade <system.ftpServer><security><authorization> con reglas: por ejemplo, permitir lectura a «*» y lectura/escritura a «administrator».

Guarda y recarga IIS; ya podrás conectarte con un cliente FTP a «localhost» y verificar tanto acceso anónimo (lectura) como autenticado (lectura/escritura) según tus reglas.

Con todo lo anterior, tienes un servidor FTP en IIS robusto, con FTPS, aislamiento de usuarios, reglas de firewall, filtrado, logging y mensajes personalizados; además, permisos NTFS ajustados, directorios virtuales para flexibilidad y un método alternativo de creación por archivo de configuración para automatizar despliegues.

Deja un comentario