Chapter 6. ドメインメンバーシップ

John H. Terpstra

Samba Team

Jeremy Allison

Samba Team

Gerald (Jerry) Carter

Samba Team

Andrew Tridgell

Samba Team

Jelmer R. Vernooij

The Samba Team

Guenther Deschner

LDAP updates 
Samba Team

Table of Contents

機能と利便性
MicrosoftWindowsワークステーション/サーバーのマシン信頼アカウント
マシン信頼アカウントの手動作成
NT4サーバーマネージャによるドメインマシンアカウントの管理
マシン信頼アカウントの即時作成
Microsoft Windows ワークステーション又はサーバーをドメインメンバーにする
ドメインメンバーサーバー
Samba で NT4 形式でのドメインに参加する
Samba ADS ドメインメンバーシップ
smb.confの設定
/etc/krb5.confの設定
コンピューターアカウントの作成
サーバー設定のテスト
smbclientによるテスト
Sambaドメインメンバー間でのユーザーIDマッピング共有
よくあるエラー
マシンをドメインに追加し直すことができない
マシンのドメインへの追加に失敗する

ドメインメンバーシップはきわめて重要な事項である。Samba は Microsoft ドメインセキュリティコンテキスト中においてメンバーサーバーとして 参加できねばならず、Samba はドメインマシンメンバー信頼アカウントを 付与できねばならない。これなしには多くのユーザーに実行可能なオプション を提供できないだろう。

この章では、ドメインメンバーシップに関する背景情報、Samba の設定と、 Microsoft Windows クライアントのドメインに参加方法について説明する。 なぜそれが必要なのであろうか?なぜならば、現在のMicrosoft Windows ネットワーキングと、特に UNIX/Linux ネットワーキングおよび管理の世界に関して かなりの間違った情報、誤解があり、また知識の欠如が顕著だからである。 この章によってその欠如を埋めることを望みたい。

機能と利便性

Microsoft Windows ワークステーションおよびサーバーがドメイン セキュリティに参加するためには、ドメインメンバーにならなければならない。 ドメインセキュリティに参加することは、しばしばシングルサインオン か省略してSSOと呼ばれる。この章では、ワークステーション (かあるいはMicrosoft Windows NT4/200xサーバーであるもう一台のサーバー) 又はSambaサーバーを、Microsoft Windows ドメインセキュリティの メンバーにするための手順について説明する。

Samba はNT4形式のMicrosoft Windowsドメインにネイティブなメンバーサーバー として、Microsoft Windows Active Directory ドメインにネイティブな メンバーサーバーとして、あるいは、Samba ドメイン管理ネットワークに参加 できる。ドメインメンバーシップはたくさんの利点を持つ:

  • Microsoft Windowsワークステーションユーザーは SSO の利点を享受できる。

  • ドメインユーザーアカウントの(アクセス)権限とファイルの所有権およびアクセス制御は 単一のドメインセキュリティアカウントマネージャ (SAM) データベース から設定できる(ドメインメンバーであるMicrosoft Windows ワークステーション と同様にドメインメンバーサーバーで動作する)。

  • ドメインメンバーであるMicrosoft Windows NT4/200x/XP Professional ワークステーションのみがネットワークログオン機能を使える。

  • ドメインメンバーのワークステーションを、ポリシーファイル (NTConfig.POL)およびデスクトッププロファイルを使用 してよりよく制御できる。

  • ログオンスクリプトを使用することで、ユーザーはアプリケーションサーバー 上のネットワークアプリケーションへ自由にアクセスできる。 (訳注:意味はこれでよい?)。 Through the use of logon scripts, users can be given transparent access to network applications that run off application servers.

  • ネットワーク管理者にとっては、より優れたアプリケーション管理およびユーザーアクセス 管理が可能になる。ユーザーアカウントを、中央にあるドメインデータベース (NT4/Samba での SAM 形式ドメインか、LDAP によるディレクトリがバックエンドになった NT4ドメインか、Active Directory基盤経由で)以外の任意のネットワーク クライアントかサーバー上でユーザーアカウントを保守する必要がないからである。

MicrosoftWindowsワークステーション/サーバーのマシン信頼アカウント

マシン信頼アカウントは(ユーザーではなく)クライアントマシンを ドメインコントローラーサーバーに対して認証するために使われる。Windows の用語では、 これはコンピューターアカウントとして知られている。 マシン信頼アカウントの目的は、不正(訳注:rogue)ユーザーとドメインコントローラー が、共謀してドメインメンバーのワークステーションにアクセスすることを 防ぐことである。

マシン信頼アカウントのパスワードは、ドメインコントローラーとの間で暗号化 通信を行うために共通の秘密鍵(訳注:shared secret:共通鍵?)である。 これは、同じ NetBIOS 名を持つ未認証マシンがドメインに参加し、ドメインセキュリティ 操作をし、ドメインユーザー/グループアカウントへアクセスすることを得ることを防ぐ セキュリティ機能である。Windows NT/200x/XP Professional クライアントは マシン信頼アカウントを使うが、Windows 9x/Me/XP Home は使わない。従って、 Windows 9x/Me/XP Home クライアントは、マシン信頼アカウントを持たないため、 ドメインコントローラーとの間で、共通の秘密鍵を持つことはなく、決してドメイン の真のメンバーにはなれない。

Windows NT4 PDC はマシン信頼アカウントを Windows レジストリ中に格納する。 Microsoft Windows 2000 の登場と共に、Active Directory という、 マシン信頼アカウントのための新しいリポジトリが登場した。それに対し、 Samba PDC はマシン信頼アカウントを以下のように2つの部分に分けて格納する:

  • ドメインセキュリティアカウントはsmb.confファイル中で設定される passdb backendに格納される。格納される アカウント情報の性質は、選択されたバックエンドデータベースの タイプに依存する。

    このデータのより古い形式はsmbpasswdデータベースで、 そこには UNIX のログイン ID、UNIX のユーザー識別子 (UID)、LanMan および NT 形式で 暗号化されたパスワードを格納している。また、ここでは触れないが、その他 にもいくつかの情報が含まれている。

    より新しいデータベースは、ldapsam と tdbsam と呼ばれる。どちらも、以前の smbpasswdファイルよりもかなりより多くのデータを格納する。 その付加情報により、新しいユーザーアカウント管理の新しい方法が可能になる。

  • 対応する UNIX アカウントは通常/etc/passwdに格納される。 UNIX ユーザーアカウントを必要としないような、より簡便なオペレーションの実現 に向けて開発中だが、この機能は Samba の初期リリースまでは実装されない予定 である(訳注:この部分は古い)。

マシン信頼アカウントの作成には3つの方法がある:

  • UNIX/Linuxコマンド行からの手動作成。この方法では、Sambaとそれに対応する UNIXアカウントが手動で作成される。

  • NT4ドメインコントローラーからMicrosoft Windows NT4サーバーマネージャを使うか、 MicrosoftのWebサイトから入手可能なNexusツールキットを使う。このツールは ユーザーが管理者アカウントでログオンしている限り、任意のMicrosoft Windows マシンから実行することが出来る。

  • その場での(on the fly)作成。Sambaマシン信頼アカウントは、 クライアントがドメインに参加したときに、Sambaによって自動的に作成 される(セキュリティ上、この方法が推奨される)。対応するUNIX アカウントは自動でも、手動ででも作成できる。

Microsoft Windows NT4/200x/XP ProfessionalもSambaもマシン信頼アカウントを 強制する方法を提供しない。これは管理者の選択問題である。

マシン信頼アカウントの手動作成

マシン信頼アカウントの手動作成の最初の手順は、/etc/passwd 中に対応するUNIXアカウントを手動で作成することである。 この作業は、vipwか、通常、新規のUNIXアカウント作成時に 使われるadduserコマンドを使用する。以下は、Linux ベースのSambaサーバーにおける例である:

root# /usr/sbin/useradd -g machines -d /var/lib/nobody \
   -c "machine nickname" \
   -s /bin/false machine_name$ 

root# passwd -l machine_name$

上記の例では、全マシンアカウントのプライマリグループとして使われる machinesという、既存のシステムグループがある。以下の例では、 machinesグループのGIDは100である。

*BSDシステム上では、この作業はchpassユーティリティを使うこと もできる:

root# chpass -a \
'machine_name$:*:101:100::0:0:Windows machine_name:/dev/null:/sbin/nologin'

/etc/passwdのエントリは$を追加した マシン名を付けたもので、パスワードは持たず、シェル情報が空白で(訳注: /dev/nullを指定すること)、ホームディレクトリの定義がない。たとえば、 マシン名がdoppyの場合は/etc/passwd のエントリは以下のようになる:

doppy$:x:505:100:machine_nickname:/dev/null:/bin/false

上記の例では、machine_nicknameはクライアントに対する 任意の名前を記述する(たとえばBasementComputer)。 machine_nameはドメインに参加するときの クライアントのNetBIOS名でなければならない。$を クライアントのNetBIOS名に必ず付加しなければならず、これがないと、 Sambaはこれをマシン信頼アカウントと認識できない。

対応するUNIXアカウントが作成されると、次の手順は初期マシン信頼 アカウントの、よく知られたパスワードを持つクライアント用のSamba アカウントを作成することである。 これは以下に示すようなsmbpasswdを使用する:

root# smbpasswd -a -m machine_name

ここでmachine_nameはマシンのNetBIOS名である。 新規のマシンアカウントのRIDは対応するUNIXアカウントのUIDから生成される。

クライアントをドメインに即座に参加させる

この方法でマシン信頼アカウントを手動作成することは、 Windows NT PDC で により サーバーマネージャによりマシン信頼アカウントを 作成するのと同等である。アカウントが作成されてからクライアントがドメイン に参加してパスワードを変更するまでの間、同じ NetBIOS 名を持つマシンで ドメインに参加しようとする侵入者の被害を受ける可能性がある。 PDC は、 ドメインのメンバーを信頼するようにできており、多くのユーザー情報をこのような クライアントに渡してしまう。注意すること!

NT4サーバーマネージャによるドメインマシンアカウントの管理

有効なadd machine scriptはマシン信頼アカウントの 自動作成に必須である。これは自動アカウント作成機能を使用する場合でも、 NT4 ドメインサーバーマネージャを使用する場合でも必要である。

ドメインを管理しようとしているマシンが Microsoft Windows NT4 ワークステーション又はMicrosoft Windows 200x/XP Professional の場合、使用するツールはSRVTOOLS.EXEという パッケージである。これをターゲットディレクトリで実行すると、SrvMgr.exe 及びUsrMgr.exe(どちらもMicrosoft Windows NT4 ワークステーション のドメイン管理ツール)が解凍される。

ワークステーションがMicrosoft Windows 9x/Me ファミリー製品であれば、 Microsoft のWebサイトからNexus.exe パッケージをダウンロードする。それをターゲットディレクトリから実行すると、 上記と同じツールで、9x/Meプラットフォーム用のものが解凍される。

これらのツールに関する詳細情報は次のKnowledge Baseの記事で得ることができる: 173673172540

srvmgr.exe(ドメイン用のサーバーマネージャ)を起動し、以下の手順を実行する:

Procedure 6.1. サーバーマネージャによるドメインマシンアカウント管理

  1. メニューからコンピューターを選択する。

  2. Select Domainをクリックする。

  3. Select Domainパネルで管理対象の ドメイン名をクリックし、 OKをクリックする。

  4. 再度メニュー画面からコンピューターを選択する。

  5. Add to Domainを選択する。

  6. ダイアログボックス中で、Add NT Workstation of Server ラジオボタンをクリックし、フィールドにマシン名を入力し、 Addボタンをクリックする。

マシン信頼アカウントの即時作成

マシン信頼アカウント作成の第3の(そして推奨する)方法は、クライアントが ドメインに参加する時、必要に応じて Samba サーバーアカウントを作成する方法である。

Samba の各マシン信頼アカウントは対応するUNIXアカウントを必要とするので、 通常、 UNIXアカウントを自動作成する機能が提供されている。これには smb.conf ファイル内に add machine script オプションを設定する必要がある。 しかし、この方法は必須ではなく、対応するUNIXアカウントを手動で作成しても構わない。

以下は、Red Hat linux での例である:

[global]
add machine script = /usr/sbin/useradd -d /var/lib/nobody -g 100 -s /bin/false -M %u

Microsoft Windows ワークステーション又はサーバーをドメインメンバーにする

Microsoft Windows ワークステーションやサーバーをドメインのメンバー にする手順は Windowsのバージョンによって異なる。

Windows 200x/XP Professionalクライアント

ユーザーがクライアントをドメインメンバーにする時、 Windows 200x は、ドメイン内で マシンアカウントを作成する権限を持つアカウント及びパスワードの入力を要求する。 Samba管理者アカウント(すなわち、Sambaサーバー上でroot権限を 持つSambaアカウント)をここで入力せねばならない。通常のユーザーアカウントが入力さ れると、この作業は失敗する(訳注:net rpc rightsでSeMachineAccountPrivilege権限を 持ったユーザーも出来るのでは?)

セキュリティのため、この管理者アカウントのパスワードは/etc/passwd でルートユーザー用に使用されているパスワード以外のものを設定するべきである。

ドメインメンバーのマシンアカウントを作成するために使用するアカウント名は ネットワーク管理者が任意に選択する。もしそれがroot以外なら smb.conf中のパラメーター username map = /etc/samba/smbusers で指定するファイル名中で容易にマッピングできる。

Samba管理者アカウントのセッションキーは、マシン信頼アカウントのパスワード 設定の際、暗号化キーの機能を果たす。マシン信頼アカウントはその場でで作成 されるか、または、既に存在していれば更新される。

Windows NT4 クライアント

マシン信頼アカウントが手動作成された場合、Identification Changes メニュー画面でドメイン名を入力するが、 Create a Computer Account in the Domain チェックボックスにはチェックを入れない。こうすることでマシン がドメインに参加する際に既存のマシン信頼アカウントが使用される。

もしマシン信頼アカウントがその場で作成される場合は、Identification Changes メニュー画面でドメイン名を入力し、 Create a Computer Account in the Domain チェックボックスにチェックを入れる。この場合、上記 Windows2000用 の手順に従いドメインに参加する(プロンプトに対してSamba管理者 アカウント名を入力する)。

Sambaクライアント

Joining a Sambaクライアントをドメインに参加させる方法は 次の章に記述されている。

ドメインメンバーサーバー

このモードのサーバー操作は、Sambaマシンをドメインセキュリティコンテキスト のメンバーにすることを含む。またこれは定義上、全てのユーザー認証は中央で 定義された認証機構(訳注:authentication regime)で行われることを意味する。 この認証機構は NT3/4形式(旧式のドメインテクノロジー)サーバー又は Microsoft Windows 2000以降で実装されているActive Directory server(ADS) が提供する。

もちろん、認証バックエンド自体はSambaがサポートしている分散ディレクトリ 構造のサーバーなら、いずれでも構わない。LDAP(OpenLDAPベース) 、Sunの iPlanet、Novellの e-Directoryなどが使用可能である。

Note

SambaがLDAPやその他のアイデンティティ管理、あるいは、ディレクトリ サービスを使用するように設定される場合、ユーザー及びマシン認証を継続して 実行するのはSambaである。Sambaが行う認証をLDAPサーバーが代替するわけでは ないことに注意。

ドメインメンバーサーバーのドメインマシンアカウント作成に関する詳細情報や Sambaドメインメンバーマシンがドメインに参加し完全に信頼されるようにする 方法に関しては、ドメイン管理の章を参照のこと。

Samba で NT4 形式でのドメインに参加する

下記の表に、この後この章で使用される名前を示す。

Table 6.1. 前提

Samba DMSのNetBIOS名:SERV1
Windows 200x/NTドメイン名:MIDEARTH
ドメインのPDCのNetBIOS名:DOMPDC
ドメインのBDCのNetBIOS名:DOMBDC1とDOMBDC2

まずsmb.confファイルを編集し、Sambaが以後ドメインセキュリティを 使用するように設定しなければならない。

smb.conf中の[global]セクション中にsecurity 行を、下記のように変更(又は追加)する:

security = domain

もしも、パラメーターsecurity = userが使われている ならば、このマシンはスタンドアロンサーバーで動作するのでドメインメンバー サーバーではないことに注意。ドメインセキュリティモードはSambaにドメイン セキュリティコンテキスト内で動作するようにさせる。

次に、[global]セクション中の workgroup行を下記のように修正する:

workgroup = MIDEARTH

これが参加するドメイン名である。

ユーザーが NT PDC で認証されるようにencrypt passwords パラメーターをyesに設定しなければならない。もしこの パラメーターが特に指定されていなければ、既定値で設定されている。 このパラメーターを設定する必要はないが、もしもsmb.confファイル中で指定 されたならば、必ずYesに設定されねばならない。

最後に、[global]セクションのpassword server行 を下記のように追加(又は修正)する:

password server = DOMPDC DOMBDC1 DOMBDC2

これらはSambaがユーザー認証のために通信を行うプライマリ及びバックアップの ドメインコントローラーである。Sambaは各サーバーに対し、リスト順に接続するので、 複数のドメインコントローラーの間で認証負荷を分散するためには、このリストの 順番を適宜変更してもよい。

代わりに、認証に使用するドメインコントローラーのリストを smbdが自動的に決める ようにしたい場合、この行を次のように設定する:

password server = *

この方法で、NTと全く同じメカニズムをSambaが使用するようにできる。この方法は ブロードキャストベースの名前解決を使用するか、WINS データベースの検索により 認証するドメインコントローラーを決めるか、DNSによる名前解決によりドメイン コントローラーを見つける。

ドメインに参加するために次のコマンドを実行する:

root# net rpc join -S DOMPDC -UAdministrator%password

もしも、-S DOMPDC引数が与えられない場合、ドメイン名はsmb.conf から入手し、PDCのNetBIOS名は、WINS検索を使うか、NetBIOSブロードキャストベースの名前 検索のどちらかで入手する。

マシンがDOMドメインに参加しようとしていて、そのドメインのPDC(ドメインのSAMデータ ベースへの書き込み権限のある唯一のマシン)がDOMPDCなので、 -Sオプションを使用する。 Administrator%passwordは、はマシンをドメインに追加する のに必要な権限を持つアカウントのログイン名とパスワードである。これが成功すれば、 使用しているターミナルの画面に下のようなメッセージが表示される。 古いNT4式のドメイン環境使用の場合:

Joined domain DOM.

Active Directory使用の場合、ADSドメインへ参加するためのコマンドは以下の通り:

root#  net ads join -UAdministrator%password

成功すると以下の結果が表示される:

Joined SERV1 to realm MYREALM.

詳細情報については、netのマニュアルページと リモート管理の章を参照のこと。

この手順により、事前にPDC上でマシン信頼アカウントを作成する必要はなく、 サーバーがドメインに接続できる。

このコマンドは、マシンアカウントパスワード変更プロトコルを通して、 Sambaサーバーの新規(任意の)マシンアカウントパスワードを、smbpasswdファイルが 通常格納されているディレクトリと同じディレクトリにあるファイルに書き込む。 DMSによって必要とされる信頼アカウント情報は /usr/local/samba/private/secrets.tdb/etc/samba/secrets.tdbファイル中に書かれる。

このファイルはrootにより作成・所有され、root 以外のユーザーは読めない。これが、 システムのドメインレベルのセキュリティの鍵を握る部分であり、シャドウ パスワードファイル同様に慎重に扱わなければならない。

最後に、Sambaのdaemonを再起動し、クライアントがドメインセキュリティを使用開始する 準備をする。Samba デーモンの再起動方法はディストリビューションにもよるが、ほとんど の場合は次のとおりである:

root# /etc/init.d/samba restart

Samba ADS ドメインメンバーシップ

これは、Windows 200x KDC に対し Kerberos 認証を行うSamba の設定方法の概略である。 Kerberos の知識があることを前提としている。

smb.confの設定

最低以下の3つのオプションをsmb.confで使用しなければならない:

realm = your.kerberos.REALM
security = ADS
# もしも存在するときのみ、以下のパラメーターを指定する必要がある。
# もしも存在しないときの既定値はYesである。
encrypt passwords = yes

Samba がレルム名を使用して適切な ADS サーバーを正確に識別できない場合、 smb.conf中のpassword serverオプションを使用する:

password server = your.kerberos.server

ADSドメインコントローラーを識別できない最も共通的な理由は、ADS基盤のDNS要求条件 に関係なくUNIXシステム上でいくつかのDNSサーバーを保守しているサイトの問題である。 password serverを使って、優先するADSドメインコントローラー を指定することは問題ない。

Note

smbpasswdファイルは必要でなく、古いクライアントは あたかもsecurity = domainのように 認証され、何の害もなく、ドメインに入らないローカルユーザーを持つことが できる。

/etc/krb5.confの設定

MIT 及び Heimdal Kerberosでは、/etc/krb5.confの 設定は必要なく、時に害となることがある。

Microsoft ADSは、DNSの_kerberos._tcp.REALM.NAMEに、 レルム内の各KDCのSRVレコードを、自動的に作成する。 これは、Active Directory ドメインを作成するために使われるインストールと設定プロセスの一部である。 KDCはKerberosのキー配信センタであり、Microsoft Active Directory基盤の 不可欠な部分として構成されている。

UNIXシステムは、Windows2000 KDCにで認証を行うために、kinitとDES-CBC-MD5 又はDES-CBC-CRCという種類の暗号手法を使える。Windows 2000 ADSのkerberos 相互運用性に関連する詳細情報は、 Interoperability というガイドを参照のこと。もう1つの、とても有用な、Kerberosの相互運用性に関する 一般的な情報として参照できる文書は、 RFC1510 である。このRFCはKerberosの操作についてのたくさんの不可思議な背景について説明している。

MITとHeimdalでは、最新のKRB5ライブラリがSRVレコードをチェックするように 既定値で設定されていて、従って、自動的にKDCを見つける。さらに、 krb5.confは、たとえ2つ以上あったとしても単一のKDCの 指定のみ許可する。DNSルックアップを使用することによりKRB5ライブラリは使用 可能な任意のKDCを使用できる。

手動でkrb5.confを設定する場合の最小限の設定は次のとおり:

[libdefaults]
	default_realm = YOUR.KERBEROS.REALM
	dns_lookup_kdc = true

[domain_realms]
	.kerberos.server = YOUR.KERBEROS.REALM

KDCを直接指定したい場合、最小の設定は以下の通り:

[libdefaults]
	default_realm      = YOUR.KERBEROS.REALM

[realms]
        YOUR.KERBEROS.REALM = {
        kdc = your.kerberos.server
	}

[domain_realms]
        .kerberos.server = YOUR.KERBEROS.REALM

kinitUSERNAME@REALM を実行して設定をテストし、パスワードが Windows 2000 KDC に認証されることを確認 する。

Note

レルムは大文字でなければ、 Cannot find KDC for requested realm while getting initial credentials (最初の認証情報取得時にリクエストされたレルムの KDC を見つけられない) というエラーが表示される(Kerberos は大文字・小文字を区別する)。

Note

2つのサーバーは時間の同期を取らなければならない。もし時間差が5分以上になると メッセージ kinit(v5): Clock skew too great while getting initial credentials (kinit(v5): 最初の認証情報取得時にクロックスキューが過大) が表示される。

Kerberos プロトコルではクロックスキューの限界値を設定できる。既定値は5分である。

smbclient中でのKerberos のサポートのみが必要な場合は、次の項は飛ばして直接 smbclientでのテストに進むこと。 コンピューターアカウントの作成サーバー設定のテストは、 smbdwinbinddでKerberosのサポートをしたい場合にのみ必要である。

コンピューターアカウントの作成

Samba のプライベートディレクトリに書き込み権限があるユーザー(通常はroot)として以下を実行する:

root#  net ads join -U Administrator%password

管理者アカウントは、ADSドメインにマシンを追加することを許可されているADSドメインセキュリティ の設定中で指定された任意のアカウントでも良い。それはもちろん、Administrator以外のアカウント を使うことは良いアイデアである。UNIX/Linuxシステム上では、このコマンドはUID=0(root)である アカウントによって実行されねばならない。

複雑な組織内で Windows クライアントを ADS ドメインのメンバーにする場合、特定の組織単位内で マシンアカウントを作成しても良い。Samba では次の構文でこれを実現できる:

root#  kinit Administrator@your.kerberos.REALM
root#  net ads join createcomputer="organizational_unit"

ADS管理者は"organizational_unit"パラメーターに指定すべきものを助言することも可能である。

例をあげると、ある組織ディレクトリComputers/BusinessUnit/Department, の配下のServersというコンテナーにマシン信頼アカウントを作成したい場合 は以下のようになる:

root#  net ads join "Computers/BusinessUnit/Department/Servers"

このコマンドは、コンテナーComputers/BusinessUnit/Department/Servers 中に、Sambaサーバーのマシン信頼アカウントを置く。コンテナーはこのコマンドを実行する前に ADS ディレクトリ中に存在しなければならない。バックスラッシュはOU名とその他の文字に 対するエスケープ文字の両方として有効な文字のため、普通のスラッシュを使わなければ ならないことに注意。もしもOU名にバックスラッシュを使う必要があるならば、シェルによる 解釈と、LDAPによる解釈を考慮して4重にする必要がある。

よくあるエラー

ADS サポートがコンパイルされていない

Kerberosライブラリとヘッダーファイルのインストール後に、Samba を再設定(config.cache を削除) して、リコンパイルする(make clean all install)。

net ads joinがユーザー名の入力を要求する

kinit USERNAME@REALM を使ってドメインにログインする必要がある。 USERNAMEはマシンをドメインへ追加する権限を持つユーザーでなければならない。

サーバー設定のテスト

参加に成功したら、Active DirectoryにSambaサーバーのNetBIOS名の付いた 新規のコンピューターアカウントが表示される(ユーザーとコンピューター配下の コンピューターフォルダー中)。

Windows 2000 クライアントでは、net use * \\server\share を試してみること。パスワードを知らないでもKerberos にログインできるはずである。 もしも失敗したら、klist ticketsを実行すること。 サーバー用のチケットを取得できたか?それには暗号タイプ DES-CBC-MD5 があるか?

Note

SambaはDES-CBC-MD5暗号及びARCFOUR-HMAC-MD5符号を使用できる。

smbclientによるテスト

Sambaサーバー上でsmbclientとKerberosを使用してWindows2000サーバー又はSambaサーバー にログインすることを試みる。smbclientは通常通り使用するが、Kerberos認証を選択 するように、-kオプションを指定する。

Sambaドメインメンバー間でのユーザーIDマッピング共有

SambaはUNIXユーザー及びグループ(それぞれUIDとGIDで識別される)をWindowsユーザー及び グループ(SIDで識別される)にマッピングする。これらのマッピングは Sambaの idmapサブシステムが行う。

これらのマッピングをSambaドメインメンバー間で共有することは、 名前からIDへのマッピングが全マシンで同一になるので便利である。 特に、CIFSとNFSの両方でファイルを共有する場合に有用である。

LDAP ldap idmap suffixを使う場合、以下のように設定する:

ldap idmap suffix = ou=Idmap

詳細情報については smb.conf マニュアルページのldap idmap suffix パラメーターのエントリを参照のこと。

ldap admin dnも設定することと、secrets.tdb 中にLDAP管理用パスワードを設定するのを忘れないこと。これには下記を使用する:

root#  smbpasswd -w ldap-admin-password

ldap-admin-passwordの部分は、システムで使うLDAPサーバー管理用パスワードで 置き換えること。

よくあるエラー

ドメインメンバーのマシンアカウントの追加/削除/再追加の手順の中には、不注意により 陥りやすい多くの落とし穴や間違いを招きかねない多くの事細かなこと がある。興味深いことにSambaメーリングリストの購読者の中には、マシンアカウントの 追加を繰り返し失敗し、最終的にMicrosoft Windows をマシンに再インストール しなければならないという結論を出す人がよくいる。しかし、実際はこのような種類の問題で 再インストールが必要になることはめったにない。正しい解決法は単純である場合が多く、 Microsoft Windowsのネットワーク機能を理解していれば容易に解決できる。

マシンをドメインに追加し直すことができない

Windowsワークステーションを再インストールした。元々のドメインマシンアカウントが削除され その直後に再度追加された。同じマシン名を使用するとワークステーションはドメインに参加 できない。マシンの追加に失敗する際に、マシンはネットワーク上に存在していないにもかか わらず、マシンが既に存在するというメッセージが表示される。なぜこのように失敗するのか?

前の名前がまだNetBIOS 名キャッシュに残っているためである。マシンアカウントが削除されると、 同じ名前のマシンをドメインメンバーとして再度追加できるようになるには、まず、その名前が 期限切れにならなければならない。最もよい方法は、古いアカウントを削除し、新しい名前で マシンを追加することである。そのほかに、Windows上のクライアントから以下のnbtstat コマンドを使って、名前キャッシュにある現在のデータをフラッシュし、再ロードする。

C:\>  nbtstat -R

マシンのドメインへの追加に失敗する

Windows200xもしくはXP ProfessionalマシンをSamba PDCドメインに追加しようとすると失敗する。 エラーメッセージは 今回はネットワークの問題によりマシンを追加できませんでした。後ほどやり直して下さい。 である(訳注:実際に表示されるメッセージとは違います)。なぜか?

smb.confファイル中にadd machine scriptがあることを確認する。 もしも存在していないならば、OSプラットフォームに適したスクリプトを追加する。もしも、 スクリプトがすでに定義されているならば、その動作をデバッグする必要がある。 smb.confファイル中のlog levelの値を10まで増やし、 ドメインへの参加を試行してみる。そのログをチェックし、どの動作が失敗しているか突き止める。

可能性のある原因:

  • スクリプトが実際には存在していないか、指定したパスにない。

    是正処置:修正する。スクリプトを手動で実行すると、UNIX システム アカウントとSamba SAM アカウントの両方が追加されることを確認する。

  • マシンをUNIXシステムアカウントファイル/etc/passwdに追加できない。

    是正処置:マシン名が有効なUNIXシステムアカウント名であるか確認する。 もしもUNIXユーティリティuseraddが呼び出されるならば、このツールを 使用して追加したいマシン名を追加できることを確認する。一部のシステム上の Useraddは大文字やスペースを名前に使用することを許可しない。

add machine scriptはSamba バックエンドデータベースでは、 マシンアカウントを作成しない。Sambaバックエンドデータベースアカウントがマッピング される先のUNIXシステムアカウントを作成するためにのみあるものである。