SSブログ

WindowsのActive DirectoryとbindによるDNSの連携 やりなおし編 [備忘録]

 自慢じゃないが以下略。
 とにかくWindows Serverがいかにアレで困ったちゃんなのか、世界の端っこで悪口雑言を叫びたいのだが以下略。

 さて。前アーティクルで、「ゾーンデータの動的更新を許可すれば~」みたいなことを書いた。
 が、コレが実に問題のある対応方法であるということが判った(いや…冷静に考えれば最初からわかっていたはずだ!>をれ)ので、別のやり方を探してみた。

 なにが問題だったか。それは…

問題点その1:とにかくWindows Serverがゾーンデータをみるみる書き換えてグチャグチャにしてくれるということ。
 →ゾーンデータにクライアントやサーバを書き足したくなって、ゾーンファイルを開こうものならそこには…orz

問題点その2:動的更新を全て許可してしまっているので、セキュリティもへったくれもない。
 →そうだよね…Windows Serverからはゾーンデータいじりたい放題だものね…orz

 ということで、これらに対する問題を解決すべく立ち上がったのであった!!!!!!!

 前提:
 Windows Server でActive Directoryを運用している。
 Linuxなサーバでbind9を運用していて、なおかつこのbind9をプライマリーでマスターなDNSにして使いたい
 少なくともWindows ServerのIPアドレスは固定されている。(DHCPは使ってない。クライアントは別としても…)

※セカンダリーでスレーブなDNSについては後で考えることにする。


 ここで例示するゾーン、あるいはドメイン名は「mysection.mycompany.co.jp」と仮定する。

 アプローチ:
 Windows Serverからの動的更新を拒否してしまう方法もある。が、しかし、いろいろと問題が多い様子であることから、やはりWindows Serverからの動的更新は許可せざるを得ない様子だ。
 ではどうするか?
 ゾーンデータの全体を動的許可の対象としてしまうから悪いのであったため、Windows Serverにゾーンデータを汚させてやってもよいサブゾーンを作成することでこの問題を回避することにする。

 /var/log/messagesを見たり、ゾーンデータを眺めていると、
    _msdcs
    _sites
    _tcp
    _udp
 というサブゾーン(サブドメイン)を使っているようであった。Windows Serverから動的更新にくるドメイン名・サーバ名等々はには必ずこれらのどれかの名前が入っている。

 つまり…

 mysection.mycompany.co.jp への動的更新は不許可

 にしつつ、

 _msdcs.mysection.mycompany.co.jp
 _sites.mysection.mycompany.co.jp
 _tcp.mysection.mycompany.co.jp
 _udp.mysection.mycompany.co.jp といった4つのゾーンへの動的更新のみ許可

 すれば、もともとのゾーンデータへの汚染は回避されるのではないか!?



 …とか妄想してみた。

 では、やってみよう!

① まずはゾーンデータの修復から…orz

 もともとのゾーンデータ「mysection.mycompany.co.jp」をちゃんと作成しなおす。

 前アーティクルを信じちゃったみなさん…ゴメンナサイ…
 謝罪と賠償は私じゃなくてマイクロナントカに求めてください…orz

 で、修復ついでに、ゾーンファイルの中にサブゾーンへの委任情報を記入する。つまり…
_msdcs    IN NS  dns.mysection.mycompany.co.jp.
_sites    IN NS  dns.mysection.mycompany.co.jp.
_tcp      IN NS  dns.mysection.mycompany.co.jp.
_udp      IN NS  dns.mysection.mycompany.co.jp.

 を書き足しておく。

②サブゾーンのゾーンファイルを作成する。

 上記の4サブゾーンについてゾーンファイルを作成する。
 TTLと、SOAレコード、そしてNSレコードだけあればよいはず。テンプレートとしてはこんな感じか?
$TTL  1d
@  IN  SOA  dns.mysection.mycompany.co.jp  admin.mycompany.co.jp  (
    2010032901
    3h
    1h
    1w
    1h    )
    IN NS  dns.mysection.mycompany.co.jp.

 とかかな?SOAレコードのパラメータは適宜変更してちょうだい。

③ /etc/named.confを修正し、サブゾーンの設定を追加する。ついでに動的更新まわりの修正

 /etc/named.confを修正する。
 mysection.mycompany.co.jpへの動的更新を不許可とし、
 4つのサブゾーンを作成、そちらへの動的更新を許可してやることとする。

 まず、mysection.mycompany.co.jpの部分は…
        zone    "mysection.mycompany.co.jp"    in      {
                type    master;
                file    "db.mysection.mycompany.co.jp.zone";
        };

 とかこんな感じに。
 そして、4つのサブゾーンについては…
        zone    "_msdcs.mysection.mycompany.co.jp"       in      {
                type    master;
                file    "db._msdcs.mysection.mycompany.co.jp.zone";
                allow-update    {
                        192.168.1.1;
                };
        };

 「192.168.1.1」はActive Directoryサーバのアドレスを書き入れる。aclセクションで列挙してもいいね。
 上記の例示では「_msdcs」について記述しているが、同様に_sitesや_tcpや_ucpについても記述してやる。

④ そしてnamedを起動する!

service named start

 とかこんな感じで!!

⑤ Windows Server側のネットワークの設定を変更する。

 Windows Server側の、ネットワーク接続のプロパティを変更し、DNSの参照先をLinuxでbind9なサーバに変更しよう。
 変更が終わったら、コマンドプロンプトを起動して、ipconfig /registerdnsを実行して15分くらい待つ。

⑥ /var/log/messagesとかを監視して設定が変更され、オリジナルのゾーンファイルが汚染されないことを確認する

 ちなみに、/var/log/messagesを見ていると、mysection.mycompany.co.jpゾーンへの更新に拒否されている形跡のログが出てくる。これはどうやら

 Windows Serverが、自分自身のAレコードを動的に追加・更新しにくることが原因らしい。

 とめる方法は現在模索中でよく判っていない。
 が、これはエラーになっていてももともとのゾーンファイルの中にWindows Serverのアドレスをきちんと書いておけば問題なく参照できるので、今は目を瞑ることとする…

 識者の方、とめ方を知っていたら是非教えてくだしあ。

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。