PIX/ASA 7.x: Ejemplo de configuración para habilitar servicios FTP/TFTP Contenidos Introducción Requisitos previos Requisitos Componentes utilizados Diagrama de la red Productos relacionados Convenciones Antecedentes Gestión avanzada del protocolo Configuración de la inspección de aplicaciones FTP básica Configuración de ejemplo Configuración de la inspección de aplicaciones TFTP básica Configuración de ejemplo Verificación Problema: La sintaxis de la configuración no funciona y se recibe un error de inspección de correspondencia de clases Solución Introducción En este documento se explican los pasos necesarios para que los usuarios fuera de la red puedan acceder a los servicios FTP y TFTP en la red DMZ. Protocolo de transferencia de archivos (FTP) Existen dos formas de FTP: Modo activo Modo pasivo En modo FTP activo, el cliente realiza la conexión desde un puerto no privilegiado aleatorio (N>1023) al puerto de comandos (21) del servidor FTP. A continuación, el cliente comienza a escuchar el puerto N+1 y envía el puerto de comandos FTP N+1 al servidor FTP. El servidor se vuelve a conectar a los puertos de datos especificados del cliente desde su puerto de datos local (puerto 20). En modo FTP pasivo, el cliente inicia ambas conexiones con el servidor, lo que resuelve el problema de un firewall que filtra la conexión del puerto de datos entrantes con el cliente desde el servidor. Cuando se abre una conexión FTP, el cliente abre localmente dos puertos no privilegiados aleatorios (N>1023 y N+1). El primer puerto entra en contacto con el servidor en el puerto 21. Sin embargo, en lugar de ejecutar un comando port y permitir que el servidor se vuelva a conectar con su puerto de datos, el cliente ejecuta el comando PASV. Como resultado, el servidor abre un puerto no privilegiado aleatorio (P>1023) y vuelve a enviar al cliente el comando port P. El cliente inicia entonces la conexión desde el puerto N+1 al puerto P en el servidor para transferir datos. Sin la configuración del comando inspection en el dispositivo de seguridad, el servicio FTP de usuarios internos hacia el exterior sólo funciona en modo pasivo. Asimismo, a los usuarios externos que intentan acceder hacia el interior al servidor FTP, se les deniega el acceso. Protocolo trivial de transferencia de archivos (TFTP) TFTP, tal y como se describe en RFC 1350, es un protocolo simple para leer y escribir archivos entre un cliente y un servidor TFTP. TFTP utiliza el puerto UDP 69. Requisitos previos Requisitos Antes de utilizar esta configuración, asegúrese de cumplir con los siguientes requisitos: Existe una comunicación básica entre las interfaces necesarias. Se ha configurado el servidor FTP situado dentro de la red DMZ. Componentes utilizados La información de este documento se basa en estas versiones de software y hardware: Dispositivo de seguridad adaptable ASA serie 5500 que ejecuta la imagen de software 7.2(2) Windows 2003 Server que ejecuta servicios FTP Windows 2003 Server que ejecuta servicios TFTP Equipo cliente en la parte externa de la red La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración despejada (predeterminada). Si la red está en producción, asegúrese de comprender el impacto que pueda tener cualquier comando. Diagrama de la red Este documento utiliza esta configuración de red: Nota: los esquemas de direccionamiento IP utilizados en esta configuración no son legalmente enrutables en Internet. Son direcciones RFC 1918 que se han utilizado en un entorno de laboratorio. Productos relacionados Esta configuración también se puede utilizar con la versión 7.x. del dispositivo de seguridad PIX. Convenciones Consulte Cisco Technical Tips Conventions (Convenciones sobre consejos técnicos de Cisco) para obtener más información sobre las convenciones del documento. Antecedentes El dispositivo de seguridad admite la inspección de aplicaciones mediante la función del algoritmo de seguridad adaptable. Con la inspección de estado utilizada por dicho algoritmo, el dispositivo de seguridad realiza un seguimiento de todas las conexiones que atraviesan el firewall, garantizando su validez. El firewall, mediante la inspección de estado, también supervisa el estado de la conexión para compilar información y situarla en una tabla de estado. Con el uso de esta tabla y las reglas definidas por el administrador, las decisiones de filtrado se basan en el contexto que se establece mediante paquetes transmitidos previamente a través del firewall. La implementación de las inspecciones de aplicaciones consta de tres operaciones: Identificar el tráfico. Aplicar inspecciones al tráfico. Activar inspecciones en una interfaz. Gestión avanzada del protocolo FTP Algunas aplicaciones requieren una gestión especial mediante la función de inspecciones de aplicaciones del dispositivo de seguridad de Cisco. Este tipo de aplicaciones suele incorporar información de direccionamiento IP en el paquete de datos de usuario, o bien abrir canales secundarios en puertos asignados de forma dinámica. La función de inspección de aplicaciones opera con la traducción de direcciones de red (NAT) para ayudar a identificar la ubicación de información de direccionamiento incorporada. Además de la identificación de esta información, con la función de inspección de aplicaciones se supervisan las sesiones para determinar los números de puerto de los canales secundarios. Muchos protocolos abren puertos TCP o UDP secundarios para mejorar el rendimiento. La sesión inicial en un puerto conocido se emplea para negociar los números de puerto asignados de forma dinámica. Con la función de inspección de aplicaciones se supervisan estas sesiones, se identifican las asignaciones de puerto dinámicas y se permite el intercambio de datos en estos puertos durante la duración de estas sesiones específicas. Las aplicaciones FTP y multimedia presentan este comportamiento. El protocolo FTP requiere una gestión especial debido al uso de dos puertos por sesión FTP. El protocolo FTP hace uso de dos puertos al activarse para transferir datos: un canal de control y otro canal de datos que usan los puertos 21 y 20, respectivamente. El usuario que inicia la sesión FTP con el canal de control, realiza todas las solicitudes de datos mediante este canal. El servidor FTP inicia una solicitud para abrir un puerto desde el puerto 20 del servidor hasta el equipo del usuario. FTP siempre utilizará el puerto 20 para las comunicaciones del canal de datos. Si la inspección FTP no se ha habilitado en el dispositivo de seguridad, esta solicitud se descartará y las sesiones FTP no transmitirán ningún dato solicitado. Si, por el contrario, la inspección FTP se habilita en el dispositivo de seguridad, el dispositivo supervisará el canal de control e intentará reconocer una solicitud para abrir el canal de datos. El protocolo FTP incorpora las especificaciones de puerto del canal de datos en el tráfico del canal de control, lo que requiere que el dispositivo de seguridad inspeccione el canal de control para ver los cambios en el puerto de datos. Si el dispositivo de seguridad reconoce una solicitud, crea temporalmente una apertura para el tráfico del canal de datos, que se mantendrá durante la sesión. De este modo, la función de inspección FTP supervisa el canal de control, identifica una asignación del puerto de datos y permite el intercambio de información en el puerto de datos durante el transcurso de la sesión. El dispositivo de seguridad inspecciona las conexiones del puerto 21 para el tráfico FTP de forma predeterminada mediante la correspondencia de clases de inspección global. El dispositivo también reconoce la diferencia entre una sesión FTP activa y otra pasiva. Si las sesiones FTP admiten la transferencia de datos de FTP pasiva, el dispositivo de seguridad, mediante el comando inspect ftp, reconoce la solicitud del puerto de datos del usuario y abre un nuevo puerto de datos superior a 1023. La inspección de aplicaciones FTP supervisa las sesiones FTP y lleva a cabo cuatro tareas: Prepara una conexión de datos secundaria y dinámica Realiza el seguimiento de la secuencia comando-respuesta de FTP Genera un rastro de auditoría Traduce la dirección IP incluida mediante NAT La inspección de aplicaciones FTP prepara canales secundarios para la transferencia de datos FTP. Los canales se asignan en respuesta a una carga o descarga de archivos o a un evento de listado de directorios, y se deben negociar previamente. El puerto se negocia con los comandos PORT o PASV (227). TFTP La inspección TFTP se habilita de forma predeterminada. El dispositivo de seguridad inspecciona el tráfico TFTP y de forma dinámica crea conexiones y traducciones, si es necesario, para permitir la transferencia de archivos entre un servidor y un cliente TFTP. En concreto, el motor de inspección supervisa solicitudes de lectura TFTP (RRQ), solicitudes de escritura (WRQ) y notificaciones de error (ERROR). Si es necesario, se asignan un canal secundario dinámico y una traducción PAT al recibirse una solicitud RRQ o WRQ válida. Posteriormente, TFTP emplea este canal secundario para la transferencia de archivos o las notificaciones de error. Únicamente el servidor TFTP puede iniciar el tráfico a través del canal secundario y como máximo puede haber un canal secundario incompleto entre el servidor y el cliente TFTP. Una notificación de error del servidor cierra el canal secundario. La inspección TFTP se debe habilitar si la traducción PAT estática se utiliza para redireccionar el tráfico TFTP. Configuración de la inspección de aplicaciones FTP básica De forma predeterminada, la configuración incluye una política que relaciona todo el tráfico de inspección de aplicaciones predeterminado y aplica la inspección al tráfico en todas las interfaces (política global). En el tráfico de inspección de aplicaciones predeterminado se incluye el tráfico de los puertos predeterminados para cada protocolo. Se puede aplicar sólo una política global, de modo que si desea modificarla, por ejemplo, para aplicar la inspección a puertos no estándar o agregar inspecciones que no estén habilitadas de forma predeterminada, debe cambiar la política predeterminada, o bien deshabilitarla y aplicar una nueva. Para obtener una lista de todos los puertos predeterminados, consulte Default Inspection Policy (Política de inspección predeterminada). 1. Ejecute el comando policy-map global_policy. ASAwAIP-CLI(config)#policy-map global_policy 2. Ejecute el comando class inspection_default. ASAwAIP-CLI(config-pmap)#class inspection_default 3. Ejecute el comando inspect FTP. ASAwAIP-CLI(config-pmap-c)#inspect FTP Existe una opción para utilizar el comando inspect FTP strict. Con él aumenta la seguridad de las redes protegidas, evitando que un navegador Web envíe comandos incluidos en solicitudes FTP. Una vez habilitada la opción strict en una interfaz, la inspección FTP impone este comportamiento: Los comandos FTP se deben reconocer antes de que el dispositivo de seguridad permita un nuevo comando. El dispositivo de seguridad detiene una conexión que envía los comandos incluidos. Los comandos 227 y PORT se comprueban para verificar que no aparecen en ninguna cadena de error. Advertencia: el uso de la opción strict puede causar el fallo de los clientes FTP que no son totalmente compatibles con las RFC de FTP. Consulte Using the strict Option (Uso de la opción strict) para obtener más información sobre el uso de strict . Configuración de ejemplo Nombre de dispositivo 1 ASA-AIP-CLI(config)#show running-config ASA Version 7.2(2) ! hostname ASA-AIP-CLI domain-name corp.com enable password WwXYvtKrnjXqGbu1 encrypted names ! interface Ethernet0/0 nameif Outside security-level 0 ip address 192.168.1.2 255.255.255.0 ! interface Ethernet0/1 nameif Inside security-level 100 ip address 10.1.1.1 255.255.255.0 ! interface Ethernet0/2 nameif DMZ security-level 50 ip address 172.16.1.12 255.255.255.0 ! interface Ethernet0/3 no nameif no security-level no ip address ! interface Management0/0 no nameif no security-level no ip address ! !--- Resultado suprimido. !--- Permita el tráfico de control FTP entrante. access-list 100 extended permit tcp any host 192.168.1.5 eq ftp !--- Permita el tráfico de datos FTP entrante. access-list 100 extended permit tcp any host 192.168.1.5 eq ftp-data ! !--- Comando para redirigir el tráfico FTP recibido en IP 192.168.1.5 !--- a IP 172.16.1.5. static (DMZ,outside) 192.168.1.5 172.16.1.5 netmask 255.255.255.255 access-group 100 in interface outside class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns preset_dns_map parameters message-length maximum 512 policy-map global_policy inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect ! class inspection_default dns preset_dns_map ftp h323 h225 h323 ras netbios rsh rtsp skinny esmtp sqlnet sunrpc tftp sip xdmcp !--- Este comando indica al dispositivo que !--- use la correspondencia de políticas "global_policy" en todas las interfaces. service-policy global_policy global prompt hostname context Cryptochecksum:4b2f54134e685d11b274ee159e5ed009 : end ASA-AIP-CLI(config)# Configuración de la inspección de aplicaciones TFTP básica De forma predeterminada, la configuración incluye una política que relaciona todo el tráfico de inspección de aplicaciones predeterminado y aplica la inspección al tráfico en todas las interfaces (política global). En el tráfico de inspección de aplicaciones predeterminado se incluye el tráfico de los puertos predeterminados para cada protocolo. Sólo se puede aplicar una política global. Si desea modificar la política global, por ejemplo, para aplicar la inspección a puertos no estándar o agregar inspecciones que no estén habilitadas de forma predeterminada, debe cambiar la política predeterminada, o bien deshabilitarla y aplicar una nueva. Para obtener una lista de todos los puertos predeterminados, consulte Default Inspection Policy (Política de inspección predeterminada). 1. Ejecute el comando policy-map global_policy. ASAwAIP-CLI(config)#policy-map global_policy 2. Ejecute el comando class inspection_default. ASAwAIP-CLI(config-pmap)#class inspection_default 3. Ejecute el comando inspect TFTP. ASAwAIP-CLI(config-pmap-c)#inspect TFTP Configuración de ejemplo Nombre de dispositivo 1 ASA-AIP-CLI(config)#show running-config ASA Version 7.2(2) ! hostname ASA-AIP-CLI domain-name corp.com enable password WwXYvtKrnjXqGbu1 encrypted names ! interface Ethernet0/0 nameif Outside security-level 0 ip address 192.168.1.2 255.255.255.0 ! interface Ethernet0/1 nameif Inside security-level 100 ip address 10.1.1.1 255.255.255.0 ! interface Ethernet0/2 nameif DMZ security-level 50 ip address 172.16.1.12 255.255.255.0 ! interface Ethernet0/3 no nameif no security-level no ip address ! interface Management0/0 no nameif no security-level no ip address ! !--- Resultado suprimido. !--- Permita el tráfico TFTP entrante. ! access-list 100 extended permit udp any host 192.168.1.5 eq tftp !--- Comando para redirigir el tráfico TFTP recibido en IP 192.168.1.5 !--- a IP 172.16.1.5. static (DMZ,outside) 192.168.1.5 172.16.1.5 netmask 255.255.255.255 access-group 100 in interface outside class-map inspection_default match default-inspection-traffic ! ! policy-map type inspect dns preset_dns_map parameters message-length maximum 512 policy-map global_policy inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect inspect ! class inspection_default dns preset_dns_map ftp h323 h225 h323 ras netbios rsh rtsp skinny esmtp sqlnet sunrpc tftp sip xdmcp !--- Este comando indica al dispositivo que !--- use la correspondencia de políticas "global_policy" en todas las interfaces. service-policy global_policy global prompt hostname context Cryptochecksum:4b2f54134e685d11b274ee159e5ed009 : end ASA-AIP-CLI(config)# Verificación Para garantizar que la configuración se haya aplicado correctamente, use el comando show service-policy y limite el resultado sólo a la inspección FTP con el comando show service-policy inspect ftp. Problema: La sintaxis de la configuración no funciona y se recibe un error de inspección de correspondencia de clases La sintaxis de la sección de configuración no funciona y se recibe un error como el siguiente: ERROR: % class-map inspection_default not configured Solución La configuración se basa en las inspecciones predeterminadas que están en la configuración. Si no están en ella, vuelva a crearlas con los siguientes comandos: 1. class-map inspection_default match default-inspection-traffic 2. policy-map type inspect dns preset_dns_map parameters message-length maximum 512 3. policy-map global_policy class inspection_default inspect dns preset_dns_map inspect ftp inspect h323 h225 inspect h323 ras inspect rsh inspect rtsp inspect esmtp inspect sqlnet inspect skinny inspect sunrpc inspect xdmcp inspect sip inspect netbios inspect tftp 4. service-policy global_policy global Advertencia: si las inspecciones predeterminadas se eliminaron previamente para resolver otro problema, dicho conflicto puede volver a aparecer cuando las inspecciones se vuelvan a habilitar. Usted o su administrador deben saber si las inspecciones se eliminaron previamente como solución a un problema. © 1992-2014 Cisco Systems Inc. Todos los Derechos Reservados. Fecha de Generación del PDF: 20 Junio 2008 http://www.cisco.com/cisco/web/support/LA/9/98/98024_pix-asa-enable-ftp.html