iptablesを使用して発信するDNSクエリを単一のグループに制限すると、機能しません。

iptablesを使用して発信するDNSクエリを単一のグループに制限すると、機能しません。

既定では、私のコンピュータ上のすべてのDNSクエリをブロックし、特定のユーザーグループのみがそれを使用できるようにします。私は次のルールを試してみます。

sudo su
groupadd dns-allowed
iptables -A OUTPUT -p udp --dport 53 -m owner --gid-owner dns-allowed -j ACCEPT
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW -j REJECT

2番目のケースでは、DNSクエリは正常にブロックされましたが、dns-allowedグループ内でpingを開始しようとしましたが、DNSクエリはまだブロックされています。

sudo sg dns-allowed "ping google.com"
ping: google.com: Name or service not known

nslookuppingの代わりに使用してDNSサーバー8.8.8.8を指定すると、dns-allowedグループで起動すると機能しますが、再びping失敗することがわかりました。ほとんどのアプリはまだDNSを使用できません。:

sudo sg dns-allowed "nslookup google.com 8.8.8.8"
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   google.com
Address: ....

構成ファイルの解析

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 127.0.0.53

私の間違いは何ですか?

関連情報