我的网络被完全锁定,除了一些列入白名单的网站.这一切都是通过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说:
Address can be either a network name,a hostname (please note that specifying any name to be resolved with a remote query such as DNS is a really bad idea),a network IP address (with /mask),or a plain IP address.
但我关心的是“指定任何名称要解决的部分…… DNS是一个非常糟糕的主意”.为什么这是一个坏主意?它只会减慢一切吗?
如果我真的不应该在iptables规则中使用主机名,那么我应该怎样做才能简化防火墙?