Моя сеть полностью заблокирована, за исключением нескольких сайтов, занесенных в белый список. Все это делается через iptables, который выглядит примерно так:
# 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
...
Очевидно, что эти адреса являются гипотетическими, но вы поняли идею. Мой брандмауэр становится огромным. Было бы гораздо проще поддерживать, если бы я мог просто сделать это:
# 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
Я считаю, что это возможно, так как man iptables
говорит:
Адрес может быть либо сетевым именем, либо именем хоста (обратите внимание, что указание любого имени для разрешения с помощью удаленного запроса, такого как DNS - это очень плохая идея), сетевым IP-адресом (с / mask) или простым IP-адресом.
Но что меня беспокоит, так это то, что «указание любого имени, которое должно быть разрешено ... DNS - это действительно плохая идея». Почему это плохая идея? Это просто все замедляет?
Если я действительно не должен использовать имена хостов в правилах iptables, то что мне следует сделать, чтобы упростить мой брандмауэр?