LinuxとSambaを活用して,Windowsネットワークのファイル/プリント・サーバーを構築しよう。本セミナーは,Linuxの基本事項を含めてSambaの使い方を分かりやすく解説する。今回から,WindowsからSambaへの移行を取り上げ,まずはSambaマシンをNTドメインに追加する。

(ミラクル・リナックス 小田切 耕司)

 Microsoft Windows Server 2003のパッケージ製品の出荷が2003年6月25日に始まり,移行を検討されている方もいることだろう。ただ,Windows NT4.0や2000から同じエディションのWindows Server 2003に移行するケースや,「ソフトウェア アシュアランス」(ライセンスをまとめて購入する企業ユーザー向けに有償提供される,最新版の導入/利用権)を購入している場合を除き,Windows Server 2003を導入するにはライセンスを新規に購入する必要がある。

 Windows Server 2003への移行作業も容易とは言いがたい。特に,NTドメインからAD(Active Directory)ドメインへの移行には,多くの知識と工数が必要になる。それなら,いっそのことLinux+Sambaに置き換えてしまおうとするユーザーも多く,実際にそうした事例が増えている。

 そこで,NTドメインからSambaのドメインに移行する手順を順番に紹介していく。移行後のシステムは,SambaサーバーをPDC(primary domain controller)とし,ディレクトリ・サービスのLDAP(lightweight directory access protocol)によりユーザーを統合管理できるものである。なお,Windows 2000からの移行も同様の手順で実施できるが,既にADドメインを利用している場合は,Sambaを導入してもCAL(Client Access License)費用の削減は難しいだろう。

 移行手順は以下の通りである。

(1)(PDCとするべき)SambaマシンをNTドメインに追加
(2)NTドメインからユーザー情報,グループ情報を抽出
(3)ユーザー情報,グループ情報をLDAPへ投入
(4)共有データをNTからSambaへコピー
(5)NTドメインのSID(セキュリティ識別子)をSambaへコピー
(6)SambaマシンをLDAP用に修正し,PDCとして設定

移行手順
(1)SambaマシンをNTドメインに追加

 NTドメインをスムーズにSambaに移行するには,Sambaマシンを既存のNTドメインに追加することが第一歩となる。NTドメインでは,ドメイン内のユーザーやグループに対してそれぞれSID(Security Identifier:セキュリティ識別子)という値を割り当てている。既存のNTドメインにSambaマシンを追加することで,このSIDをSambaサーバーに容易にコピーできるようになる。なお,現行のWindowsネットワークがワークグループ構成(ドメイン・コントローラではなく,個々のマシンがアカウント情報を管理する形態)の場合には,SIDをSambaサーバーにコピーしても意味がないので,SambaマシンをWindowsネットワークに追加する必要はない。

 Sambaマシンを既存のNTドメインに追加する際は,Winbindを利用すると作業が容易になり,便利である。Winbindは,NTドメインだけではなく,既存のADドメインにSambaを追加して運用する場合にも有用である。

 まず,Winbindの機能を紹介しよう。

図1●Samba 2.2でのWinbindによるユーザー管理
Windows NT/2000サーバーで,Linux+Sambaのユーザーも一元管理できる。

 Winbindは,LinuxとWindowsの間の統一ログオンを実現する認証デーモンである。つまり,NT/ADドメイン内の(ドメインに参加した)すべてのマシンに対して,同じユーザー・アカウントとパスワードを使ってsshやftp,メール,Web認証ができるようにする(図1[拡大表示])。

 詳しく言うと,Winbindは以下のような機能を提供する。

●アカウント情報の管理

 Windows NT上でユーザーやグループを作成すると,それぞれに前述のSIDが割り当てられる。そのSIDには,アカウントの識別子であるRID(Relative Identifier:相対識別子)が含まれている。RIDは,UNIX/LinuxのユーザーIDであるuidやグループIDであるgidと同様の役割を持つものである。

 Winbindは,RIDをUNIXのID番号(uidやgid)に変換する作業をする。Winbindには,設定時にUNIXのユーザーIDの空間の一部と,グループIDの空間の一部が与えられている。Samba/Linuxユーザーが初めて認証の問い合わせをした際に,Winbindはあらかじめ与えられた番号の中からRIDに対してuidを割り当てる。同様のことをグループについても行う。このようにして,WinbindはWindowsのドメイン・コントローラに登録されたRIDとUNIXのIDを対応付け,そのマップ情報を永続的に(tdbデータベースの中にIDマッピングとして)保存し,その情報に基づいて変換作業を行う。

●結果のキャッシュ

 Winbindのドメイン・メンバー・マシンが発する,ユーザーやグループ名の問い合わせは膨大な数になる。ネットワーク負荷を下げるために,Winbindは情報をキャッシュしておき,再利用する。DC(ドメイン・コントローラ)がユーザーやグループ情報を返すと,DCが使用しているSAM(Security Account Manager。ユーザー情報やパスワード,グループ情報などを保持)のシーケンス番号に沿って,Winbindがその情報キャッシュする。ユーザーやグループ情報が変更されると,そのたびにシーケンス番号が大きくなる(+1される)。キャッシュした内容が期限切れになると,Winbindは保持しているシーケンス番号を送信するようDCに要求を出す。Winbindは2つのシーケンス番号を比較し,異なる場合はキャッシュした内容を破棄し,アプリケーション等からの問い合わせを直接DCに送る。


(次回に続く)