Mi red está completamente bloqueada, excepto por algunos sitios que están en la lista blanca. Todo esto se hace a través de iptables, que se parece a esto:
# 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 esas direcciones son hipotéticas, pero entiendes la idea. Mi firewall se está volviendo enorme. Sería mucho más fácil de mantener si pudiera hacer esto:
# 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
Creo que esto es posible, ya que man iptables
dice:
La dirección puede ser un nombre de red, un nombre de host (tenga en cuenta que especificar un nombre para resolver con una consulta remota como DNS es una muy mala idea), una dirección IP de red (con / máscara) o una dirección IP simple.
Pero lo que me preocupa es la parte que dice "especificar cualquier nombre para resolver ... DNS es una muy mala idea". ¿Por qué es una mala idea? ¿Simplemente ralentiza todo?
Si realmente no debería usar nombres de host en las reglas de iptables, ¿qué debo hacer para simplificar mi firewall?
fuente
Respuestas:
Si su propósito es bloquear el acceso a HTTP, generalmente es mucho mejor configurar un software diseñado para filtrar a ese nivel (por ejemplo, calamar + calamar).
fuente
Si usa nombres de host en su firewall, su firewall ahora depende de DNS. Esto abre el firewall a una serie de problemas:
Si usa nombres de host y no controla el DNS, alguien más controla efectivamente sus reglas de IPtables. Los errores, errores o problemas de seguridad por su parte se convierten en problemas para usted.
La única vez que he visto que los nombres de host se usan bien es para operaciones internas. He trabajado en una oficina donde las direcciones IP y los nombres de host se asignaron a través de DHCP. Los cortafuegos utilizaron nombres de host para poner barreras entre diferentes grupos. Como todo esto estaba controlado internamente, funcionó bien.
fuente
Podrías usar un contenedor alrededor de iptables como shorewall para hacer que tus reglas sean más fáciles de mantener.
fuente
Como los otros ya han dicho, no debes usar nombres resolubles DNS en las reglas de iptables. Son inexactos, controlados por terceros y generalmente son una mala cosa (tm). También agregaría que su DNS puede fallar o ser inaccesible en el momento en que se inicia el servicio de iptables. En cuyo caso, la regla no se agregará en absoluto y puede ocurrir un tipo completamente nuevo de problemas (como perder el acceso ssh después del reinicio).
Lo que puedes hacer es:
ipset
s para tener direcciones agrupadas y separadas de las reglasAdemás, nadie dijo nada malo sobre los nombres de host que DNS no resuelve (es decir, se especifican en
hosts
. Puede usarlos si realmente lo necesita).fuente
Personalmente asigno un nombre de host a una ip manualmente en / etc / hosts y luego lo uso en iptables.
De esta manera tu
fuente