「iptables DNSを許可する」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> iptables でポートをいろいろ塞ぐと DNS 問い合わせをブロックしてしまうことがあ...」)
 
行9: 行9:
  
 
[[Domain Name System|DNS]] 問い合わせは、[[UDP]] が利用されます。
 
[[Domain Name System|DNS]] 問い合わせは、[[UDP]] が利用されます。
そのため、[[iptables]] で domain (53ポート) の通信を許可しないと、外部の[[Domain Name System|DNS]] サーバーを利用した [[名前解決]] ができなくなります。
+
そのため、[[iptables]] で domain (53ポート) の通信が通らないと外部の[[Domain Name System|DNS]] サーバーを利用した [[名前解決]] ができなくなります。
  
 
== 使い方 ==
 
== 使い方 ==
  
 +
=== DNSクライアントとして問い合わせをする ===
 
ここでの前提は、[[iptables]] を設定するホストが [[Domain Name System]] のサーバーとして機能するのではなく、[[Domain Name System|DNS]] のクライアントとして動作する、ということです。
 
ここでの前提は、[[iptables]] を設定するホストが [[Domain Name System]] のサーバーとして機能するのではなく、[[Domain Name System|DNS]] のクライアントとして動作する、ということです。
 +
 +
[[iptables 接続状態|ステート]] を利用して、通信を許可できます。
 +
<syntaxhighlight lang="bash">
 +
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
 +
</syntaxhighlight>
 +
 +
=== ステートを使わずにDNSクライアントとして問い合わせをする ===
  
 
[[iptables]] の下記設定を追加します。
 
[[iptables]] の下記設定を追加します。
行32: 行40:
 
== 関連項目 ==
 
== 関連項目 ==
 
* [[iptables]]
 
* [[iptables]]
 +
* [[iptables 接続状態]]

2013年8月17日 (土) 20:03時点における版

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

関連項目