Estou tentando bloquear algum tráfego de ip estrangeiro para nosso servidor web. Arin.net mostra que o bloco 117.0.0.0/8 pertence a South Brisbane Australia. Mas quando eu o bloqueio, ele aparece como "localhost/8".
$ sudo iptables -I INPUT -s 117.0.0.0/8 -j DROP -m comment --comment "south brisbane au"
o resultado da listagem de iptables -L --line-numbers
é:
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- localhost/8 anywhere /* south brisbane au */
O que está acontecendo aqui? Por que 117.0.0.0/8 está aparecendo como "localhost/8"? Esse bloqueio afetará o tráfego para localhost?
ATUALIZAÇÃO (e saída da solução aceita)
Eu implementei usando -n
conforme sugerido por vários, incluindo a resposta aceita. Aqui está a saída após o uso -n
:
$ sudo iptables -L -n --line-numbers | head
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 DROP all -- 117.0.0.0/8 0.0.0.0/0 /* south brisbane au */
Um benefício adicional é que iptables -L
ficou tremendamente lento. Não tive tempo de investigar; mas evitar as pesquisas de DNS também resolveu esse problema. Obviamente, as pesquisas de DNS na fonte estavam ficando iptables -L
muito lentas com mais de um punhado na cadeia. Agora ele emite o 144 completo nessa cadeia imediatamente. Parece estranho que a pesquisa reversa para a fonte seja o padrão.
É um alarme falso causado por
o proprietário da zona DNS reversa relevante colocando um "localhost". gravar nesse endereço. Há um sinalizador para
iptables
desativar as pesquisas de DNS (-n
). Isso também fará com que o comando seja executado mais rapidamente, pois não há perda de tempo nas referidas pesquisas.Se você precisar do proprietário dessa zona, use
dig
, pois isso mostrará o arquivoSOA
. Você precisará usar o formulário de endereço reverso (quehost
ou outras ferramentas de pesquisa retornarão):