- PR -

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

投稿者投稿内容
coolkun
ベテラン
会議室デビュー日: 2003/11/18
投稿数: 70
投稿日時: 2003-11-18 10:05
iptableについて、お伺いしたいです。

インターネットからWebサーバーへアクセスを許可する場合、自分のサーバーのIPが205.***..**.**だった場合、

iptables -A INPUT -i eth0 -d 205.***..**.** -p tcp --dport 80 -j ACCEPT

とするかと思いますが、

LinuxルータがDNSサービスを受けられるようにする場合、

iptables -A INPUT -i eth0 -s ***.***.***.*** -p udp --sport 53 --dport 1024:65535 -j ACCEPT

とするように、書籍等に書いてあったんですが、***.***.***.***のところに設定するのは、Webサーバーと同じように、自分のサーバーIPを記述すればよいのでしょうか?
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2003-11-18 11:56
 先ず、自分のサブネットに DNS サーバーを立てて、それを外部に
公開したい場合、、どのDNSサーバーからの query も受け付ける
ポリシーならば -s は source(元), -d は destination(先)の
方向付があるので、

***.***.***.*** には 0.0.0.0 を入れれば良いでしょうし、

自分が逆引き権限委譲して貰ってるプロバイダのDNSからの
問い合わせだけに限るなら、そのプロバイダのDNSサーバー
のIPアドレスを入れてあげれば良いでしょう。

ただ、53番ポートは udp だけじゃなく tcp を使う局面も
あるらしいですが・・・(未確認)


 逆に、やりたい事が自分の Linux ルーターに自分の加入してる
ISPのネームサーバーを参照させたいだけであれば、自分のサブネット
から外部へのアクセス「だけ」は全て許可して /etc/resolv.conf
に nameserver を指定してやれば良いだけではないでしょうか
coolkun
ベテラン
会議室デビュー日: 2003/11/18
投稿数: 70
投稿日時: 2003-11-19 11:13
ご回答、ありがとうございます。すみません、質問の記述不足でした。
LinuxルータがDNSサービスを受けられるようにする場合と書きましたが、
というか、名前解決要求に対する応答を認める設定をしたかったのです。

そうすると、***.***.***.***のところに設定するのは、自分のサーバーIPですよね。
あまりよく分かってないので、質問もあいまいになってしまいました。
すみません。


kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2003-11-19 12:31
> ただ、53番ポートは udp だけじゃなく tcp を使う局面も
> あるらしいですが・・・(未確認)

DNS をクライアントとして訊きにいくだけなら udp,
DNS のゾーン情報をやり取りする,つまりマスタとセカンダリが通信するときは tcp.
とても簡単に説明するとそういう事じゃないかと.
ちば
大ベテラン
会議室デビュー日: 2003/02/14
投稿数: 114
お住まい・勤務地: 都内勤務
投稿日時: 2003-11-19 12:52
質問の内容がいまいち理解できませんが、LinuxからISPのDNSサーバに名前解決を依頼し、
その結果を受け取れればよいのですか?
だったらこんな感じですね。

iptables -A OUTPUT -p UDP --dport 53 -d ***.***.***.*** -o eth0 -j ACCEPT
iptables -A INPUT -p UDP --sport 53 -s ***.***.***.*** -i eth0 -j ACCEPT

***.***.***.***にはISPのDNSサーバのIPが入ります。
coolkun
ベテラン
会議室デビュー日: 2003/11/18
投稿数: 70
投稿日時: 2003-11-19 15:58
>そうすると、***.***.***.***のところに設定するのは、自分のサーバーIPですよね。

あ、すみません、また記述間違いをしてしまいました。

そうすると、***.***.***.***のところに設定するのは、ISPのサーバーIPですよね。

と記述したつもりでした。重ねてすみません。

OUTPUTは特に拒否する設定をしてないです。
そうすると、

iptables -A INPUT -p UDP --sport 53 -s ***.***.***.*** -i eth0 -j ACCEPT

でよいようですよね。
--dport 1024:65535 は必要ないですか?
ちば
大ベテラン
会議室デビュー日: 2003/02/14
投稿数: 114
お住まい・勤務地: 都内勤務
投稿日時: 2003-11-20 10:30
引用:

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

OUTPUTは特に拒否する設定をしてないです。
そうすると、

iptables -A INPUT -p UDP --sport 53 -s ***.***.***.*** -i eth0 -j ACCEPT

でよいようですよね。
--dport 1024:65535 は必要ないですか?



OUTPUTを拒否していないなら上記のINPUTだけで大丈夫だと思います。
また、--dport1024:65535 は、
「DNSサーバからの応答が自ホストの1024〜65535番ポート」に対して送信されてきます。

個人的にはこれは無くてもいいと思いますよ。厳密なルールを作成されたいのであれば
付けても良いと思いますが、結果に変わりは無いと思います。
coolkun
ベテラン
会議室デビュー日: 2003/11/18
投稿数: 70
投稿日時: 2003-11-20 14:15
わかりました。ありがとうございました。

ただ、もう少し聞いてもいいですか。。?

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

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

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

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