【新連載】samba + LDAPでPDCを作ろう!
6月も下旬になって、ようやく、雨の季節になりましたね。
いや、嬉しいわけでもなんでもなく、鬱陶しいだけですが。
こんにちわ。todaです。
今回のネタは自宅ネットワークにwindowsドメインを立ち上げたので、その記録を紹介します。
といっても、ただのPDCではつまらないので、ユーザデータベースを内部形式であるTDBではなく、LDAPにしました。
一応、念のため。おさらいしましょう。
windowsのファイル共有でおなじみのファイルサーバ(メンバサーバ)は、アカウント情報を一元管理するPDC(プライマリドメインコントローラ)と呼ばれる管理サーバに所属することで、個々のメンバサーバにアカウントを登録することなく、PDC上のアカウントを利用することができます。
このPDCによって構成されるサーバのグループを(windows)ドメインと呼びます。ちなみにPDCが存在しない場合はワークグループと呼ばれます。
windowsファイル共有をUNIX上でエミュレートするソフトとしてのド定番ソフトsambaは、ファイルサーバはおろか、PDCとして動作することも可能です。今回はsambaだけでwindowsドメインを構築します。
さて、sambaによるwindowsドメインの構築を行うとき、運用上の最大の問題はアカウント管理です。
windows共有で使うwindowsアカウントは当然として、sambaがUNIX上で動作している以上、ファイルシステムへのアクセス字にはUNIX上のアカウントによるパーミッションチェックが必要になるため、UNIXアカウントも登録しなければなりません。
この管理がゴチャゴチャになっていると、windows共有の認証は通っているはずなのに、ファイルにアクセスできない(単にUNIXアカウントが無かったり、ファイルのパーミッションチェックに失敗している)ということになります。
アカウント管理の方法としては、sambaの内部形式であるTDBが一般的ですが、これは単純なローカルファイルであり、また、UNIXアカウントも/etc/passwdというこれも単純なローカルファイルであるため、各メンバサーバごとにwindowsアカウントと、UNIXアカウントを登録しなければらなず、また、変更があった場合も各サーバごとに変更を反映させる必要があります。
この問題を解決するための手段として、ユーザデータベースをLDAPサーバに格納して、windowsアカウントも、UNIXアカウントもそこに格納するうという方法があります。
この構成の場合、クライアントがメンバサーバのwindows共有にアクセスを行うと、メンバサーバはPDCへwindowsアカウントの解決を依頼します。
この依頼を受けたPDCはユーザデータベースの格納先であるLDAPを参照して、アカウントの存在確認・認証を行います。
この後、sambaサーバはローカルのファイルにアクセスするわけですが、ここではUNIXアカウントによるファイルアクセスチェックが必要です。
このUNIXアカウントもnss_ldapを経由することで、LDAPサーバを参照することが可能です。
もちろん、sambaサーバ以外のプロセスについても、UNIXアカウントが必要な時はnss_ldapを経由して、LDAPサーバを参照することができます。
LDAPを使うことのメリットは沢山あります。
- オープンな仕様であり、汎用性がある。
- ユーザマネージャ、グループマネージャが不要。ユーザ登録などをスクリプト化ができる。
- samba以外の情報も格納できる。
- (OpenLDAPであれば)レプリケーションによる二重化が簡単。
- データベースをテキストで処理できる。(LDIF形式)
- バックアップが簡単。テキストにエクスポートすればOK。
- 一括登録などや、一括更新も可能。
- UNIXからも、nss_ldapでユーザ名/グループ名を解決できる。
- UNIX上のUID/GIDをメンバサーバ間で統一できる。
- わざわざ、各メンバサーバでユーザ/グループを登録しなくてもよい。
特に最後が重要です。
せっかくPDCを構築しても、ユーザデータベースをTDBにしては、各メンバサーバ上でUNIXアカウントを登録しなければなりません。そうしないと、ファイルシステムにアクセスできなくなります。これではアカウントの一元管理というPDCの重要なメリットが失われます。
LDAPにユーザデータベースを格納すれば、windowsアカウントはPDC経由で、UNIXアカウントはnss_ldap経由でLDAPを参照することができますので、これらの問題を解決することができます。
というわけで、いってみましょう。
基本的な考えは以下の通りです。
- sambaでPDCと、メンバサーバを作成する。
- ドメインは新規に作成する。
- メンバサーバはドメインに参加して、PDCに認証を委譲する。
- ユーザ情報はすべてPDC上のLDAPに格納。
- Linuxファイルシステムにおけるユーザ参照はnss_ldapで解決する。
- ユーザ情報はperlベースのsmbldap-toolsで管理。
- サーバマネージャ、ユーザマネージャは使わない。
インストールの手順は以下の通りになります。
- 1. PDC、メンバサーバに必要なパッケージをインストールする。
- 2. PDCのLDAPサーバを設定する。
- 3. PDC、メンバサーバのUNIXアカウントの解決するために、nss_ldapを設定する。
- 4. PDC、メンバサーバのsambaを設定する。
- 5. LDAPサーバににwindowsドメインの情報、アカウント情報を作成する。
- 6. メンバサーバをwindowsドメインに参加。
次回以降、上記の手順を記してきます。
乞うご期待!
ディスカッション
コメント一覧
まだ、コメントがありません