iptables DNSを許可する

提供: セキュリティ
2013年8月17日 (土) 20:03時点におけるDaemon (トーク | 投稿記録)による版

移動: 案内検索
スポンサーリンク

iptables でポートをいろいろ塞ぐと DNS 問い合わせをブロックしてしまうことがあります。

概要

DNS 問い合わせは、UDP が利用されます。 そのため、iptables で domain (53ポート) の通信が通らないと外部のDNS サーバーを利用した 名前解決 ができなくなります。

使い方

DNSクライアントとして問い合わせをする

ここでの前提は、iptables を設定するホストが Domain Name System のサーバーとして機能するのではなく、DNS のクライアントとして動作する、ということです。

ステート を利用して、通信を許可できます。

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

ステートを使わずにDNSクライアントとして問い合わせをする

iptables の下記設定を追加します。

-A INPUT -p udp --sport 53 -j ACCEPT
-A OUTPUT -p udp --dport 53 -j ACCEPT

UDP トラフィックをすべて遮断し、 53 だけ許す例です。

-A INPUT -p udp --sport 53 -j ACCEPT
-A OUTPUT -p udp --dport 53 -j ACCEPT
 
-A INPUT -p udp -j DROP
-A OUTPUT -p udp -j DROP

関連項目




スポンサーリンク