Red Hat Training

A Red Hat training course is available for RHEL 8

26.5.14. Gerenciamento de solicitações do ICMP

O Internet Control Message Protocol (ICMP) é um protocolo de suporte que é usado por vários dispositivos de rede para enviar mensagens de erro e informações operacionais indicando um problema de conexão, por exemplo, que um serviço solicitado não está disponível. ICMP difere dos protocolos de transporte como TCP e UDP porque não é usado para trocar dados entre sistemas.

Infelizmente, é possível usar as mensagens ICMP, especialmente echo-request e echo-reply, para revelar informações sobre sua rede e usar indevidamente tais informações para vários tipos de atividades fraudulentas. Portanto, firewalld permite bloquear as solicitações ICMP para proteger as informações de sua rede.

26.5.14.1. Listagem e bloqueio de pedidos do ICMP

Listagem ICMP solicitações

As solicitações ICMP estão descritas em arquivos XML individuais que estão localizados no diretório /usr/lib/firewalld/icmptypes/. Você pode ler estes arquivos para ver uma descrição da solicitação. O comando firewall-cmd controla a manipulação das solicitações ICMP.

  • Para listar todos os tipos disponíveis em ICMP:

    # firewall-cmd --get-icmptypes
  • A solicitação ICMP pode ser usada por IPv4, IPv6 ou por ambos os protocolos. Para ver para qual protocolo a solicitação ICMP é utilizada:

    # firewall-cmd --info-icmptype=<icmptype>
  • O status de uma solicitação ICMP mostra yes se a solicitação estiver atualmente bloqueada ou no se não estiver. Para ver se uma solicitação ICMP está bloqueada no momento:

    # firewall-cmd --query-icmp-block=<icmptype>

Bloqueio ou desbloqueio ICMP solicitações

Quando seu servidor bloqueia solicitações do ICMP, ele não fornece as informações que normalmente forneceria. No entanto, isso não significa que nenhuma informação seja dada. Os clientes recebem informações de que o pedido específico ICMP está sendo bloqueado (rejeitado). O bloqueio das solicitações ICMP deve ser considerado cuidadosamente, pois pode causar problemas de comunicação, especialmente com o tráfego IPv6.

  • Para ver se uma solicitação ICMP está atualmente bloqueada:

    # firewall-cmd --query-icmp-block=<icmptype>
  • Para bloquear um pedido em ICMP:

    # firewall-cmd --add-icmp-block=<icmptype>
  • Para remover o bloco para um pedido em ICMP:

    # firewall-cmd --remove-icmp-block=<icmptype>

Bloqueio de solicitações ICMP sem fornecer qualquer tipo de informação

Normalmente, se você bloquear solicitações do ICMP, os clientes sabem que você está bloqueando. Portanto, um potencial atacante que está farejando endereços IP ao vivo ainda é capaz de ver que seu endereço IP está online. Para esconder completamente estas informações, você tem que descartar todas as solicitações ICMP.

  • Para bloquear e abandonar todas as solicitações ICMP:
  1. Defina o objetivo de sua zona para DROP:

    # firewall-cmd --permanent --set-target=DROP

Agora, todo o tráfego, incluindo os pedidos de ICMP, é descartado, exceto o tráfego que você permitiu explicitamente.

  • Para bloquear e abandonar certas solicitações ICMP e permitir outras:
  1. Defina o objetivo de sua zona para DROP:

    # firewall-cmd --permanent --set-target=DROP
  2. Adicionar a inversão de bloco ICMP para bloquear todas as solicitações ICMP de uma só vez:

    # firewall-cmd --add-icmp-inversion-block-inversion
  3. Adicione o bloco ICMP para aqueles pedidos do site ICMP que você deseja permitir:

    # firewall-cmd --add-icmp-block=<icmptype>
  4. Faça com que as novas configurações sejam persistentes:

    # Firewall-cmd - tempo de execução a permanente

O block inversion inverte a configuração dos bloqueios de solicitações ICMP, de modo que todas as solicitações, que não foram bloqueadas anteriormente, são bloqueadas por causa do alvo de suas mudanças de zona para DROP. As solicitações que foram bloqueadas não são bloqueadas. Isto significa que se você deseja desbloquear uma solicitação, deve usar o comando de bloqueio.

  • Para reverter a inversão de bloco para um ajuste totalmente permissivo:
  1. Defina a meta de sua zona para default ou ACCEPT:

    # firewall-cmd --permanente --set-target=default
  2. Remover todos os blocos adicionados para pedidos em ICMP:

    # firewall-cmd --remove-icmp-block=<icmptype>
  3. Remova a inversão de bloco ICMP:

    # firewall-cmd --remove-icmp-block-inversion
  4. Faça com que as novas configurações sejam persistentes:

    # Firewall-cmd - tempo de execução a permanente