Minha rede está completamente bloqueada, exceto por alguns sites que estão na lista de permissões. Tudo isso é feito através do iptables, que se parece com isso:
# Allow traffic to google.com
iptables -A zone_lan_forward -p tcp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 1.2.3.0/24 -j ACCEPT
iptables -A zone_lan_forward -p tcp -d 11.12.13.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 11.12.13.0/24 -j ACCEPT
iptables -A zone_lan_forward -p tcp -d 101.102.103.0/24 -j ACCEPT
iptables -A zone_lan_forward -p udp -d 101.102.103.0/24 -j ACCEPT
...
Obviamente, esses endereços são hipotéticos, mas você entendeu. Meu firewall está se tornando enorme. Seria muito mais fácil manter se eu pudesse fazer isso:
# Allow traffic to google.com
iptables -A zone_lan_forward -p tcp -d google.com -j ACCEPT
iptables -A zone_lan_forward -p udp -d google.com -j ACCEPT
Eu acredito que isso é possível, pois man iptables
diz:
O endereço pode ser um nome de rede, um nome de host (observe que especificar um nome a ser resolvido com uma consulta remota como DNS é uma péssima idéia), um endereço IP de rede (com / mask) ou um endereço IP simples.
Mas o que me preocupa é a parte que diz "especificar qualquer nome a ser resolvido com ... DNS é uma péssima idéia". Por que isso é uma má ideia? Isso apenas atrasa tudo?
Se realmente não devo usar nomes de host nas regras do iptables, o que devo fazer para simplificar meu firewall?
fonte
Respostas:
Se seu objetivo é bloquear o acesso HTTP, geralmente é melhor configurar um software projetado para filtrar nesse nível (por exemplo, squid + squidquard).
fonte
Se você usa nomes de host em seu firewall, seu firewall agora depende do DNS. Isso abre o firewall para vários problemas:
Se você usa nomes de host e não controla o DNS, alguém controla efetivamente suas regras de tabelas de IP. Erros, erros ou questões de segurança acabam se tornando problemas para você.
A única vez que vi nomes de host bem utilizados é para operações internas. Eu trabalhei em um escritório onde IPs e nomes de host foram atribuídos via DHCP. Os firewalls usavam nomes de host para colocar barreiras entre diferentes grupos. Como tudo era controlado internamente, funcionou bem.
fonte
Você pode usar um invólucro em torno de iptables como shorewall para tornar suas regras mais fáceis de manter.
fonte
Como os outros já disseram, você não deve usar nomes resolvíveis de DNS nas regras do iptables. Eles são imprecisos, controlados por terceiros e geralmente são uma coisa ruim (tm). Eu também acrescentaria que seu DNS pode falhar ou estar inacessível no momento em que o serviço iptables está sendo iniciado. Nesse caso, a regra não será adicionada e um novo tipo de problema poderá ocorrer (como perder o acesso ssh após a reinicialização).
O que você pode fazer é:
ipset
s para ter endereços agrupados e separados das regrasTambém ninguém disse nada de ruim sobre nomes de host que não são resolvidos pelo DNS (ou seja, estão especificados em
hosts
. Você pode usá-los se realmente precisar.fonte
Pessoalmente, atribuo um nome de host a um ip manualmente em / etc / hosts e depois o uso em iptables.
Assim você
fonte