|
Linux magazine 2003年12月号掲載
第1章 Samba3.0の導入
Samba3.0の概要
2003年9月25日、SambaのメジャーバージョンアップとなるSamba3.0.0がSamba Teamより正式リリースされました。前バージョンといえるSamba2.2.0が公開されたのが、2001年4月ですので、Samba3.0は約2年半ぶりのメジャーバージョンアップとなります。Samba2.2のマイナーバージョンアップでもさまざまな機能強化が行われてきましたが、今回のSamba3.0は実装も含めてSamba2.2から大きく変更されました。 Samba3.0.0のリリースノートから、主要な機能強化を抜粋すると、以下のような項目があげられています。
これらの機能のターゲットは、より大規模な環境においてSambaを導入するために必要とされてきた機能といえます。したがって、個人ユーザレベルでSamba3.0にバージョンアップするメリットはそれほど感じないかもしれませんが、組織内のファイルサーバやドメインコントローラとして導入する場合には、非常に有用な機能が追加されたいえます。
【図1-1】 Samba3.0の利用例
そこで、Samba3.0を実際に導入したいと考えているユーザのために、Samba2.2から変更された点を中心に、Samba3.0の具体的な利用方法について、解説していきます。 本稿では、これまでSamba2.2を利用してきたユーザのための解説を前提としているため、Samba2.2から変更されていない点に関しては詳細な説明は行いません。 基本的な設定などは必要に応じて日本Sambaユーザ会(http://www.samba.gr.jp)などから提供されているSamba2.2のドキュメントなどを参照してください。
Samba3.0のインストール
Linuxディストリビューションでは、SambaはRPMなどのパッケージ形式で提供されていますが、今回はSambaをソースからインストールする方法で説明を行ないます。現在、Samba3.0は活発に開発が行われていて、頻繁にバージョンアップされていますので、ソースから導入する方法を覚えておけば、最新版を試しやすくなります。今回は、MIRACLE LINUX Standard Edition V2.1でインストールを行ないました。
ライブラリの導入
Samba3.0は、文字コードの変換にiconv()を利用します。iconvライブラリは、glibcに含まれているので改めて導入する必要は無いように思えますが、実際には日本語版Windowsの文字コードであるCP932とUnicode間のマッピングがWindowsとLinuxで異なるため、Sambaの利用時に問題が生じます。 この問題を解決するために、glibcとlibiconv用のパッチが森山氏により提供され、glibcの2.3.2以降に取り込まれています。しかし、MIRACLE LINUX Standard Edition V2.1をはじめとして、現時点で利用可能なディストリビューションのほとんどで、この修正は取り込まれていませんので、ユーザが各自で導入する必要があります。 導入方法としては、glibcを修正する方法と、パッチを適用したlibiconvを導入する方法がありますが、今回は他のアプリケーションへの影響が少ないlibiconvを導入する方法を説明します。 iconv、libiconvのパッチ
まず、森山氏のページより、libiconv-1.8-cp932-patch.diff.gzをダウンロードします。libiconvは http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.8.tar.gz よりダウンロードしてください。 libiconvの導入は、【リスト1-1】にしたがって行ってください。導入したlibiconvのライブラリは/usr/local/配下にインストールされます。
Samba3.0.0のコンパイル
LDAPを利用するためにはopenldap-dev、Active Directoryを利用するには、krb5-libs、krb5-devパッケージが必要ですので、Sambaのコンパイル前に、パッケージがインストールされているかどうか確認しておきます。 次にlibiconvライブラリを正常にリンクするためにBugzillaに登録されているパッチ(https://bugzilla.samba.org/show_bug.cgi?id=570)を適用してから、configureスクリプトを生成し直します。 MIRACLE LINUX V2.1では、autoconf-2.53をインストールする必要がありますので、autoconf253-2.53-3.noarch.rpmを先にインストールしておきます。
次にconfigureを行いますが、本ドキュメントで説明している機能に関しては、特にオプションを付ける必要はありませんが、SWATの認証のために、--with-pamを追加すると良いでしょう。
最後にrootユーザで、"make install"を行うと、実行プログラムが /usr/local/sambaにインストールされます。 【リスト1-2】 Samba3.0のコンパイル
smb.confの設定
Sambaの設定は、smb.confファイルで行います。
それ以外の基本的な設定はSamba2.2と同じです。利用できないパラメータが含まれていないかどうかは、testparmコマンドを使うと確認できますので、設定後には必ずtestparmで確認しましょう。 【リスト1-3】 smb.confの基本設定(サンプル)
Sambaサーバの動作確認
前述の基本設定で、Sambaサーバをファイルサーバとして利用可能になりましたので、smbdとnmbdを起動しましょう。 【リスト1-4】 Sambaサーバの動作確認
【画面1-2】 WindowsからSambaサーバにアクセス
グループマッピング機能
Samba3.0では、WindowsのグローバルグループとLinuxのグループをマッピングすることが可能です。 【リスト1-5】にはWindowsの"MIRACLE TEAM"グループにユーザsuzukiを所属させる例を載せました。Windowsから確認すると、画面 1-3 のようにMIRACLE TEAMグループが表示されます。
【画面1-3】 グローバルグループの利用
第2章 Windowsドメインの構築
Windowsサーバは、ドメイン管理機能を提供します。ドメインを構築することでユーザ認証の処理をドメインコントローラと呼ばれるサーバに統一することができ、ユーザ管理の一元化が可能になるため、会社などの組織においては、ドメイン運用を行うことで、ユーザ管理コストの低減というメリットがあります。 Windowsの提供するドメイン管理機能は、WindowsNT 4.0のドメイン管理機能(NTドメイン)と、Windows 2000 Server以降のActive Directory機能の2種類があります。
Sambaでは、Samba2.2からドメイン・コントローラの機能がサポートされていますが、Samba3.0ではドメイン関係の機能が特に強化されています。
Samba3.0のドメインコントローラ機能は、NTドメイン相当であり、Active Directoryサーバの機能は提供しません。
【図2-1】 Samba3.0のドメイン関連機能
この章では、Samba3.0によるドメインコントローラ構築の基本設定を説明し、さらにLDAPサーバと連携するドメインコントローラの構築方法について解説します。
ドメイン・コントローラの基本設定
ドメイン・コントローラには、プライマリ・ドメイン・コントローラ(PDC)と、バックアップ・ドメイン・コントローラ(BDC)の2種類があります。 まずは、Samba3.0をPDCとして構築するための設定を【リスト2-1】を参照しながら説明します。Samba3.0をPDCとして構築するためには、[global]セクションに次の設定を行う必要があります。
以上の設定を行ってSambaを起動すれば、Samba3.0をPDCとして利用することができます。ここでは、さらにいくつかのドメイン管理機能の利用を紹介しておきます。
PDCの起動
これらの設定を完了したら、ユーザに提供する共有フォルダや、共有プリンタの設定を行っておきます。profile用の共有や、NETLOGON共有のディレクトリなども忘れず作成しておきましょう。 全ての設定を完了したら、smbdとnmbdを起動します。このとき、ネットワーク内に同じドメイン名が設定されたドメインコントローラが稼働していると、そのドメインコントローラの動作に影響を与えてトラブルのもととなるので、ドメイン名の設定に注意しましょう。
ユーザ管理
ユーザ情報の管理は、smbpasswdコマンド、pdbeditコマンドのどちらかを利用します。バックエンドデータベースとしてtdbsam形式を選択したときには、smbpasswdで設定できないパラメータもありますので、ユーザ管理にはpdbeditコマンドを利用しましょう。
【リスト2-2】 ユーザアカウントの管理
ドメイン管理者の作成
smb.confの"domain admin"パラメータで指定したドメイン管理者を作成し、パスワードを設定しておきます。 【リスト2-3】 ドメイン管理者の登録
マシンアカウントの登録
ユーザのクライアントをドメインに参加させるには、マシンアカウントをドメインに追加しなければなりません。ただし、クライアントがWindows95/98/Meの時は必要ありません。 ユーザアカウントと同様で、最初にuseraddコマンドでコンピュータ名をLinuxのユーザ情報に追加します。このときには、ユーザ名として'コンピュータ名$'を登録します。続いて、pdbeditコマンドで、-mオプションを指定してマシンアカウントを登録します。 【リスト2-4】 マシンアカウントの登録
Windowsクライアントの操作
マシンアカウントの登録が完了すれば、それぞれのクライアントをドメインに参加させることが可能になります。Windows XP Professionalの場合は、次の操作を行ってドメインに参加します。
以上の操作を、ドメインに参加する各クライアントごとに実施してください。
ユーザのパスワード変更
ユーザは、ドメインログオンしているWindowsクライアントから、パスワードの変更を行うことができます。ドメインログオンしている状態で、「CTRL」+「ALT」+「DELTE」を同時に押し、画面2-5を表示します。 【画面2-5】 パスワードの変更 「パスワードの変更」を選択し、「古いパスワード」、「新しいパスワード」、「新しいパスワード確認入力」にそれぞれパスワードを入力します。パスワードが変更されれば、画面2-6が表示されます。 【画面2-6】 パスワード変更に成功
第3章 信頼関係の構築
Samba3.0の新機能として、ドメイン間の信頼関係の構築が可能になりました。ドメイン間で信頼関係を結ぶことによって、それぞれのドメインに登録されたユーザが、互いのドメインのリソースを利用可能になります。
信頼関係の構築
コンピュータ名がSAMBAPDC、ドメイン名がSAMBADOMとして、PDCになっているSambaサーバに登録されているユーザが、Windows NT4.0で構築されたドメイン(ドメイン名:NTTEST) のリソースを利用可能にするためには、次の手順にて「信頼される側(trusted)のドメイン」アカウントを作成しなければなりません。
【リスト3-1】 trustedドメインアカウントの作成
Windows NT4.0 Serverの操作
Windows NT4.0 Serverのユーザマネージャーを起動し、「原則」→「信頼関係」を選択します。 「信頼される側のドメイン」の「追加」ボタンをクリックすると、アカウント名とパスワードの入力画面が表示されますので、Sambaのドメイン名と、trustedドメインアカウント作成時に設定したパスワードを入力します。 信頼関係の確立に成功すると、成功したメッセージが表示されます。 【画面3-3】 信頼関係の成立
双方向の信頼関係
信頼関係を相互に結ぶためには、「信頼する側(trusting)のドメイン」としてSambaのドメインを登録しなければなりません。
「信頼する側のドメイン」にSambaのドメインを追加したら、Sambaサーバ上で、netコマンドを使用して、信頼関係を結ぶ作業を行います。 【リスト3-2】 netコマンドによる信頼関係の確立
winbindの導入
前述の操作で、ドメイン間の信頼関係を結ぶことができましたが、実際に信頼関係を利用してSambaサーバで別ドメインのユーザ認証を行おうとすると、ユーザ認証に失敗します。 そこで、Samba3.0では、winbindの自動ユーザ作成機能を利用することで、ユーザ管理の手間を削減できるようになっています。
winbindのインストール
winbindは、LinuxのNSS(Name Service Switch)機能や、PAM(Pluggable Authentication Modules)機能といったユーザ情報の管理機能に、winbind用モジュールを追加することで、機能を追加します。
そのために、まずライブラリの導入から行います。 【リスト3-3】 winbindライブラリのインストール 続いて、NSSがwinbindモジュールを利用するように/etc/nsswitch.confを修正します。修正は、【リスト3-2】 のように行なってください。 【リスト3-4】 nsswitch.confファイルの設定
smb.confの修正
winbindを動作させるために必要ないくつかのパラメータがありますので、smb.confに設定します。
【リスト3-5】 winbindを利用するためのsmb.conf
winbinddの起動
以上の設定で、winbindを利用するための設定が完了したので、さっそくwinbinddを起動しましょう。Samba3.0では、winbindの性能向上のため、winbinddのデュアルデーモンモードがデフォルトとなっていて、winbinddのプロセスが2つ起動します。 【リスト3-6】 winbinddの起動
winbind機能の確認
winbindが動作していることを確認するには、getentコマンドを利用するのが簡単です。
なおこのようにして自動に作成されたWindowsアカウントとLinuxアカウントのマッピング情報は、"/usr/local/samba/var/locks/winbindd_idmap.tdb"ファイルに格納されています。このファイルを削除してしまうと、マッピング情報が失われるので気を付けましょう。 【リスト3-7】 winbindの動作確認 このようにして信頼関係のあるドメインのユーザ情報が取得できるようになれば、他のドメインのユーザであっても、簡単にSambaサーバのリソースを利用できます。 また、システム管理者も、他のドメインのユーザのためにわざわざユーザ登録を行う必要が無くなりますので、信頼関係を利用しようと思った時には、必ずwinbindも一緒に活用しましょう。
PAMモジュールの設定
ここまでの説明で理解できたと思いますが、winbindの機能のポイントは、LinuxのユーザアカウントをWindowsのユーザ情報から自動で作成できることです。 Sambaのコンパイル時には、PAM用のモジュールが作成されないため、nsswitchディレクトリにモジュールを作成し、PAMのライブラリのディレクトリにコピーを行いましょう。 【リスト3-8】 winbindによるPAMの活用
続いて、PAM認証で、winbindが利用されるように、/etc/pam.d/配下のPAMの設定ファイルを変更します。 【リスト3-9】 PAMの設定
以上の操作で、例えばsshからのログインで、Windowsのユーザアカウントとパスワードを利用できるようになりますが、このときのユーザ名は"ドメイン名\ユーザ名"を利用しなければなりません。
【リスト3-10】 winbind separatorの変更 このようにして、winbindを利用することでユーザ管理の手間を減らすことができますが、Samba3.0ではその他のモードにおいてもwinbindの利用範囲が広がっています。 例えば、前述のプライマリ・ドメイン・コントローラとして動作しているときに、winbindと組み合わせると、ドメインに参加するマシンのマシンアカウントを自動で作成することが可能になりますので、前もってマシンアカウントを作成しておく必要が無くなります。 また、自動で作成されたアカウント情報は、pdbeditコマンドによって操作することが可能です。
第4章 SambaとLDAPの連携
LDAP(Lightweight Directory Access Protocol)は、データの参照、検索に特化したデータベースであるディレクトリサービスのためのアクセスプロトコルです。 ディレクトリサービスとは、DNSや電話帳のように、あるキーをもとに関係する情報を提供するサービスです。
LDAPは現在LDAP v3と呼ばれる標準プロトコルがRFCで定義されており、LDAP v3に準拠したLDAPサーバ製品が多数提供されています。
Samba2.2からLDAPサーバとの連携によって、SambaのユーザアカウントをLDAPに格納できるようになりましたが、Samba3.0ではさらにLDAPサーバとの連携機能が強化されました。 この章では、OpenLDAP 2.0とSamba3.0を連携してドメインコントローラを構築する方法を説明します。 【図4-1】 SambaとLDAPサーバの構成例 今回説明するのは、一番基本的な構成で、1台のサーバに、SambaのPDCとLDAPサーバを構築します。SambaとLDAPの両方を間違いなく設定する必要がありますので、一つずつ確認しながら設定を行ってください。 【図4-2】 今回のシステム構成
LDAPサーバの設定
それではまず最初にLDAPの設定を行います。 LDAPサーバの設定は、/etc/openldap/slapd.confファイルで行います。 Sambaとの連携を行うためには、次の項目を設定してください。
スキーマの設定
LDAPでは、利用するオブジェクトを定義するために、スキーマを定義する必要があります。 【リスト4-1】 スキーマの設定
suffixの設定
LDAPのデータはツリー構造で管理しますが、suffixは、その管理構造の頂点を表します。通常は、ドメイン名をベースに命名します。LDAPの各エントリは、識別子(DN)と呼ばれます。 今回のLDAPのデータ構造は図4-3のように構成しますので、suffixの設定は、次のようになります。 【図4-3】 LDAPのツリー構造
管理者ユーザの設定
LDAPサーバを管理する特権ユーザの設定を行います。 暗号化したパスワードを生成するには、slappasswdコマンドに、-hオプションと暗号化の形式(MD5やSHAなど)を指定して実行すると、入力したパスワードを暗号化した文字列が表示されます。 【リスト4-2】 暗号化パスワードの生成
アクセス制限の設定
LDAPのユーザ情報には、Windows用のパスワードと、Linux用のパスワードの両方の情報が格納されます。これらのパスワードは同期する必要があるので、パスワードの変更操作をSamba経由に制限しておく必要があります。
Sambaは管理者権限でLDAPサーバにアクセスするので、パスワード情報に関しては管理者のみ書き換え可能としておきます。 【リスト4-3】 slapd.confの設定(サンプル)
LDAPサーバの起動
以上の設定を完了したら、LDAPサーバを起動します。 【リスト4-4】 LDAPサーバの起動
Sambaの設定
SambaとLDAPを連携するときには、smb.confにLDAPにアクセスするための設定を追加しなければなりません。
その他、第2章のドメインコントローラの設定、第3章のwinbind関連の設定なども同様に設定しておきます。 【リスト4-5】 LDAP連携時の smb.conf設定(サンプル)
管理者パスワードの設定
既に説明したとおり、SambaはLDAPの管理者権限でLDAPサーバに接続します。そのためLDAPの管理者のパスワードをどこかに設定しておく必要がありますが、smb.confに直接パスワードを記述したくありませんので、smbpasswdコマンドの-wオプションを用いてsecrets.tdbファイルに管理者パスワードを設定する仕様になっています。 この操作を忘れるとLDAPサーバから全く情報を取り出せないので必ず実行してください。また、LDAPサーバ側の設定でパスワードを変更したときも、再度smbpasswd -wを実行しなければならないことを忘れないでください。 【リスト4-6】 管理者パスワードの設定 以上の設定を完了したら、Sambaを起動します。このときに第3章で説明したwinbindの設定も済ませて、winbinddを起動することも忘れないようにしましょう。
NSSとPAMの設定
LDAPに登録したユーザ、グループをLinuxで利用するためには、winbindと同じようにNSS(Name Service Switch)とPAM(Pluggable Authentication Module)の設定を行う必要があります。
winbindの場合は手動で設定を行いましたが、LDAPの場合はauthconfigコマンドを利用すると簡単に行なえます。
authconfigコマンドの実行は、/usr/sbin/authconfigを実行して、LDAPサーバと、ベースDNとして suffix を指定するだけです。
また、LDAPサーバが停止していると、rootユーザすらログインできなくなってしまうため、PAMのsystem-authにauthinfo_unavail=ignoreの設定を追加しておきましょう。
smbldap-toolsのインストール
SambaとLDAPを連携するときには、Samba3.0に同梱されているsmbldap-toolsを利用すると、LDAPでのユーザ管理操作などを簡単にすることができます。
Perlモジュールのインストール
Samba3.0のsmbldap-toolsは、PerlのNet::LDAPモジュールを必要とするので、まず最初にPerlのモジュールをインストールします。 LDAPモジュールを導入するためには、依存するいくつかのモジュールを導入する必要がありますので、下記の手順で導入してください。
smbldap-toolsのインストール
続いて、smbldap-toolsのインストールを【リスト4-9】 に従って行います。
smbldap-toolsは、/usr/local/sbinにインストールすることが仮定されていますので、その他の場所にインストールする場合には、何箇所かスクリプト内部を変更する必要があります。
smbldap-toolsの設定
続いて、smbldap-toolsを利用するために、smbldap_conf.pmの設定を行います。以下では、smbldap_conf.pmに登場するパラメータの順番に説明を行います。
【リスト4-11】 smbldap_conf.pmの設定例
slappasswdのパスの設定
smbldap-passwd.plにパスワードの暗号化のために、slappasswdコマンドを利用する箇所がありますが、パスが指定されていないため、実行環境によってはパスワードの変更に失敗することがありますので、次のように修正しておきましょう。
初期ユーザアカウントの登録
smbldap_conf.pmの設定を全て完了したあとに、LDAPに初期データを登録します。 初期データの登録は、smbldap-populate.plのスクリプトで行ないます。このスクリプトでは、ドメイン管理ユーザや、いくつかのグループなどを登録します。正常に登録できると、【リスト4-12】のように登録されたエントリが表示されます。
ドメイン管理者の設定
初期データの登録で、ドメイン管理者用としてAdministratorユーザが登録されています。このユーザをドメイン管理者として扱うために、smb.confのadmin usersパラメータを設定します。(設定例では設定済です)
ドメインにマシンを参加させる際に必要となりますので、ドメイン管理者のパスワードを設定しておきます。 【リスト4-13】 ドメイン管理者のパスワード設定 以上で、Samba LDAPシステムの導入は完了です。
Samba LDAPの運用
初期設定は完了しましたので、LDAPを運用することが可能になりました。
ユーザの作成・削除・変更
ユーザの作成は、smbldap-useradd.plで行います。 必ず-aオプションを付けて、Sambaアカウントを作成しましょう。 ユーザのパスワードの設定は、smbldap-passwd.plで行います。 ユーザ情報の参照は、smbldap-usershow.plにユーザ名を指定することで可能です。 ユーザ情報の変更は、smbldap-usermod.plに、パラメータごとのオプションを指定して行います。指定できるパラメータは-hオプションで確認できます。 なお、Samba用の属性に関しては、pdbeditで変更することもできますが、Linux用のアカウントに関する属性は変更できないため、smbldapコマンドを利用するほうが便利です。 【リスト4-14】 Samba LDAPのユーザ管理
マシンアカウントの登録
ユーザの端末をドメインに参加させるためには、マシンアカウントを登録しておく必要があります。 マシンアカウントの登録は、smbldap-useradd.plに-wオプションと、'コンピュータ名'を指定して行います。
パスワード設定
一般ユーザはパスワードの変更を、次の2つの方法で行うことができます。
前述のldap passwd syncパラメータを設定しておくことを忘れないようにしましょう。 【リスト4-15】 ユーザのパスワード変更
第5章 ドメインメンバーシップ機能
既にWindowsサーバでドメイン運用しているネットワーク環境にSambaを導入するときには、ドメインメンバーとして参加させます。 ドメインメンバーとして参加した場合、ユーザ認証はドメインコントローラで行われるため、ユーザのパスワード管理などをSambaサーバで行う必要が無くなり、ファイルサーバの追加の場合などには便利です。 Samba3.0では、従来のNTドメインへの参加機能に加えて、Active Directoryへの参加が可能になりました。 【図5-1】 ドメインへの参加
NTドメインへの参加
まず最初にsmb.confの設定を行ないます。また、第3章で説明したwinbindの設定も行っておきましょう。
【リスト5-1】 smb.confのドメインメンバ設定 smb.confの設定が完了したら、netコマンドを使って、ドメインに参加しましょう。"Joined domain"のメッセージが表示されれば、ドメインの参加は成功しています。 サーバがWindows2000 Serverの場合には、「Active Directory ユーザとコンピュータ」の画面で、コンピュータアカウントが登録されていることを確認できます。 【リスト5-2】 ドメインへの参加 【画面5-2】 コンピュータアカウントの確認 あとは、smbd、nmbd、winbinddを起動すれば、ファイルサーバとして利用可能になります。 Samba3.0では、winbindのアカウント自動作成機能を利用できますので、Sambaサーバ側で特にユーザアカウントを管理する必要が無く、適切な初期設定だけで運用することができます。
Active Directory連携
Samba3.0の新機能として、Acitive Directoryにメンバーサーバとして参加できるようになりました。 【図5-3】 Active Directory連携の構成
パッケージの確認
Active Directory機能を利用するためには、Sambaが、KerberosとLDAP機能を有効にしてコンパイルされている必要があります。
Active Directoryの連携を試す前に、lddコマンドなどで、きちんとコンパイルされているか確認しておきましょう。 【リスト5-3】 Kerberos、LDAPライブラリの確認
smb.confの設定
Active Directoryと連携するときには、次のパラメータを設定します。
【リスト5-4】 smb.confのActive Directory連携設定
kerberosの設定
次にKerberosの設定を行います。設定ファイルは、/etc/krb5.confです。
【リスト5-5】 krb5.confの設定
時刻同期の確認
Kerberosでは、チケットの有効期限などでシステムの時刻が重要な要素となっています。 したがって、Windowsサーバと、Sambaサーバの時刻が同期されていることを確認しておきましょう。 smb.confを設定した後であれば、Windowsサーバの時間はnetコマンドで確認することができるので、Linuxのdateコマンド等で時刻を調整しておきましょう。 【リスト5-6】 サーバの時刻確認
kinitの実行
smb.conf、krb5.confの設定が完了したら、kinitコマンドを実行します。 kinitコマンドは、Kerberos認証に使われるチケットを受け取るためのコマンドです。 ここでの注意点として、WindowsサーバでActive Directoryを構築した後に、Administratorのパスワードを1度も変更していない場合、【リスト5-7】 のようにエラーとなります。この場合には、Administratorのパスワードをいったん変更してから、kinitを実行してください。 なお、チケットの取得を確認するためには、klistコマンドを実行します。
Active Directoryへの参加
チケットが取得できたら、あとは、netコマンドでActive Directoryに参加するだけです。 Active Directoryに参加するときには、netコマンドのプロトコルとしてadsを指定することに気を付けましょう。 問題無く参加できれば、"Joined"のメッセージが表示されます。 Windowsの「Active Directory ユーザとコンピュータ」から確認すると、コンピュータのプロパティに「DNS名」が設定されていることが、NTドメインの参加と異なることが分かります。 【リスト5-8】 Active Directoryの参加 【画面5-4】 Active Directoryに参加したSambaサーバ
Sambaの起動
Active Directoryに参加できたら、smbd、nmbd、winbinddを起動しましょう。
第6章 Windows NT4.0サーバからの移行
Samba3.0は、NTドメインで提供されるほとんどの機能をサポートしたことにより、Windows NT4.0の代替として、ドメイン構成を変更せずにそのまま置き換えることが可能になりました。 さらに、新しく追加された net vampire機能を利用することで、ユーザ情報の移行も大変簡単になっています。そこでこの章では、net vampire機能を使ってNT4.0サーバから、Samba3.0へ移行する手段を紹介します。
net vampire機能
net vampire機能は、Samba3.0をドメインのBDCとして構成し、PDCからアカウント情報のコピーを受け取る機能と思えば良いでしょう。 コピーを受け取った後には、NT4.0 Serverを停止し、SambaサーバをPDCとして構築することで、サーバの置き換えが完了します。 Samba2.2でNT4.0のドメインから移行しようとすると以下のような手順が必要でした。
Samba3.0では、移行にかかわる作業を全てLinux側で行うことが可能となり、非常に使い勝手が良くなりました。
tdbsamへのアカウント情報の移行
tdbsamデータベースにNT Serverのアカウント情報を移行するのは非常に簡単です。 第2章のドメインコントローラの構築と、第3章のwinbindの導入にしたがって、最終的に構築したいPDCとしてsmb.confのパラメータを設定しておいてください。 移行において、winbindも必要となりますので忘れず設定しておいてください。 ただし移行時にはBDCとして振舞う必要があるので、次のパラメータの設定に気を付けましょう。
smb.confのBDC設定
【リスト6-1】 SambaのBDC設定
winbindとの連携によるアカウントの移行
smb.confの設定が完了したら、netコマンドでNT Serverのドメインに参加します。 このとき、smbdやnmbdは稼働する必要はありません。
次にアカウント情報の移行を行いますが、移行のためにLinux用のアカウントを作成する必要があります。 そして最後に、netコマンドのvampire機能によってユーザ情報を移行します。 なお、winbindによって自動作成されるLinuxのユーザアカウント情報は、/usr/local/samba/var/locks/winbindd_idmap.tdbに格納されています。 また、tdbsam形式のSambaのユーザアカウント情報は、/usr/local/samba/private/passdb.tdbに格納されています。 アカウントの移行に失敗した時には、winbinddを停止してから、これらのファイルを削除すれば、データの入っていない状態に戻すことができます。 【リスト6-2】 tdbsamでのアカウントの移行
LDAPへのアカウント情報の移行
LDAPにアカウント情報を移行する場合は、第4章で説明したLDAPとSambaの設定を行っておきます。ここではtdbsamの手順と異なる点だけ説明します。
【リスト6-3】 ユーザ管理スクリプトの設定
アカウント情報の移行
LDAPサーバとSambaサーバの設定が完了したら、LDAPサーバだけを起動し、smbldap-populate.plコマンドで、初期データの登録を行います。 このとき、-bオプションを指定し、guestアカウントとして、Guestを作成しておきます。(Guestアカウントだけ移行に失敗するため) また、Administratorは後程NT Serverからアカウント情報を取得するときに重複してエラーとなりますので、アカウントを削除しておきます。 次に、Sambaが動作していない状態で、netコマンドでドメインに参加します。 このときに、NT Serverの管理者のパスワードを入力します。 最後に、netコマンドのvampire機能を使って、ユーザをLDAPに登録します。以上でデータの移行は完了です。 後は、NT Serverを停止し、os levelとdomain masterを変更して、Sambaサーバを起動します。
LDAPサーバのアカウント情報は、/var/lib/ldap/に格納されていますので、やり直したいときは、LDAPサーバを停止してから、/var/lib/ldap/配下のファイルを全て削除してください。 【リスト6-4】 LDAPでの アカウントの移行
|
|
|