IP 10.0.0.1/24のサーバーがあり、IP 10.0.0.2/24のデフォルトゲートウェイであるファイアウォールがあります。サーバーがDNSサービスにのみアクセスできるように、ファイアウォールの権限を設定する必要があります。 iptablesを使用する必要があります。
答え1
ファイアウォールのFORWARDチェーンがデフォルトでDROPを実行している場合は、これで十分です。
iptables -A FORWARD -s 10.0.0.1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 10.0.0.1 -p udp --dport 53 -j ACCEPT
(DNSはポート53 UDPとTCPの両方を使用します)
たとえば、DNSサーバー10.1.1.1も指定したい場合:
iptables -A FORWARD -s 10.0.0.1 -d 10.1.1.1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 10.0.0.1 -d 10.1.1.1 -p udp --dport 53 -j ACCEPT
構成ファイルに応答を必要とするIPアドレス/ネットワークからの要求のみを受け入れるようにDNSサーバーを構成することもできます。
答え2
(バインドDNSが使用されていると仮定) - DNSサービス/デーモンが127.0.0.1でのみリッスンするようにしたらどうなりますか?バインディングデーモンのオプションに以下を追加するだけです。
listen-on { 127.0.0.1; };
次に、サーバーに127.0.0.1のDNSサーバーを使用するように指示します。ファイアウォールルールは必要ありません! :)