A página man do firewall-cmd conta os fatos:
A source address or address range is either an IP address or a network IP address with a mask for IPv4 or IPv6 or a MAC address or an ipset with the ipset: prefix. For IPv4, the mask can be a network mask or a plain number. For IPv6 the mask is a plain number. The use of host names is not supported.
Há uma boa razão para isso. O firewalld é um filtro de pacotes. Ele compara o pacote com as regras que ele possui. O pacote IP tem endereço IP de origem e de destino, mas não o nome do host. Portanto, usar o host como um critério exigiria a coleta de informações adicionais de fontes adicionais, ou seja, o DNS do sistema de nomes de domínio . Essa implementação seria vulnerável a ataques de negação de serviço, pois seria fácil fazer com que seu servidor gerasse novo tráfego ao tentar filtrar os pacotes.
Além disso, embora seja fácil traduzir um nome de host para um endereço IP consultando A
records no DNS, a detecção de todos os nomes de host de um endereço IP não é tão simples. Claro que um IP pode ter um registro PTR
reverso, mas não é obrigatório nem confiável.
Por exemplo Algumas soluções gerenciamento unificado de ameaças (UTM) com filtros de conteúdo bloqueiam o tráfego HTTPS com base em nomes de host proibidos sem criptografar o tráfego TLS. Isso significa que ele não pode usar a URL, pois a solicitação HTTP e seu Host:
header são criptografados: ela só vê o endereço IP, assim como o seu firewall. Em vez de filtrar o conteúdo, ele bloqueia todo o tráfego HTTPS para esse endereço IP, usando uma lista pré-buscada de endereços IP para esse nome de host. Isso é exatamente o que você deve fazer.
Se você realmente quiser usar nomes de host, precisará consultar os endereços IP primeiro. Digamos que você queira impedir que seus funcionários navegem em serverfault.com
em suas preciosas horas de trabalho.
-
dig +short serverfault.com
- Bloqueie os endereços IP destino .
- Repita isso em intervalos regulares, começando pela remoção das regras desatualizadas.