- PR -

iptablesの設定(LinuxルータがDNSサービスを受けられるようにする場合)

投稿者投稿内容
ちば
大ベテラン
会議室デビュー日: 2003/02/14
投稿数: 114
お住まい・勤務地: 都内勤務
投稿日時: 2003-11-20 16:11
引用:

coolkunさんの書き込み (2003-11-20 14:15) より:

自分のサーバーにDNSサーバーもたて、正引きを設定し、逆引きはクラスC未満なのでプロバイダが設定するとして取りあえず設定だけした場合、上記の設定は必要ですか?

名前解決要求に対する応答というのは、自分のサーバーにDNSサーバーをたてた場合は必要ないですか?

それともiptablesで、別の記述が必要ですか?



厳密には全く同じ設定ではありませんが、必要です。
自前でDNSサーバを立てても、そのDNSサーバが名前解決できる範囲は限定されますよね?
たとえばドメイン名が"example.com"の場合、自前のDNSサーバでは***.example.comの
名前解決はできますが、その他のドメインの名前解決はできません。

現在自宅でドメインを運用しており、DNSサーバも構築済みです。
その例から言うと、以下の4つのルールが必要です。

# 外部への名前解決を許可するルール
$IPTABLES -A OUTPUT -p UDP -s ***.***.***.*** --dport 53 -o eth0 -j ACCEPT ---@
$IPTABLES -A INPUT -p UDP --sport 53 -d ***.***.***.*** -i eth0 -j ACCEPT ---A

# 外部からの名前解決を許可するルール
$IPTABLES -A INPUT -p UDP --dport 53 -d ***.***.***.*** -i eth0 -j ACCEPT ---B
$IPTABLES -A OUTPUT -p UDP --sport 53 -s ***.***.***.*** -o eth0 -j ACCEPT ---C

※ ***.***.***.*** は自前で立てたDNSサーバのIPアドレス

@、AはDNSクライアントとしてのルール、すなわちこのスレッドの1番最初の書き込み
"LinuxルータがDNSサービスを受けられるようにする場合、"の場合です。

B、CはDNSサーバとしてのルールです。クライアントからのDNSサービスを許可
するために必要です。

さらに立てたDNSサーバがプライマリDNSサーバの場合、セカンダリDNSサーバからの
ゾーン転送を許可するルールが必要になります。

$IPTABLES -A INPUT -p TCP -s ###.###.###.### --dport 53 -d ***.***.***.*** -i eth0 -j ACCEPT
$IPTABLES -A OUTPUT -p TCP ! --syn -s ***.***.***.*** --sport 53 -d ###.###.###.### -o eth0 -j ACCEPT

※ ***.***.***.*** は自前で立てたDNSサーバのIPアドレス、###.###.###.###は
セカンダリDNSサーバのIPアドレス。

iptablesはバイブル的な資料が無いためわかりにくいところが多々あると思いますが
がんばってください
coolkun
ベテラン
会議室デビュー日: 2003/11/18
投稿数: 70
投稿日時: 2003-11-28 14:59
くわしい説明ありがとうございました。頑張ってセキュリティの高いiptablesが記述できるよう頑張ります。でも、実はそれ以前に、インターネットに接続できないです。。
新たに質問をたてたので、分かるようでしたらよろしくお願いします。
「Linuxルーターを通ってBフレッツでインターネットに接続したいのですができません。」
です。

スキルアップ/キャリアアップ(JOB@IT)