エンタープライズ:特集 2003/07/22 15:00:00 更新


オープンソース Update: Samba 3.0.0の全貌

2003年7月17日、Sambaの次期バージョンである「Samba 3.0.0」のベータ3が公開された。ベータの登場で見えてきた全貌に迫る。

 Sambaは、UNIXのファイルシステムをWindowsネットワークの「共有」としてアクセスできるよう実現するオープンソースソフトウェアで、WindowsホストとUNIXホストが混在したネットワーク上で欠かせない。現在、一般的に使われているSambaは「2.2」系列のものである。

 Sambaチームでは、これとは別に、新たな仕組みや機能を取り入れた次期バージョンの「Samba 3.0.0」の開発を続けてきた。では、現バージョンと比べ、「Samba 3.0.0」はどのように変わるのだろうか。

Samba 3.0.0の新機能

 現時点でアナウンスされているSamba 3.0.0の主な新機能は、以下の通りだ。

1. i18n(国際化)が進められ、パッチを適用せずとも日本語などが正しく扱えるようになる。また、クライアントサーバ間の通信がUnicodeで行われる。

2. i18nの一環として、日本Sambaユーザ会によって国際化されたSWATがマージされる。

3. Windows 2000 Advanced Datacenter ServerおよびActiveDirectoryがサポートされ、それに伴いプリンタ共有機能が改善される。

4. 「LDAP」および「Kerberos」による認証が可能となる。

5. 認証システムがほぼ完全に書き換えられ、強力なカスタマイズが可能となる。

6. UNIX - Windows間でグループのマッピングが可能となる。

7. Stackable VFSが利用可能となる。

8. NTLMv2がサポートされる。

9. Windows NT 4.0 ドメインコントローラとの安全な接続が可能となる。

 日本のユーザにとって最も重要な変更点は、特別なパッチを必要とせず、日本語ファイル名が扱えるようになった点だろう。また、Stackable VFSを利用することで、ウイルスのリアルタイムスキャンができる点なども歓迎すべきものだ。

 2003年3月12日には、Samba 3.0.0に向けての「Feature Freeze」が宣言された。それ以後SambaチームはSamba 3.0.0リリースに向け、テストやバグフィックスの作業を続けている。今後、3.0.0リリースまでに大きな変更がなされる可能性は低いだろう。

国際化に伴う文字コードの扱いの変更

 Samba 3.0.0では、文字コード変換に「iconv()」関数を利用するようになった(これまでのSamba 2.xでは、Samba内部の文字コードの変換ルーチンを利用していた)。このため、文字コードの扱いに関する設定方法が大幅に変更される。日本語環境で利用する場合の設定は、以下の通りだ。

・UNIX側が「EUC-JP」の場合
unix charset = EUC-JP
dos charset = CP932
display charset = CP932

・UNIX側が「Shift JIS」の場合
unix charset = CP932
dos charset = CP932
display charset = CP932

グループのマッピング

 Samba 3.0.0から提供されるグループマッピング機能は、UNIXホスト上のグループと、SambaのNTドメインのグループにすることが可能となる。例えばUNIXホスト上のユーザ「mai」「aika」「miho」が存在し、それらをWindows NTドメインのドメインアドミニストレータにしたい場合は、次のようにすればよい。

 まず、「/etc/group」ファイルを編集し、ドメインアドミニストレータが所属するUNIXグループ(この例ではdomadm)を作成する。

domadm:x:800:mai,aika,miho

 そして、作成した「domadm」グループをWindows NTドメインの「Domain Admins」としてマッピングする。

# net groupmap add ntgroup="Domain Admins" \
unixgroup=domadm

 これで、「domadm」グループに含まれているユーザがドメインアドミニストレータとして認識される。

 ところで、この「net」コマンドは、Samba 3.0.0から新たに採用されたものである。このコマンドを見て、indowsネットワークの「NET」コマンドを連想する方も多いだろう。将来的には、Sambaのコマンド群(「smbpasswd」など)は「net」コマンドに統合されていく予定だ。

Stackable VFS

 VFSモジュールとは、Sambaがクライアントから受け取ったファイル操作のリクエストに対する挙動を変えることが可能なモジュールのことだ。VFSモジュールを使うことで、ファイルの入出力時に決められた変換作業を行ったり、ファイルの検査、もしくはファイルシステム入出力動作を、SQLデータベースへのアクセスなどへ置き換えることなどが可能となる。

 この仕組みを利用することで、Sambaの共有上で「ごみ箱」機能を実現したり、ファイルアクセス時に自動でウイルスチェックを行ったり、あるいはデータベース上に仮想的なファイルシステムを構築することが可能になる。現在提供されているVFSモジュールは、以下が挙げられる。

モジュールモジュールの機能
auditファイルへのアクセスログを、syslogを通して記録する。Samba 3.0標準モジュール。
extd_auditファイルへのアクセスログを、Sambaログファイル、およびとsyslogを通して記録する。Samba 3.0標準モジュール。
recycleSambaで「ごみ箱」を実現する。クライアントによってファイルが削除された場合、自動的に「recycle」ディレクトリに移動する。Samba 3.0標準モジュール。
netatalkAppleTalkプロトコルで共有されているファイルシステムに転送する。これによりWindowsクライアントがSamba経由でAppleTalk共有にアクセスできる。Samba 3.0標準モジュール。
DatabaseFSデモンストレーション目的のVFSモジュール。MySQL上のデータベースを元に、仮想的な共有(読み取り専用)を作り出す。
一次サイト(DatabaseFS)
vscanOpen AntiVirus に対応したウイルススキャンモジュール。ファイル入出力時にウイルスが含まれていないか検査することができる。
一次サイト(openantirus.org)

 これらのVFSモジュールは組み合わせ(Stack)して利用することができる。たとえばauditモジュールとrecycleモジュールを組み合わせ、ファイルアクセスのログを取りながら「ごみ箱機能」を実現することが可能となる。

 VFSはまだ利用可能なモジュールの数が限られており、利用しているユーザも少ないかと思われる。今後Samba 3.0.0がリリースされ、そしてVFSの仕組みがもっと身近なものになれば、様々なVFSモジュールが登場し、利便性や機能の向上に役立つだろう。将来が楽しみな機能だ。

Winbind(NTドメイン上ユーザアカウントの共有)

 Winbindとは、UNIXホストをWindows NTドメインのメンバにすることを可能とする仕組みだ。これを利用することで、SambaがWindows NTのユーザ情報・グループ情報を利用して認証を行えるため、ユーザ情報をWindows NTドメイン側で一括管理できるようになる。

 また、PAM(Pluggable Authentication Modulesの略で、UNIXシステムのユーザ認証などを司る仕組み)にWinbind PAMモジュールを組み込むことで、Windows NTドメインのユーザ情報を利用してTelnet、SSH、FTPへのアクセス認証を行うことも可能となる。

 Winbindは、Windows NTのドメイン機能を利用したネットワークをすでに運用している組織で、新たにSambaベースのファイルサーバを構築したい場合などに有用だろう。

正式リリース時期は

 残念ながら、今のところSamba 3.0.0のリリース日程は決定されていない。しかし、Sambaチームは正式リリースに向けて最後の調整を続けている。ベータ1(6月2日)とベータ3(7月17日)の間で約80項目にわたる微調整や修正がなされたが、ベータ3の修正項目数はベータ2の半分以下となっており、リリースが近まっていることをうかがい知ることができる。Sambaチームには、この調子で最終テストおよびデバッグ作業を慎重に行ってもらい、万全な品質でリリースしていただきたいものだ。

 もし一足先にSamba 3.0の雰囲気を感じてみたくなったら、Samba 3.0.0のベータ版を試してみるのもよいだろう。Sambaチームは不具合の洗い出しのために、ベータ版を公開している。もし不具合を発見した場合はSambaチームにレポートしよう。それで、Samba 3.0.0はリリース品質はさらに高まるはずだ。ただし、あくまでのリリース前の「テストバージョン」であるため、リスクを承知した上で運用しなければならない。

 参考までに、Samba 3.0.0のアルファ版・ベータ版のリリース状況は以下のとおりだ。

Samba 3.0.0 アルファ版・ベータ版リリース状況
7月17日Samba 3.0.0 ベータ3公開
7月1日Samba 3.0.0 ベータ2公開
6月2日Samba 3.0.0 ベータ1公開
3月14日Samba 3.0alpha24公開
3月12日「Feature Freeze」
(リリースに向けエンジニアリングを開始)

関連記事
▼オープンソース Update:Samba

関連リンク
▼オープンソース Update

[長谷川 猛,ITmedia]