A resolução de DNS no IPtables é um pouco engraçada. No tempo de execução, o firewall atua somente no endereço IP, não nos nomes de domínio. Vamos dar o processo passo a passo para maior clareza.
- Você adiciona uma regra com:
iptables -I FORWARD 1 -p tcp -d dd-wrt.com --dport 80 -j ACCEPT
- O IPtables passa o dd-wrt.com para o subsistema do resolvedor.
- O subsistema do resolvedor retorna:
83.141.4.210
- IPtables modifica e cria regra como:
-p tcp -d 83.141.4.210 --dport 80 -j ACCEPT
Se o nome do domínio retornou vários endereços, como www.google.com, insere uma cópia dessa regra para cada endereço IP retornado. A menos, claro, que você use a opção --replace
, caso em que vários endereços retornados farão com que ela falhe.
Esta pesquisa somente acontece quando a regra é adicionada. Portanto, se dd-wrt.com for movido para um novo host, sua regra não funcionará mais corretamente. Você terá que excluir e adicionar novamente ou reiniciar o firewall para que o novo endereço tenha efeito.
Como resultado, você pode simplesmente implicar que você não pode usá-lo para bloquear com base no nome de domínio. Você está sempre bloqueando o endereço IP, pode estar simplesmente usando um nome de domínio para recuperar ocasionalmente o endereço. Da mesma forma, os curingas também não funcionam. O hostname *.dd-wrt.com
não possui um registro A, portanto não pode ser convertido em um endereço IP.
Geralmente, é de seu interesse bloquear ou negar apenas com base no endereço IP. Dessa forma, não há confusão para você ou sua equipe sobre o que deve ser bloqueado (ou permitido) versus o que realmente é.