2003年3月11日
ユーザ管理を LDAP サーバに集中し、Samba のドメイン管理機能と連携することで、Windows/Linux/UNIX のユーザ管理を統合することが可能になります。
この機能を利用することで、現在、Windows サーバで構築されているファイルサーバ/ドメインコントローラ機能を、Linux 上に構築された Samba サーバへ移行することも可能です。
本ドキュメントは、MIRACLE LINUX を利用して、ユーザ管理の統合や、Linux への移行を実現するための方法について解説します。
- Sambaとは?
Samba(サンバ)は、LINUX/UNIX 上で稼働し、Windows NT/2000 互換のファイル/プリントサービス機能を提供するオープンソースソフトウェアです。
Sambaの開発はボランティアベースにて行われ、既に10年が経過しましたが、最近では IBM や HP などのベンダーによる改良も追加されています。
現在では、Web サーバの Apache などと並んで、LINUX サーバで稼働するファイルサーバソフトウェアとして高い知名度と実績を誇ります。
Sambaが提供する機能には次のようなものがあります。
- ファイルサーバ機能
- プリントサーバ機能
- ドメイン管理機能
- Samba導入のメリット
既に説明したとおり Samba は Windows サーバの互換機能を提供するわけですが、それではなぜ PC サーバに Windows 2000 ではなく LINUX + Samba を採用するのでしょうか?
- ライセンスコストの削減
Windows サーバでは、サーバ OS のライセンスとは別にクライアント数やユーザ数に応じたクライアント・アクセス・ライセンス(CAL)の契約が必要です。
従って、クライアント数やユーザ数の増加に応じてライセンス料が必要となります。
Samba では、そのようなライセンス料は全く必要ありません。
例えば、ファイルサーバ10台、ユーザ数 1000人の環境にファイルサーバを導入した場合のライセンス費用を概算してみますと、次のようになります。
  | Windows 2000 Server | MIRACLE LINUX Standard Edition V2.1 |
サーバライセンス | 130000円 × 10台 | 60000円 × 10台 |
クライアントアクセスライセンス | 5300円 × 1000人 | 0円 |
合計 | 660万円 | 60万円 |
- 高信頼性
Samba サーバを稼働させる環境として、LINUX は既に多数の実績があります。
Linux カーネル/Samba ともに、GPL のもとにソースコードが公開され、世界中の多くの開発者や利用者による稼働確認・開発・修正が行われ、その結果として大変高い信頼性を持っています。
また、LINUX では不要なサービスは簡単に停止できるため、OS 上では Samba が提供するファイルサーバ機能だけを提供するといった運用が簡単に行えます。
なお、弊社で利用しているファイルサーバも既に2年以上(定期点検のための停電時を除いて)、問題無く稼働しています。
- 高性能
Windows と同構成の PC サーバで稼働する Samba ですが、性能面においても遜色無いことが報告されています。
PC Magazine による Samba と Windows の性能検証結果
- 運用コストの低減
-
Samba が提供するサービスは、smbd、nmbd といったデーモンプロセスによって提供されます。Samba の設定を変更した時や、万が一 Samba に何らかの障害が発生した場合も、デーモンプロセスの再起動のみで復旧します。したがって、マシンの再起動を待つ必要もありません。
さらにクラスタ構成をとることで、障害時にはファイルサーバ機能を自動的にフェイルオーバすることも可能です。
-
Samba の設定は、smb.conf と名付けられたテキストファイルに集約されています。
設定自体は、Web インターフェースを利用して設定することも可能です。
そのため運用時に GUI 画面は不要であり、X Window System のためのリソースも必要ありません。
また、設定の変更、適用といった作業もリモート端末から SSH などを利用してログインすることで簡単に実施できますので、遠隔地のファイルサーバの管理も容易となります。
- LDAP とは?
LDAP(Lightweight Directory Access Protocol) は、「ディレクトリ・サービス」と呼ばれるサービスを利用するために定められたプロトコルの1つです。
ディレクトリ・サービスとは、「ディレクトリ」と呼ばれる情報の蓄積場所から、あるキーに関連する情報を取り出す仕組みのことです。
例えば、電話帳は名前をもとに電話番号を取り出すディレクトリ・サービスの1つと言えます。
LDAP は、現在バージョン3が RFC で定義されており、LDAPv3 に対応した製品同士で、情報の交換を行うことができます。
LDAP には、数多くの商用製品もありますが、この文書ではオープンソースソフトウェアである OpenLDAP について紹介します。
LDAPの利用方法は様々ですが、この文書ではネットワーク内のユーザ情報の統合管理に絞って解説をすすめます。
通常、LINUX/UNIX のユーザ情報は /etc/passwd のようなパスワードデータベースに格納されます。このデータベースに格納できる情報は、次のようなものに限られています。
- ユーザ名
- 所属グループ
- パスワード
- ホームディレクトリ
ユーザに関連する情報を新たに格納するためにパスワードデータベースを拡張したいと思っても、実際にはシステム的な制約からパスワードデータベースを拡張することは難しくなっています。
しかし、ユーザ情報を LDAP サーバで管理することで、ユーザに関連する情報を自由に拡張し、簡単に取り出すことが可能になります。例えば、次のようなデータを追加することが考えられます。
つまり、LDAP を活用することで、単にログインアカウントとしてのユーザ管理にとどまらず、LDAP に格納されたユーザ情報を利用して様々なサービスを実現することが可能になります。
図1. LDAP を利用したユーザ管理
|
- OpenLDAP の機能
OpenLDAP は、信頼に足るディレクトリ・サービスを提供するために次のようなさまざまな機能を提供します。
- LDAP v3対応
- アクセス制御
- 通信経路の暗号化
- レプリケーション
- 分散管理(referral)
図2. OpenLDAPの機能
|
もちろん、これだけで全ての機能ではありませんので、その他の多くの機能に関しては、OpenLDAP のドキュメントなどを参照してください。
- Samba + LDAP 導入でユーザ管理統合
ここまで、Samba、OpenLDAP のそれぞれを紹介してきました。この章では、Samba と OpenLDAP を組み合わせることで可能になるユーザ管理の一元化の概要について紹介します。
これまで、Windows ネットワークによって構築されたネットワーク環境に LINUX を導入した場合、LINUX にアクセスするユーザの管理は、Windows とは別に行わなければなりませんでした。
Samba をファイルサーバとして構築した場合にも、Samba をドメインコントローラとして構築したり、Windows サーバで構築されたドメインコントローラでユーザ認証を行ったりすることは可能でしたが、
別途、Samba 用のアカウントを作成したり、LINUX にユーザアカウントを追加したりする必要がありました。
その結果、ユーザ情報は分散し、管理コストの増加を招いていました。
図3. ユーザ情報の分散
|
しかし、Samba2.2.4 から LDAP との連携機能がサポートされたため、LINUX と Windows のユーザ管理の統合を実現できるようになりました。
図4. Samba + LDAP によるユーザ情報の統合
|
さらに LDAP の機能を利用することで、これまで Samba の機能だけでは難しかった可用性の向上や、分散管理などが容易になりました。
|
図5. レプリケーションによる可用性向上 |
|
図6. referral によるユーザ情報の分散管理 |
また、Samba で行われるユーザ認証時間もLDAP利用によって性能向上します。
図7.ユーザ認証時間
|
- Windowsサーバからの移行
ここまで、Samba + LDAP サーバの概要に関して説明してきましたが、既に Windows サーバを導入しているサイトにとっては、Samba + LDAP サーバへ移行するためのパスが用意してあることが重要であると思います。
そこで、Windows サーバからの移行についても簡単に説明を行います。
Windows NT/2000 サーバに登録されている以下のデータに関して、移行のためのツールが用意されています。したがって、基本的なアカウント情報に関しては、このツールを利用することで、簡単に LDAP のデータベースに登録しなおすことができます。
- ユーザアカウント、パスワード
- グループアカウント
- マシンアカウント
移行手順の概要としては次のようになります。
- Windows NT/2000 サーバ上でアカウント情報収集ツールを使用して、アカウント情報を収集
- LDAP サーバにアカウント情報を登録
- Windows サーバを停止し、Samba サーバを起動
図8. Samba LDAP サーバへの移行
|
- 導入モデル例
- 最小構成(MIRACLE LINUXサーバ 1台)
ファイルサーバ、Web サーバ、FTP サーバなどの認証に LDAP データベースを利用することができます。小規模な社内サーバとして利用する場合に便利です。
図9. MIRACLE LINUX サーバ 1台でオールインワンサーバ
|
- 大容量ファイルサーバ(MIRACLE LINUX サーバ 1台 + ストレージ)
Fibre Channel 経由で接続された大容量ストレージを有効活用するため、
複数ドメインの管理を1台の Samba サーバで行います。
ドメインごとのネットワークは分離するため、ドメイン数に応じたネットワークインターフェースが必要となります。
図10. MIRACLE LINUX サーバ 1台で複数ドメイン管理
|
- 高可用性ファイルサーバ(MIRACLE LINUX サーバ 2台 + ストレージ + クラスタソフト)
Samba サーバを PDC、BDC とすることで、どちらかのサーバに障害が発生してもドメイン認証機能、ファイルサーバ機能が稼働するようにします。
ストレージとして SAN を利用しますが、2台のサーバで同じ領域を共用することはできないため、障害発生時にはクラスタソフトのフェイルオーバー機能を利用して、稼働中のサーバにストレージ領域を再割り当てします。
図11. 高可用性ファイルサーバの構築
|
- Windows NT サーバからの移行(MIRACLE LINUX サーバ 1台〜)
既存の Windows NT サーバで構成されたドメイン構成のうち、ドメインメンバはそのままで、ドメインコントローラを Samba に変更するモデルです。
ユーザ情報を LDAP サーバに登録することで、ユーザ情報を集中管理することが可能です。各 Samba サーバは、サーバのスペックやユーザ数などに応じて、LDAP サーバと統合することも可能です。
図12. Windows NT サーバからの移行
|
|
|