ASA/PIX : Gerenciando Pings ICMP e Traceroute Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções Diagrama de Rede Envio de um Ping Através do PIX PIX/ASA Software Versões 7.x PIX Software Versões 5.0.1 a 6.3.3 PIX Software Versões 4.2(2) a 5.0.1 PIX Software Versões 4.1(6) a 4.2(2) Envio de Pings para as Interfaces do Próprio PIX Entrada do Comando traceroute Através do PIX Como Forçar a Exibição do Firewall em um Traceroute no ASA/PIX Exemplo Mensagem de Erro - 313005 Tipos de Mensagem ICMP (RFC 792) Informações que Devem Ser Coletadas ao Abrir uma Solicitação de Serviço Introdução No PIX Firewall, os pings ICMP (Internet Control Message Protocol) e o traceroute são tratados de formas diferentes de acordo com a versão dos códigos ASA e PIX. O ICMP de entrada através do PIX/ASA é negado por padrão. O ICMP de saída é permitido, mas a resposta recebida é negada por padrão. Pré-requisitos Requisitos Não existem pré-requisitos específicos para este documento. Componentes Utilizados As informações deste documento são baseadas nestas versões de software e hardware: PIX Software versões 4.1(6) e posterior Cisco ASA 5500 Series Security Appliance que executa a versão 7.x e versões posteriores As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração padrão. Se a sua rede estiver em um ambiente de produção, esteja ciente do impacto potencial de qualquer comando. Convenções Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos. Diagrama de Rede Nota: Os esquemas de endereçamento IP utilizados nesta configuração não são legalmente roteáveis na Internet. Eles são endereços da RFC 1918 que foram usados em um ambiente de laboratório. Envio de um Ping Através do PIX PIX/ASA Software Versões 7.x Entrada de Pings Os pings iniciados externamente ou a partir de outra interface de baixa segurança do PIX são negados por padrão. Os pings podem ser permitidos com o uso de listas de acesso e estáticas ou apenas de listas de acesso. Neste exemplo, é permitido o acesso de pings externos a um servidor interno do PIX. Uma conversão estática é criada entre o endereço interno (10.1.1.5) e o endereço externo (192.168.1.5). pix(config)#static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255 pix(config)#access-list 101 permit icmp any host 192.168.1.5 echo pix(config)#access-group 101 in interface outside Saída de Pings Há duas opções no PIX 7.x que permitem aos usuários internos efetuar ping em hosts externos. A primeira é configurar uma regra específica para cada tipo de mensagem de eco. Por exemplo: access-list 101 permit icmp any any echo-reply access-list 101 permit icmp any any source-quench access-list 101 permit icmp any any unreachable access-list 101 permit icmp any any time-exceeded access-group 101 in interface outside Isso permitirá que somente essas mensagens de retorno passem pelo firewall quando um usuário interno efetuar ping em um host externo. Os outros tipos de mensagem de status ICMP poderão ser hostis, e o firewall bloqueará todas as outras mensagens ICMP. Outra opção é configurar a inspeção de ICMP. Isso permitirá que um endereço IP confiável passe pelo firewall e que as respostas sejam enviadas somente ao endereço confiável. Dessa maneira, os hosts em todas as interfaces internas poderão efetuar ping nos hosts externos, e o firewall permitirá que as respostas retornem. Outra vantagem é que você pode monitorar o tráfego ICMP que passa pelo firewall. Neste exemplo, icmp inspection é adicionado à política de inspeção global padrão. Por exemplo: policy-map global_policy class inspection_default inspect icmp Ping em Outra Interface Não será possível acessar a interface interna do PIX externamente e vice-versa, a menos que management-access esteja configurado no modo de configuração global. Uma vez ativado management-access, o acesso Telnet, SSH ou HTTP ainda deverá ser configurado para os hosts desejados. pix(config)#management-access inside pix(config)#show running-config management-access management-access inside PIX Software Versões 5.0.1 a 6.3.3 O ICMP de entrada através do PIX é negado por padrão; o ICMP de saída é permitido, mas a resposta recebida é negada por padrão. Nota: A versão 6.3.3 é a versão mais recente de código disponível no momento da publicação. Para verificar as possíveis alterações em versões posteriores, consulte as release notes. Entrada de Pings O ICMP de entrada pode ser permitido com uma instrução conduit ou access-list, dependendo de qual delas é utilizada no PIX. Não misture essas instruções. Este exemplo mostra como permitir o ICMP do dispositivo 10.1.1.5 interno (estático para 192.168.1.5) por todos os dispositivos externos: static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255 0 0 !--- e de conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 echo !--- ou access-list 101 permit icmp any host 192.168.1.5 echo access-group 101 in interface outside Saída de Pings As respostas ao ICMP de saída podem ser permitidas com uma instrução conduit ou access-list, dependendo de qual delas é utilizada no PIX. Não misture essas instruções. Este exemplo mostra como permitir respostas para solicitações ICMP iniciadas pelo dispositivo 10.1.1.5 interno (estático para 192.168.1.5) a partir de todos os dispositivos externos: static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255 0 0 !--- e de conduit conduit conduit conduit permit permit permit permit icmp icmp icmp icmp 192.168.1.5 192.168.1.5 192.168.1.5 192.168.1.5 255.255.255.255 255.255.255.255 255.255.255.255 255.255.255.255 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 echo-reply source-quench unreachable time-exceeded !--- ou access-list 101 permit icmp any host 192.168.1.5 access-list 101 permit icmp any host 192.168.1.5 access-list 101 permit icmp any host 192.168.1.5 access-list 101 permit icmp any host 192.168.1.5 access-group 101 in interface outside echo-reply source-quench unreachable time-exceeded PIX Software Versões 4.2(2) a 5.0.1 O ICMP de entrada através do PIX/ASA é negado por padrão. O ICMP de saída é permitido, mas a resposta recebida é negada por padrão. Entrada de Pings O ICMP de entrada pode ser permitido com uma instrução conduit. Este exemplo mostra como permitir o ICMP do dispositivo 10.1.1.5 interno (estático para 192.168.1.5) por todos os dispositivos externos: static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255 0 0 conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 echo Saída de Pings É possível permitir respostas ao ICMP de saída com uma instrução conduit. Este exemplo mostra como permitir respostas para solicitações ICMP iniciadas pelo dispositivo 10.1.1.5 interno (estático para 192.168.1.5) a partir de todos os dispositivos externos: static (inside,outside) 192.168.1.5 10.1.1.5 netmask 255.255.255.255 0 0 conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 echo-reply conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 source-quench conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 unreachable conduit permit icmp 192.168.1.5 255.255.255.255 0.0.0.0 0.0.0.0 time-exceeded PIX Software Versões 4.1(6) a 4.2(2) O ICMP de entrada através do PIX/ASA é negado por padrão. O ICPM de saída é permitido por padrão. Entrada de Pings O ICMP de entrada pode ser permitido com uma instrução conduit. Este exemplo mostra como permitir o ICMP do dispositivo 10.1.1.5 interno (estático para 192.168.1.5) por todos os dispositivos externos: static (inside), outside) 192.168.1.5 10.1.1.5 conduit 192.168.1.5 8 icmp 0.0.0.0 0.0.0.0 !--- O 8 representa a solicitação de eco; estes são da RFC 792. Consulte a seção Tipos de Mensagem ICMP (RFC 792) deste documento para obter mais informações. Saída de Pings São permitidos ICMP de saída e respostas por padrão. Envio de Pings para as Interfaces do Próprio PIX No PIX Software versões 4.1(6) a 5.2.1, é permitido o tráfego ICMP para a interface do próprio PIX. O PIX não pode ser configurado para não responder. Não é possível efetuar ping nas interfaces localizadas na extremidade oposta do PIX em nenhuma versão. Com base no diagrama de rede deste documento: Não é possível efetuar ping em 10.1.1.1 a partir de 10.1.1.5. Não é possível efetuar ping em 192.168.1.1 externamente. Não é possível efetuar ping em 192.168.1.1 a partir de 10.1.1.5. Não é possível efetuar ping em 10.1.1.1 externamente. No PIX Software versões 5.2.1, o ICMP ainda é permitido por padrão, mas as respostas do ping PIX recebidas de suas próprias interfaces podem ser desativadas com o comando icmp (ou seja, um "PIX stealth"). icmp permit|deny [host] src_addr [src_mask] [type] int_name Neste exemplo, o PIX não pode enviar respostas de eco para solicitações de eco: icmp deny any echo outside Como no caso das listas de acesso, na ausência de instruções permit, também há uma negação implícita de todo o outro tráfego ICMP. Esse comando permite pings da rede imediatamente fora do PIX: icmp permit 192.168.1.0 255.255.255.0 echo outside Como no caso das listas de acesso, na ausência de instruções permit, também há uma negação implícita de todo o outro tráfego ICMP. Entrada do Comando traceroute Através do PIX Problema: O PIX Firewall oculta todas as redes internas na saída de traceroutes de entrada. Resolução: O PIX não oferece suporte ao comando traceroute. Quando um comando traceroute é executado externamente, o PIX não exibe o endereço IP de sua própria interface nem os endereços IP das redes internas. O endereço de destino é exibido várias vezes para cada loop interno. Os traceroutes funcionam apenas com endereços IP NAT (Network Address Translation) estáticos e não com endereços IP PAT (Port Address Translation). Por exemplo, um cliente na Internet com o endereço 209.165.202.130 executa um traceroute para um servidor Web interno do PIX com o endereço público 209.165.201.25 e o endereço privado 10.1.3.25. Há dois roteadores entre o PIX e o servidor Web interno. A saída de traceroute na máquina cliente tem a seguinte aparência: Target IP address: 209.165.201.25 Source address: 209.165.202.130 Tracing the route to 209.165.201.25 1 209.165.202.128 4 msec 3 msec 4 msec 2 209.165.201.25 3 msec 5 msec 0 msec 3 209.165.201.25 4 msec 6 msec 3 msec 4 209.165.201.25 3 msec 2 msec 2 msec No PIX versão 6.3 e posterior, esse comportamento poderá ser revertido com a execução do comando de erro icmp fixup protocol. Quando esse recurso é ativado, o PIX cria xlates para saltos intermediários que enviam mensagens de erro ICMP (Internet Control Message Protocol), com base na configuração do NAT estático. O PIX substitui o pacote pelos endereços IP convertidos. Quando o NAT é ativado no PIX 7.0, os endereços IP das interfaces do PIX e os endereços IP reais dos saltos intermediários não podem ser vistos. Entretanto, no PIX 7.0, o NAT não é essencial e pode ser desativado com o comando no nat-control. Se a regra de NAT for removida, será possível ver o endereço IP real se ele for roteável. Para obter mais informações, consulte a seção Entrada do Comando traceroute Através do PIX do documento PIX e o Comando traceroute. Como Forçar a Exibição do Firewall em um Traceroute no ASA/PIX ciscoasa(config)#class-map class-default ciscoasa(config)#match any !--- Este mapa de classes existe por padrão. ciscoasa(config)#policy-map global_policy !--- Este mapa de políticas existe por padrão. ciscoasa(config-pmap)#class class-default !--- Adicione outro mapa de classes a esta diretiva. ciscoasa(config-pmap-c)#set connection decrement-ttl !--- Decremente o campo IP TTL para pacotes que atravessam o firewall. !--- Por padrão, o TTL não é decrementar de forma oculta (de algum modo) o firewall. ciscoasa(config-pmap-c)#exit ciscoasa(config-pmap)#exit ciscoasa(config)#service-policy global_policy global !--- Esta política de serviço existe por padrão. WARNING: Policy map global_policy is already configured as a service policy ciscoasa(config)#icmp unreachable rate-limit 10 burst-size 5 !--- Ajuste as respostas de inatingível de ICMP: !--- O padrão é rate-limit 1 burst-size 1. !--- O padrão resultará em timeouts para o salto ASA: ciscoasa(config)#access-list outside-in-acl remark Allow ICMP Type 11 for Windows tracert ciscoasa(config)#access-list outside-in-acl extended permit icmp any any time-exceeded !--- A lista de acesso para a extremidade remota do tráfego ICMP (neste caso, !--- a interface externa) precisa ser modificada para permitir respostas ICMP tipo 11 !--- time-exceeded): ciscoasa(config)#access-group outside-in-acl in interface outside !--- Aplica a lista de acesso à interface externa. ciscoasa(config)# Exemplo Topologia Nota: Os esquemas de endereço IP utilizados nesta configuração não são legalmente roteáveis na Internet. Eles são endereços da RFC 1918 que foram usados em um ambiente de laboratório. Antes de aplicar a alteração de política: C:\>tracert -d www.yahoo.com. Tracing route to www.yahoo-ht3.akadns.net [192.168.93.52] over a maximum of 30 hops: 1 1 ms <1 ms <1 ms 172.16.2.1 !--- O primeiro salto mostrado é Roteador 1 2 6 ms (etc...) 6 ms 5 ms 192.168.100.101 Depois de aplicar a alteração de política: C:\>tracert -d www.yahoo.com. Tracing route to www.yahoo-ht3.akadns.net [192.168.93.52] over a maximum of 30 hops: 1 <1 ms <1 ms <1 ms 172.16.2.254 !--- O primeiro salto mostrado é ASA 2 !--- <1 ms <1 ms <1 ms 172.16.2.1 Roteador 1 agora é o segundo salto 3 6 ms (etc...) 6 ms 6 ms 192.168.100.101 Mensagem de Erro - 313005 Mensagem de Erro %PIX|ASA-4-313005: No matching connection for ICMP error message: icmp_msg_info on interface_name interface. Original IP payload: embedded_frame_info icmp_msg_info = icmp src src_interface_name:src_address dst dest_interface_name:dest_address (type icmp_type, code icmp_code) embedded_frame_info = prot src source_address/source_port dst dest_address/dest_port Explicação Os pacotes de erro ICMP são descartados pelo Security Appliance porque as mensagens de erro ICMP não se referem a nenhuma sessão já estabelecida no Security Appliance. Ação Recomendada Se a causa for um ataque, você poderá negar o host com ACLs. Tipos de Mensagem ICMP (RFC 792) Número da Mensagem Mensagem 0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect 8 Echo 11 Time Exceeded 12 Parameter Problem 13 Timestamp 14 Timestamp Reply 15 Information Request 16 Information Reply Informações que Devem Ser Coletadas ao Abrir uma Solicitação de Serviço Se você ainda precisar de assistência após seguir os passos de troubleshooting descritos aqui e desejar abrir uma solicitação de serviço no TAC da Cisco, certifique-se de incluir as informações a seguir para fazer o troubleshooting do PIX Firewall. Descrição do problema e detalhes relevantes de topologia Troubleshooting realizado antes da abertura da solicitação de serviço Saída do comando show tech-support Saída do comando show log após a execução do comando logging buffered debugging ou capturas do console que demonstrem o problema (se disponível) Anexe os dados coletados à sua solicitação de serviço em formato de texto simples não compactado (.txt). Você pode anexar informações à sua solicitação de serviço carregando-as com a Service Request Query Tool (somente clientes registrados). Se você não conseguir acessar essa ferramenta, envie as informações na forma de um anexo de email para [email protected] com o número da solicitação de serviço na linha de assunto da sua mensagem. © 1992-2014 Cisco Systems Inc. Todos os direitos reservados. Data da Geração do PDF: 1 Julho 2009 http://www.cisco.com/cisco/web/support/BR/106/1067/1067635_31.html