我在服务器上使用 dnsmasq(绑定到 wan IP),并且想要为允许使用我的服务器解析 dns 的 ip 范围/ip 地址添加 acl/白名单。
我似乎无法从 Google 上找到任何东西,是否有一个选项可以将不允许的地址列入白名单/阻止其使用我的服务器进行解析?
请不要建议使用 iptables 或其他防火墙解决方案。
答案1
我知道的唯一解决办法是通过iptables。
最简单的方法是ipset:创建允许的 IP 列表,
ipset create good_ips hash:net
将你的 IP 地址添加到列表中,
ipset add good_ips 8.8.8.8
ipset add good_ips 192.168.155.0/24
然后你可以封锁所有 IP不是在列表中,尝试访问您的 DNS 服务器,如下所示:
iptables -A INPUT -p udp --dport 53 -m set --match-set ! good_ips src -j DROP
可以通过以下方式使其永久生效:
ipset save > /etc/ipset.conf
systemctl enable ipset
(最后一条命令是systemd服务(这是目前大多数 Linux 都具有的服务;如果您没有使用这样的系统,请进行相应调整)。