DNSサービスへのサーバーアクセスのみを許可する方法

DNSサービスへのサーバーアクセスのみを許可する方法

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サーバーを使用するように指示します。ファイアウォールルールは必要ありません! :)

関連情報