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
で、修復ついでに、ゾーンファイルの中にサブゾーンへの委任情報を記入する。つまり…
を書き足しておく。
②サブゾーンのゾーンファイルを作成する。
上記の4サブゾーンについてゾーンファイルを作成する。
TTLと、SOAレコード、そしてNSレコードだけあればよいはず。テンプレートとしてはこんな感じか?
とかかな?SOAレコードのパラメータは適宜変更してちょうだい。
③ /etc/named.confを修正し、サブゾーンの設定を追加する。ついでに動的更新まわりの修正
/etc/named.confを修正する。
mysection.mycompany.co.jpへの動的更新を不許可とし、
4つのサブゾーンを作成、そちらへの動的更新を許可してやることとする。
まず、mysection.mycompany.co.jpの部分は…
とかこんな感じに。
そして、4つのサブゾーンについては…
「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のアドレスをきちんと書いておけば問題なく参照できるので、今は目を瞑ることとする…
識者の方、とめ方を知っていたら是非教えてくだしあ。
とにかく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のアドレスをきちんと書いておけば問題なく参照できるので、今は目を瞑ることとする…
識者の方、とめ方を知っていたら是非教えてくだしあ。
コメント 0