Configuración de los valores de firewall de FTP en IIS 7
Compatibilidad
Versión | Notas |
---|---|
IIS 7.5 | El servicio FTP 7.5 se distribuye como una característica de IIS 7.5 en Windows 7 y Windows Server 2008 R2. |
IIS 7.0 | Los servicios FTP 7.0 y FTP 7.5 se enviaron fuera de banda para IIS 7.0, lo que requería descargar e instalar el servicio desde la siguiente dirección URL: https://www.iis.net/download/FTP. |
Introducción
Microsoft ha creado un nuevo servicio FTP que se ha reescrito completamente para Windows Server® 2008. Este servicio FTP actualizado incorpora muchas características nuevas que permiten a los autores web publicar contenido mejor que antes, y ofrece a los administradores web más opciones de seguridad e implementación.
Este documento le guía a través de la configuración del firewall para el nuevo servidor FTP.
Requisitos previos
Los siguientes elementos deben instalarse para completar los procedimientos de este artículo:
IIS 7 debe estar instalado en Windows Server 2008 y también se debe instalar Internet Information Services (IIS) Manager.
Nuevo servicio FTP. Puede descargar e instalar el servicio FTP desde el sitio web https://www.iis.net/ mediante uno de los vínculos siguientes:
- FTP 7.5 para IIS 7 (x64)
- FTP 7.5 para IIS 7 (x86)
Debe crear una carpeta raíz para la publicación de FTP:
Cree una carpeta en
%SystemDrive%\inetpub\ftproot
Establezca los permisos para permitir el acceso anónimo:
Abra un símbolo del sistema.
Escriba el siguiente comando:
ICACLS "%SystemDrive%\inetpub\ftproot" /Grant IUSR:R /T
Cierre el símbolo del sistema.
Notas importantes:
La configuración que se muestra en este tutorial especifica
%SystemDrive%\inetpub\ftproot
como la ruta de acceso al sitio FTP. No es necesario usar esta ruta de acceso. Sin embargo, si cambia la ubicación del sitio, tendrá que cambiar las rutas de acceso relacionadas con el sitio que se usan en este tutorial.Una vez que haya configurado las opciones de firewall para el servicio FTP, debe configurar el software o hardware del firewall para permitir las conexiones a través del firewall al servidor FTP.
- Si usa el Firewall de Windows integrado, consulte la sección (Opcional) Paso 3: Configurar el Firewall de Windows de este tutorial.
- Si usa un firewall diferente, consulte la documentación que se proporcionó con el hardware o el software del firewall.
Usar el Asistente para sitios FTP para crear un sitio FTP con autenticación anónima
En esta sección, creará un sitio FTP que se puede abrir con acceso de solo lectura por parte de usuarios anónimos. Para ello, siga estos pasos:
Vaya al Administrador de IIS 7. En el panel Conexiones, haga clic en el nodo Sitios del árbol.
Haga clic con el botón derecho en el nodo Sitios del árbol y haga clic en Agregar sitio FTP o en Agregar sitio FTP en el panel Acciones.
Cuando aparezca el asistente Agregar sitio FTP:
Escriba "Mi nuevo sitio FTP" en el cuadro Nombre del sitio FTP y vaya a la carpeta
%SystemDrive%\inetpub\ftproot
que creó en la sección Requisitos previos.Nota:
Si decide escribir la ruta de acceso a la carpeta de contenido, puede usar variables de entorno en las rutas de acceso.
Haga clic en Next.
En la página siguiente del asistente:
Elija una dirección IP para el sitio FTP en la lista desplegable Dirección IP o acepte la selección predeterminada de "Todo sin asignar". Dado que va a acceder a este sitio FTP de forma remota, quiere asegurarse de que no restringe el acceso al servidor local y escribe la dirección IP de bucle invertido local del equipo introduciendo "127.0.0.1" en el cuadro Dirección IP.
Normalmente, escribiría el puerto TCP/IP para el sitio FTP en el cuadro Puerto. Para este tutorial, acepte el puerto predeterminado de 21.
Para este tutorial, no se usa un nombre de host, por lo que debe asegurarse de que el cuadro Host virtual esté en blanco.
Asegúrese de que la lista desplegable Certificados esté establecida en "No seleccionado" y de que esté seleccionada la opción Permitir SSL.
Haga clic en Next.
En la página siguiente del asistente:
Seleccione Anónimo para la configuración de Autenticación.
Para la configuración de Autorización, elija "Usuarios anónimos" en la lista desplegable Permitir el acceso a. Seleccione Leer para la opción Permisos.
Haga clic en Finalizar
Vaya al Administrador de IIS 7. Haga clic en el nodo del sitio FTP que ha creado. Se muestran los iconos de todas las características de FTP.
Resumen
Para resumir los elementos que completó en este paso:
- Ha creado un nuevo sitio FTP denominado "Mi nuevo sitio FTP", con la raíz de contenido del sitio en
%SystemDrive%\inetpub\ftproot
. - El sitio FTP se enlaza a la dirección de bucle invertido local del equipo en el puerto 21 y elige no usar Capa de sockets seguros (SSL) para el sitio FTP.
- Ha creado una regla predeterminada para el sitio FTP para permitir que los usuarios anónimos tengan acceso de "Lectura" a los archivos.
Paso 1: Configurar el intervalo de puertos pasivo para el servicio FTP
En esta sección, configurará el intervalo de puertos de nivel de servidor para las conexiones pasivas al servicio FTP. Siga estos pasos:
Vaya al Administrador de IIS 7. En el panel Conexiones, haga clic en el nodo de nivel de servidor en el árbol.
Haga doble clic en el icono Compatibilidad con el firewall de FTP en la lista de características.
Especifique un intervalo de valores para el Intervalo de puerto del canal de datos.
Una vez que haya escrito el intervalo de puertos para el servicio FTP, haga clic en Aplicar en el panel Acciones para guardar los valores de configuración.
Notas
El intervalo válido para los puertos es de 1024 a 65535. (Los puertos de 1 a 1023 están reservados para su uso por parte de los servicios del sistema).
Puede especificar un intervalo de puertos especial de "0-0" para que el servidor FTP use el intervalo dinámico de puertos TCP/IP de Windows.
Para obtener más información, consulte los siguientes artículos de Microsoft Knowledge Base:
- 174904: Información sobre las asignaciones de puertos TCP/IP (
https://support.microsoft.com/kb/174904/
) - 929851: El intervalo predeterminado de puertos dinámicos para TCP/IP ha cambiado en Windows Vista y en Windows Server 2008
- 174904: Información sobre las asignaciones de puertos TCP/IP (
Este intervalo de puertos tendrá que agregarse a la configuración permitida para el servidor de firewall.
Después de realizar los cambios de configuración, reinicie el servicio FTP de Microsoft a través
Start
>>Run
services.msc
de y busque el servicio FTP.
Paso 2: Configurar la dirección IPv4 externa para un sitio FTP específico
En esta sección, configurará la dirección IPv4 externa para el sitio FTP específico que creó anteriormente. Siga estos pasos:
Vaya al Administrador de IIS 7. En el panel Conexiones, haga clic en el sitio FTP que creó anteriormente en el árbol, haga doble clic en el icono Compatibilidad con firewall FTP en la lista de características.
Escriba la dirección IPv4 de la dirección externa del servidor de firewall para la configuración Dirección IP externa del firewall.
Una vez que haya escrito la dirección IPv4 externa para el servidor de firewall, haga clic en Aplicar en el panel Acciones para guardar las opciones de configuración.
Resumen
Para resumir los elementos que completó en este paso:
- Ha configurado el intervalo de puertos pasivo para el servicio FTP.
- Ha configurado la dirección IPv4 externa para un sitio FTP específico.
(Opcional) Paso 3: Configurar las opciones del Firewall de Windows
Windows Server 2008 contiene un servicio de firewall integrado para ayudar a proteger el servidor frente a amenazas de red. Si decide usar el Firewall de Windows integrado, deberá configurar las opciones para que el tráfico FTP pueda pasar por el firewall.
Hay algunas configuraciones diferentes que se deben tener en cuenta al usar el servicio FTP con el Firewall de Windows: si va a usar conexiones FTP activas o pasivas y si va a usar FTP sin cifrar o usar FTP a través de SSL (FTPS). Cada una de estas configuraciones se describe a continuación.
Nota:
Deberá asegurarse de seguir los pasos descritos en este tutorial mientras inicia sesión como administrador. Esto se puede lograr mediante uno de los métodos siguientes:
- Inicie sesión en el servidor con la cuenta real denominada "Administrador".
- Para iniciar sesión con una cuenta con privilegios de administrador y abrir un símbolo del sistema, haga clic con el botón derecho en el elemento de menú Símbolo del sistema que se encuentra en el menú Accesorios para programas de Windows y seleccione "Ejecutar como administrador".
Se requiere uno de los pasos anteriores porque el componente de seguridad Control de cuentas de usuario (UAC) de los sistemas operativos Windows Vista y Windows Server 2008 impide el acceso de administrador a la configuración del firewall. Para obtener más información acerca de UAC, consulte la siguiente documentación:
Nota:
Aunque el firewall de Windows se puede configurar mediante el applet Firewall de Windows en el Panel de control de Windows, esa utilidad no tiene las características necesarias para habilitar todas las características para FTP. La utilidad Firewall de Windows con seguridad avanzada que se encuentra en Herramientas administrativas en el Panel de control de Windows tiene todas las características necesarias para habilitar las características de FTP, pero por simplicidad, este tutorial describirá cómo usar la utilidad Netsh.exe de línea de comandos para configurar el Firewall de Windows.
Uso del Firewall de Windows con tráfico FTP no seguro
Para configurar el Firewall de Windows para permitir el tráfico FTP no seguro, siga estos pasos:
Abra un símbolo del sistema: haga clic en Inicio, en Todos los programas, en Accesorios y, a continuación, en Símbolo del sistema.
Para abrir el puerto 21 en el firewall, escriba la sintaxis siguiente y presione Intro:
netsh advfirewall firewall add rule name="FTP (non-SSL)" action=allow protocol=TCP dir=in localport=21
Para habilitar el filtrado FTP con estado que abrirá dinámicamente los puertos para las conexiones de datos, escriba la sintaxis siguiente y, a continuación, presione Intro:
netsh advfirewall set global StatefulFtp enable
Notas importantes:
- Las conexiones FTP activas no abarcan necesariamente las reglas anteriores; una conexión saliente desde el puerto 20 también tendría que estar habilitada en el servidor. Además, la máquina de cliente FTP tendría que tener su propia configuración de excepciones de firewall para el tráfico entrante.
- El FTP a través de SSL (FTPS) no estará cubierto por estas reglas; es probable que se produzca un error en la negociación SSL porque el filtro firewall de Windows para la inspección de FTP con estado no podrá analizar los datos cifrados. (Algunos filtros de firewall de terceros reconocen el principio de la negociación SSL, por ejemplo, comandos AUTH SSL o AUTH TLS y devuelven un error para evitar que se inicie la negociación SSL).
Uso de Firewall de Windows con FTP seguro a través del tráfico SSL (FTPS)
La inspección de paquetes FTP con estado en Firewall de Windows probablemente impedirá que SSL funcione porque el filtro firewall de Windows para la inspección de FTP con estado no podrá analizar el tráfico cifrado que establecería la conexión de datos. Debido a este comportamiento, deberá configurar el Firewall de Windows para FTP de forma diferente si piensa usar FTP a través de SSL (FTPS). La manera más fácil de configurar el Firewall de Windows para permitir el tráfico FTPS es enumerar el servicio FTP en la lista de excepciones entrantes. El nombre completo del servicio es "Servicio FTP de Microsoft" y el nombre del servicio corto es "ftpsvc". (El servicio FTP se hospeda en un host de proceso de servicio genérico (Svchost.exe) por lo que no es posible colocarlo en la lista de excepciones a través de una excepción de programa).
Para configurar el firewall de Windows para permitir el tráfico FTP seguro a través de SSL (FTPS), siga estos pasos:
Abra un símbolo del sistema: haga clic en Inicio, en Todos los programas, en Accesorios y, a continuación, en Símbolo del sistema.
Para configurar el firewall y permitir que el servicio FTP escuche en todos los puertos que abre, escriba la sintaxis siguiente y, a continuación, presione Intro:
netsh advfirewall firewall add rule name="FTP for IIS7" service=ftpsvc action=allow protocol=TCP dir=in
Para deshabilitar el filtrado FTP con estado para que el Firewall de Windows no bloquee el tráfico FTP, escriba la sintaxis siguiente y, a continuación, presione Intro:
netsh advfirewall set global StatefulFtp disable
Más información sobre cómo trabajar con firewalls
A menudo es difícil crear reglas de firewall para que el servidor FTP funcione correctamente y la causa principal de este desafío se encuentra en la arquitectura del protocolo FTP. Cada cliente FTP requiere que se mantengan dos conexiones entre el cliente y el servidor:
- Los comandos FTP se transfieren a través de una conexión principal denominada Canal de control, que suele ser el ya conocido puerto FTP 21.
- Las transferencias de datos FTP, como las descripciones de directorios o la carga o descarga de archivos, requieren una conexión secundaria denominada Canal de datos.
Abrir el puerto 21 en un firewall es una tarea fácil, pero esto significa que un cliente FTP solo podrá enviar comandos, no transferir datos. Esto significa que el cliente podrá usar el canal de control para autenticarse y crear o eliminar directorios correctamente, pero el cliente no podrá ver listados de directorios ni podrá cargar o descargar archivos. Esto se debe a que no se permite que las conexiones de datos para el servidor FTP pasen por el firewall hasta que se permita el Canal de datos a través del firewall.
Nota:
Esto puede resultar confuso para un cliente FTP, ya que parece que el cliente puede iniciar sesión correctamente en el servidor, pero es posible que parezca que se ha agotado el tiempo de espera de la conexión o deje de responder al intentar recuperar una lista de directorios del servidor.
Los retos de trabajar con FTP y firewalls no acaban con el requisito de una conexión de datos secundaria; para complicar aún más las cosas, en realidad hay dos maneras diferentes de establecer la conexión de datos:
- Conexiones de datos activas: en una conexión de datos activa, un cliente FTP configura un puerto para la escucha del canal de datos y el servidor inicia una conexión al puerto; normalmente, es desde el puerto 20 del servidor. Las conexiones de datos activas solían ser la forma predeterminada de conectarse al servidor FTP; sin embargo, las conexiones de datos activas ya no se recomiendan porque no funcionan bien en escenarios de Internet.
- Conexiones de datos pasivas: en una conexión de datos pasiva, un servidor FTP configura un puerto para la escucha del canal de datos y el cliente inicia una conexión al puerto. Las conexiones pasivas funcionan mucho mejor en escenarios de Internet y son recomendadas por RFC 1579 (FTP descriptivo del firewall).
Nota:
Algunos clientes FTP requieren una acción explícita para habilitar conexiones pasivas y algunos clientes ni siquiera admiten conexiones pasivas. (Un ejemplo de este tipo es la utilidad Ftp.exe de línea de comandos que se incluye con Windows). Además, algunos clientes intentan alternar inteligentemente entre los dos modos cuando se producen errores de red, pero desafortunadamente esto no siempre funciona.
Algunos firewalls intentan solucionar problemas con conexiones de datos con filtros integrados que examinan el tráfico FTP y permiten dinámicamente las conexiones de datos a través del firewall. Estos filtros de firewall pueden detectar qué puertos se van a usar para las transferencias de datos y abrirlos temporalmente en el firewall para que los clientes puedan abrir conexiones de datos. (Algunos firewalls pueden habilitar el filtrado del tráfico FTP de forma predeterminada, pero no siempre es el caso). Este tipo de filtrado se conoce como un tipo de Inspección de paquetes con estado (SPI) o Inspección con estado, lo que significa que el firewall es capaz de determinar de manera inteligente el tipo de tráfico y elegir dinámicamente cómo responder. Muchos firewalls ya emplean estas características, incluido el Firewall de Windows integrado.