連載
» 2004年05月25日 00時00分 公開

Samba 3.0の全貌 改訂版(2):Active Directory参加機能とセキュリティ拡張 (1/3)

前編では、Samba 3.0系列の概要からインストール、文字コード関係の改善点について解説した。後編では、Active DirectoryドメインやNTドメインなど、Windowsドメイン関係の機能およびセキュリティ拡張について説明する。(編集局)

[たかはしもとのぶ,@IT]

Active Directoryへの参加

 Samba 3.0系列は、Windows 2000以降のOSと同様に、Kerberos認証を使ってActive Directoryドメインに参加することが可能です。興味がある方も多いと思いますので、具体的に参加方法を解説しましょう。

 ここでは、misako.w2003ad1.home.monyo.comというFQDNを持つWindows Server 2003のDC(ドメインコントローラ)が存在するW2003AD1.HOME.MONYO.COMというActive Directoryドメインに、MAPLEというコンピュータ名のSamba 3.0.3マシンを参加させる場合を例に説明します。Windows 2000 ServerのActive Directoryドメインに参加させる場合も同様の手順で行えます。

DCのOS :Windows Server 2003
FQDN :misako.w2003ad1.home.monyo.com
Active Directoryドメイン :W2003AD1.HOME.MONYO.COM
Samba 3.0.3マシン :MAPLE(コンピュータ名)
例示用の環境

 なお、Sambaマシン自身がActive DirectoryドメインのDCとして機能することはできません。実装されているのは、クライアントとして参加する部分までとなっています。

■事前準備

 SambaをActive Directoryドメインへ参加させる場合は、Sambaが--with-adsオプション付きでコンパイルされている必要があります。パッケージ版の場合、このオプションが無効な状態でコンパイルされていることはないと思いますが、自分でコンパイルした場合は注意してください。

 また、Kerberos認証が機能するためにはサーバとクライアント間で時刻が同期している必要があります。あらかじめ時刻を合わせておきましょう。

 さらに、Active DirectoryドメインのDCが正しく名前解決できるように、DNSの設定を変更しておいてください。

■設定ファイルの準備

 /etc/krb5.confを以下のように設定するか、既存のファイルに追加、修正します。

[realms]
 W2003AD1.HOME.MONYO.COM = { (1)
 kdc = misako.w2003ad1.home.monyo.com (2)
       }

[domain_realm]
        .w2003ad1.home.monyo.com = W2003AD1.HOME.MONYO.COM (3)
        w2003ad1.home.monyo.com = W2003AD1.HOME.MONYO.COM
/etc/krb5.confの設定例
(1)   Active Directoryドメイン名(Kerberos Realm名)。必ず大文字で記述すること。
(2)   DCのホスト(DCを特定できる名前であれば何でもよい)。
(3)   DNSのドメイン名とKerberos Realm名のマッピング。Active Directoryドメインの場合、Kerberos Realm名はDNSのドメイン名を大文字にしたものになるため、このように記述する。

 また、smb.conf には以下のような記述を行ってください。

[global]
  workgroup  W2003AD1 ←ドメインのNetBIOS名
  realm = W2003AD1.HOME.MONYO.COM
  security = ADS
smb.confの設定例

Active Directoryへの参加

 ここまで準備が整ったら、いよいよActive Directoryへの参加です。まずはAdministrator(もしくはそのほかのドメインにコンピュータを追加する権限を持つアカウント)としてActive Directoryにアクセスします。

# kinit administrator@W2003AD1.HOME.MONYO.COM (1)
Password for administrator@W2003AD1.HOME.MONYO.COM: (2)
kinitコマンドの実行
(1)   必ず大文字で指定すること。
(2)   Administratorのパスワード。

のように、kinitコマンド(Red Hat系のディストリビューションの場合は/usr/kerberos/bin/kinit)を実行してください。適切なパスワードを入力した場合は、何のメッセージも表示されません。

 なお、Active Directoryの仕様(?)のため、Active Directory構築後にAdministratorのパスワードを一度も変更していない場合はkinitが失敗します。同じパスワードで構わないので、一度パスワードを変更しておいてください。パスワードを変更していないと、以下のメッセージが出力されます。

# kinit administrator@W2003AD1.HOME.MONYO.COM
Password for administrator@W2003AD1.HOME.MONYO.COM:
kinit(v5): KDC has no support for encryption type while getting initial credentials
パスワード変更を行っていないときに出力されるメッセージ

 kinitコマンドに引き続き、net ads joinコマンドを発行して、Active Directoryに参加します。

# net ads join
Using short domain name -- W2003AD1
Joined 'MAPLE' to realm 'W2003AD1.HOME.MONYO.COM'
net ads joinコマンドの実行例

 正常に終了した場合は、上記のように「Joined...」というメッセージが出力されます。DC側で確認すると、画面2のようにComputersコンテナにコンピュータアカウントが作成されているのが確認できます。

画面2 Computersコンテナの様子 画面2 Computersコンテナの様子(画像をクリックすると拡大表示します)

■UNIXユーザーの追加

 Sambaサーバ上で、Windows側からアクセスを行うユーザーに対応するUNIXユーザーを/etc/passwdファイルに追加します()。以下の例では、smbdemo1というユーザーを追加しています。

# useradd -m smbdemo1

 この名前のユーザーがActive Directory側にも存在している必要があるので、必要に応じて追加しておいてください。

注:もちろん、add user scriptパラメータによりユーザーを自動的に作成する設定にしていたり、Winbindを利用してユーザー情報を直接Windows側から取得する設定にした場合、この操作は不要です。


 認証はActive Directoryで行われるので、ユーザーにパスワードなどを設定する必要はありません。もちろんsmbpasswdファイルなどへの登録も不要です。

■動作確認

 ここまでの作業が完了したら、Active Directoryドメインに所属するWindowsマシンから、先ほどのユーザー(上記の例ではW2003AD1\smbdemo1)でログオンして、そのままSambaサーバ上の共有にアクセスしてみてください。特にパスワードを聞かれることなくアクセスできるはずです。


       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

@ITのメールマガジン(無料)

✔ 【@IT通信】
  編集部のおすすめ記事、限定コラムをお届け
✔ 【@IT新着速報】
  新着記事・速報をまとめてお届け
✔ 【@IT自分戦略研究所Weekly】
  転職支援情報やキャリアアップ情報をお届け

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。