# security = domain in Samba 2.x

## Samba 2.2 サーバを NT ドメインに参加させるには

Samba-2 サーバが NT ドメインに参加するには、まず、サーバマネー ジャを使って、Samba サーバの NetBIOS 名を NT ドメインの PDC に追加 しておく必要があります。サーバマネージャはマシンアカウントをドメイン (PDC)の SAM に作ります。このとき、Samba サーバを「Windows NT ワークス テーション/サーバ」として追加すること。プライマリあるいはバックアッ プドメインコントローラとして追加してはいけません。

以下、`SERV1` という NetBIOS 名を持つ Samba-2 サーバを、`DOMPDC` という NetBIOS 名の PDC と `DOMBDC1`、`DOMBDC2` という 2 つの BDC がある、DOM という NT ドメイン に追加するものと して説明します。

ドメインに参加する為には、まずは全ての Samba デーモンを停止 させてから、DOM ドメインやその PDC である DOMPDC (ドメインで唯一 SAM データベースに書き込むことができるマシン) に参加する為、以下の コマンドを起動してください。

`root#` `smbpasswd -j DOM -r DOMPDC`

もしうまく行ったら、以下のメッセージがターミナルウインドウに 現れる筈です。

`smbpasswd: Joined domain DOM.`

詳細に付いては smbpasswd(8) を参照してください。

前もってPDCに信頼ホストのアカウントを作っておかなくてもドメ インに参加できるようにするコードは、開発ブランチで作成中です。この コードは、リリースブランチでも間もなく利用可能になるでしょう。

このコマンドは、マシンアカウントを変更するプロトコルに従い、 この Samba サーバの新しい(ランダムな)マシンアカウントのパスワード を smbpasswd ファイルがあるディレクトリと同じディレクトリ(普通は

`/usr/local/samba/private`

)に書き込みます。

Samba 2.0.xでは、ファイル名は次のようになっています。

``<NT ドメイン名>`.`<Samba サーバ名>`.mac`

この `.mac` という拡張子は、マシンアカウ ントのパスワードファイルを示します。そのため今回の例では、このファ イルは

`DOM.SERV1.mac`

という名前になっている筈です。

Samba 2.2 では、このファイルは `secrets.tdb` という名前の TDB (Trivial Database) ファイルに置き換えられました。

このファイルは、オーナ root で作成され、他のユーザからは読め ません。このファイルは、システムがドメインレベルのセキュリティを保 つのに必要な鍵である為、shadow パスワードファイルと同様に、慎重に 扱うべきです。

ここで、Samba デーモンを再起動する前に、`smb.conf(5)` ファ イルを修正して、Samba にドメインセキュリティを使用させるようにする 必要があります。

まず、現在使われている smb.conf の [global] セクションの `"security="` 行を

security = domain

に修正(または追加)します。

次に、[global] セクションの`workgroup=` という行を

workgroup = DOM

のように、これから参加するドメインの名前に修正します。

また、NT の PDC に対するユーザ認証を可能にする為、 `encrypt passwords` 行も `yes` に設定する必要があります。

最後に、[global] セクションの `password server =`行を次のように追加 (または修正)します。

password server = DOMPDC DOMBDC1 DOMBDC2

Samba がユーザ認証を行う時に問い合わせを行うサーバには、PDC (Primary Domain Controller) と BDC (Backup Domain Controller) があ ります。Samba はこれらのサーバに対し、順番に問い合わせを行おうとし ます(訳注: リストの最初のサーバから順番に問い合わせ、どれかのサー バから返答があれば、残りのサーバには問い合わせません)。従って、こ のリストの順番を変えることで、ドメインコントローラの認証の負荷を分 散させることが可能です。

または、認証に使うドメインコントローラのリストをsmbdが自動的 に決めるようにしたいならば、次のように設定することもできます。

password server = *

この方法は Samba 2.0.6 から使えるようになりました。この方法 で、SambaはNTと同じように動作するようになります。つまり、samba は 認証する為のドメインコントローラを見付けるのにブロードキャストか WINS データベースを使います。

最後に、Samba デーモンを再起動してください。これでドメインセ キュリティを使った、クライアントのアクセスが可能になります!

## Samba and Windows 2000 Domains

Samba が Windows 2000 のドメインに参加できるかどうか疑問に思っている人が大 勢います。Samba 2.2 は、(mixed or native mode で)Windows 2000 ドメインのメ ンバサーバとして振る舞うことができます。

「mixed」モードであることを期待されるときの Win2k ドメインコントローラと、 このホストが「native」モードに変更されるときの環境には、大きな混乱がありま す。「mixed」モードの Win2k ドメインコントローラは、Windows NT の BDC が同 じドメインに存在するときにだけ、必要になります。デフォルトでは、「native」 モードのWin2k ドメインコントローラは、Windows 9x や NT 4.0 などのレガシー クライアントの認証のために NetBIOS と NTLMv1 をサポートします。Samba も、 Windows NT 4.0 メンバサーバとして同じように動作します。

Samba 2.2 が動作するホストを Windows 2000 のドメインに参加させる方法は、 Windows NT 4.0 のドメインに参加させるのと同じです。違う点は、NT 4では「サー バマネージャ(Server Manager)」を使うのに対して、「Active Directory Users and Computers」という MMC (Microsoft Management Console) を使うことです。

## security = server よりも良い点

現在、Samba のドメインセキュリティを使っても、依然としてユー ザがサーバにアクセスするには、ローカルな UNIX ユーザを作成する必要 があります。つまり、`DOM\fred` というドメインの ユーザがドメインセキュリティを使用している Samba サーバにアクセス する場合、UNIX のファイルシステムでそのユーザを識別する為に、fred というローカルな UNIX のユーザが必要です。これは、以前からある security = server という Samba のセキュリティモードを使って、Windows 95 や Windows 98 と同様に、Windows NT Server に対して認証要求をパ ススルーするのとほとんど変わりません。

自動的にUNIXのユーザID及びグループIDをNTドメインのユーザやグ ループに対応づけるには、Winbind のマニュアルを参照してください。このコードは、今のところ、開発ブラ ンチでだけ利用可能ですが、間もなくリリースブランチでも利用可能にな ります。

ドメインレベルのセキュリティを用いる利点は、ドメインレベルの セキュリティの認証が、NT Server と全く同様に、認証された RPC チャ ネルを通じて行われる所にあります。これは、Samba が NT Server と全 く同様に、ドメインの信頼関係に参加していることを意味します。(例え ば、Samba サーバをリソースドメインに追加することで、リソースドメイ ンの PDC 経由でアカウントドメインの PDC に対し、認証要求を行うこと が可能です。)

それに加えて、security = server の場合、 サーバ上の個々の Samba デーモンのプロセスは、存在している間、認証 しているサーバに対してコネクションを張ったままにしている必要があり ます。これは、NT サーバのコネクションのリソースを消費し、利用可能 なコネクションを使いはたす恐れがあります。一方 security = domain の場合、Samba デーモンは、ユーザを認証するのに必 要な間、PDC や BDC に接続するだけで、必要でなくなれば、すぐにコネ クションを切断しますので、PDC のコネクションのリソースを浪費しませ ん。

最後に、NT サーバと同様の方法で PDC に認証に認証を行うという ことは、認証の返事として、Samba サーバが、SID のような、ユーザを識 別する情報や、ユーザが属している NT グループの一覧等の情報を受け取 れると言うことを意味します。これは、将来の Samba に、現在開発者の 間で appliance モードと呼ばれているモードを拡張することが可能になっ たということです。そのモードでは、ローカルな UNIX ユーザは不要にな ります。Samba は、NT ユーザが認証された時点で、PDC から入手した情 報を元に UNIX の uid と gid を生成するようになり、Samba サーバは、 NT ドメインの環境に対し、真にプラグアンドプレイになります。それが 実現されるのも、そう遠くはありません。

注意: このドキュメントのほとんどは、Web マガジンの LinuxWorld の "Doing the NIS/NT Samba" という記事中で最初に出版されました。