今回はLinuxにインストールされているSamba3.0を、
既存Active Directoryドメインのメンバにする検証です。
Sambaが既存ADドメインに参加することにより、
Sambaサーバーへの認証をADと一本化するのが狙いです。
つまりADドメインに参加できるユーザーは、自動的に
Sambaにアクセスできる、ということですね。
<Linux側>
OS:CentOS5.1
Samba:3.0.28-1(ディストリ同梱 + yumでアップデート)
FQDN:sugi1149-li-01.test.co.jp
<ActiveDirectory>
ドメイン名:test.co.jp
ドメインNetBIOS名:TEST-KEIRI-PDC
タイプ:Windows2000ネィティブ
DC機FQDN:test-keiri.test.co.jp
DC機OS:Windows 2000 Server
事前準備といたしましては、色々名前解決が必要になってきますので、
Linux機のリゾルバを、DC機と同じDNSサーバーを指定するようにしておきます。
resolv.conf
search test.co.jp
namaserver 172.16.1.1
また、ADではKerberos認証が機能するため、クライアント(Linux機)と
サーバー(DC機)の時刻が同期している必要があります。
ま、NTPでよろ。
次、Kerberos認証のために /etc/krb5.conf を編集します。
/etc/krb5.conf
(略)
[libdefaults]
default_realm = TEST.CO.JP #変更
(略)
[realms]
#追加
TEST.CO.JP = {
kdc = test-keiri.test.co.jp
}
#他のはコメントアウト
(略)
[domain_realm]
#追加
.test.co.jp = TEST.CO.JP
test.co.jp = TEST.CO.JP
#他のはコメントアウト
(略)
Kereros Realm名(ADドメイン名)は必ず大文字でなければなりません。
DC名は小文字。FQDNで。
[domain_realm]のとこが、ADドメイン名とKereros Realm名の
マッピング箇所となります。
ここもKereros Realm名は大文字です。
次、/etc/samba/smb.conf を編集します。
/etc/samba/smb.conf
[global]
workgroup = TEST-KEIRI-PDC
dos charset = CP932
unix charset = UTF-8
display charset = UTF-8
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
veto files = /lost+found/aquota.group/.bash*/.canna/.gtkrc/.ssh/
hide files = /lost+found/aquota.group/.bash*/.canna/.gtkrc/.ssh/
realm = TEST.CO.JP
security = ADS
password server = test-keiri.test.co.jp
disable netbios = Yes
local master = No
domain master = No
hosts allow = 127., 172.16.
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
注意すべきは、「netbios name」のエントリをコメントアウトすることです。
「netbios name」が設定されていると動作しない場合があるようです。
(詳細未確認)
「workgroup」には、ADドメインのNetBIOS名を指定します。
「realm」にADドメイン名を指定します。大文字が無難。
「security」にADSを指定。これでADのKerberos認証となります。
最後に、/etc/hosts を編集します。
/etc/hosts
127.0.0.1 sugi1149-li-01.test.co.jp sugi1149-li-01 localhost.localdomain localhost
ここで自ホストのFQDNを指定しておかないと、後述のAD接続でエラーとなりました。
ここまで準備ができたら、ADドメインに参加してみましょう。
まず、特権ユーザー(Administrator)でADにアクセスしてチケットを
発行してもらいます。
# kinit administrator@TEST.CO.JP(Enterキー)
Password for administrator@TEST.CO.JP:XXXXXX
「Password for administrator@TEST.CO.JP:」とパスワードの入力を
求められますので、続けてAdministratorのパスワードを入力して
Enterキーを押します。
適切なパスワードの場合、画面には何も表示されません。
間違ってると怒られます。
チケットが取得できたら晴れてADドメインに参加できます。
# net ads join -S test-keiri.test.co.jp -U administrator%XXXXXX(Enterキー)
Using short domain name -- TEST-KEIRI-PDC
Joined 'SUGI1149-LI-01' to realm 'TEST.CO.JP'
やりました。DC機の「Active Directory ユーザーとコンピュータ」の
「Computers」で確認すると、しっかりLinux機が追加されている筈です。
2009/02/04 追記
DC機がWindows Server 2003の場合、
net rpc join ・・・
にしないと参加できませんでした。
Windows側からアクセスをおこなうADユーザーのために、Linux機に
OSユーザーを用意しておく必要があります。
# useradd -m sugi1149
上記例は、「sugi1149」をOSユーザーとして登録しています。
勿論「sugi1149」は、既にActive Directory側でもユーザーとして
存在しているものとします。(sugi1149@test.co.jp)
「-m」オプションは、/home下にHOMEディレクトリを作成する
オプションです。
smb.confの[homes]設定に対応ですね。
ユーザー設定はこれだけ。認証はADでおこなわれるので、
OSユーザーに対してパスワード設定(passwd)の必要はありません。
当然、smbpasswdファイルの登録なんかも要りません。
これで全部完了!
ADドメインに属するWindowsマシンから、設定済みユーザー
(上記例:sugi1149@test.co.jp)でログオンして、
そのままSambaサーバにアクセスすると・・・
ユーザー名/パスワードを求められることなく入れます。
ふーーー。長かった。