Qué es FTP y cómo funciona (puertos, control/datos)
FTP es un protocolo cliente-servidor para transferir archivos en redes TCP/IP. La sesión usa dos canales: uno de control (comandos/respuestas) que normalmente va por 21/TCP, y otro de datos para la transferencia de ficheros. Históricamente, el canal de datos en modo activo sale del 20/TCP del servidor hacia un puerto efímero del cliente. El diseño original no cifra nada: ni credenciales ni datos; por eso hoy es habitual recurrir a FTPS o SFTP para añadir cifrado.
Ideas clave
- Dos canales: control (21/TCP) + datos.
- FTP clásico viaja en texto plano; FTPS/SFTP añaden cifrado.
Modo activo vs pasivo: cuál elegir y cómo configurarlo
- Activo: el cliente abre el control al 21/TCP y, cuando hay que transferir, el servidor inicia la conexión de datos desde 20/TCP hacia un puerto efímero del cliente. Suele chocar con firewalls del lado cliente.
- Pasivo (recomendado hoy): el cliente inicia ambas conexiones. El servidor “presta” un puerto alto (mayor a 1023) para datos y el cliente conecta hacia él. Funciona mejor tras NAT/firewalls, pero exige abrir un rango de puertos pasivos en el servidor.
Checklist pasivo seguro
- Define un rango corto de puertos pasivos en el servidor y ábrelo en el firewall.
- Si publicas en Internet, asegúrate de conocer la IP externa del servidor/NAT.
Tipos de acceso: anónimo vs usuarios con cuenta
- Anónimo: login “anonymous”; normalmente solo lectura en carpetas públicas. En IIS, el acceso anónimo usa la cuenta IUSR y necesita permisos NTFS de lectura sobre la carpeta publicada.
- Autenticado: usa cuentas de Windows (locales o de dominio). Recomendado para entornos privados: controlas qué puede hacer cada usuario.
Nota útil: si varios usuarios comparten servidor, activa el aislamiento de usuarios para que cada uno aterrice en su carpeta y no vea la de otros.
Instalar IIS/FTP en Windows 10/11 y Windows Server
- Windows 10/11: Panel de control → Activar o desactivar características → Internet Information Services → Servidor FTP (+ consola de administración). Alternativamente, Configuración → Características opcionales → “Servidor FTP”.
- Windows Server: Administrador del servidor → Agregar roles → Servidor Web (IIS) → Servidor FTP. Incluye las herramientas de administración para configurar.
Tras instalar el rol, aún no existe ningún sitio FTP: hay que crearlo en IIS.
Crear y configurar tu primer sitio FTP (binding, SSL, auth)
- IIS Manager → Sitios → Agregar sitio FTP…. Elige nombre y la carpeta raíz (por ejemplo,
C:\FTP\DatosoC:\inetpub\ftproot). - Enlace (binding): IP (o “Todas”), puerto 21, host opcional. Decide SSL/TLS: para pruebas, Permitir SSL; en producción, Requerir SSL con un certificado válido (FTPS).
- Autenticación: desactiva Anónima si quieres acceso solo con cuentas; activa Básica. Autorización: “Usuarios especificados” o “Todos los usuarios (autenticados)” con Lectura y/o Escritura según necesites.
FTPS en IIS requiere instalar un certificado y habilitar SSL (permitir o requerir). Los clientes usarán
AUTH TLS(FTP explícito) oftps://.
Usuarios, permisos NTFS y aislamiento: seguridad por mínimo privilegio
Crea cuentas locales dedicadas (p. ej., ftpusuario1) o un grupo (ftpusers). Otorga solo los permisos NTFS necesarios sobre la carpeta raíz y ajusta las reglas de autorización del sitio FTP en IIS en consecuencia (lectura/escritura). Si habilitas anónimo, recuerda la cuenta IUSR con lectura. Considera aislamiento de usuarios si cada persona debe ver solo su espacio.
Patrón recomendado
- Raíz
C:\FTP\Datos(solo lectura global). - Subcarpeta
uploadcon escritura para usuarios/grupos concretos. - Evita Control total salvo administración.
Pruebas y diagnóstico: ftp.exe, Explorador y clientes GUI
Desde el servidor
- CLI:
ftp 127.0.0.1→ login →dir,get archivo,put archivo. Verifica banner, login y transferencias. - Explorador:
ftp://localhost/oftp://usuario:contraseña@localhost/. En red,ftp://IP-del-servidor/. Para subir con comodidad, añade la ubicación de red. - GUI: FileZilla/WinSCP → IP, 21, modo pasivo recomendado → prueba subida/descarga.
Si falla
- Revisa Firewall de Windows (regla del servidor FTP/puerto 21).
- Para Internet, configura NAT/port-forwarding (21 y rango pasivo).
Cuotas, límites y logs: control de uso y auditoría
- Permisos finos: combina NTFS (acceso real al disco) + reglas FTP (lo que el servicio permite).
- Cuotas: NTFS por usuario o FSRM para políticas avanzadas por carpeta.
- Límites: conexiones simultáneas, timeouts, e incluso ancho de banda en algunos servidores.
- Logs: IIS registra conexiones y transferencias en
C:\inetpub\logs\LogFiles\. Úsalos para detectar errores/abusos.
ASCII vs Binario: evitar corrupciones de archivo
- ASCII: solo para texto; convierte finales de línea entre sistemas. Úsalo mal en binarios y corromperás el archivo.
- Binario: byte a byte para todo lo no textual (PDF, imágenes, ZIP, DOCX…). Es la opción segura por defecto; muchos clientes ya la aplican o tienen “auto”.
FTPS (implícito/explícito) y SFTP: asegurar tus transferencias
- FTPS implícito: escucha por convención en 990/TCP; siempre cifrado. Está en desuso, pero aún soportado.
- FTPS explícito (FTPES): el cliente negocia AUTH TLS sobre 21/TCP. Recomendado si necesitas compatibilidad FTP con cifrado. En IIS, instala certificado y requiere SSL si tu política lo demanda.
- SFTP: no es FTP; va sobre SSH (22/TCP), una sola conexión, buen paso por firewalls. En Windows se puede habilitar OpenSSH Server o usar software de terceros.
Conclusión
Con IIS en Windows puedes desplegar un servidor FTP en minutos y dejarlo listo para producción si combinas: modo pasivo bien acotado, cuentas/NTFS por mínimo privilegio, FTPS o SFTP según el caso, y logs/cuotas para control. Con los checks de prueba (CLI, Explorador, GUI) tendrás trazabilidad y diagnósticos rápidos.
FAQs
¿Qué puertos usa FTP?
21/TCP para control y, en activo, 20/TCP para datos; en pasivo, un puerto alto que define el servidor.
¿Activo o pasivo?
Pasivo suele funcionar mejor tras NAT/firewalls; define un rango corto y ábrelo en el firewall del servidor.
¿Cómo pruebo rápido?ftp 127.0.0.1, dir, get, put; o ftp://localhost/ en Explorador; o FileZilla con modo pasivo.
¿FTPS o SFTP?
FTPS añade TLS a FTP (implícito 990, explícito AUTH TLS en 21). SFTP es SSH (22), una sola conexión. Elige según tu ecosistema.


