SambaはLinuxをWindowsサーバとして機能させるオープンソースのプロダクトです。Sambaを用いることで,LinuxマシンをWindowsマシンと同様の機構でADに参加させ,メンバサーバとして稼働させることが可能となります。さらにWinbind機構を導入することで,ADの認証情報をSambaやPAM/NSS(ネームサービススイッチ機能)経由で動作する一般のプログラムから利用することが可能となります。これにより認証の統合が実現します。
この方法では,AD側に追加コンポーネントのインストールやLinuxを意識した設定などを行う必要がありません。以下,Red Hat Enterprise Linux(以下RHEL)のクローンとしてユーザが多いCentOS 5.3を中心に,Winbind機構のインストールと基本的な設定について,まずはSamba単体の認証統合を実現する手順を紹介します。
なお,インストール作業の大半はGUIでは行えませんので,以下コマンドラインでの作業方法を中心に説明します。
Sambaのインストール
通常のLinuxディストリビューションであれば,SambaやWinbind機構はパッケージ化されているはずです。Sambaを動作させる上では,最低限「samba」パッケージおよびその依存パッケージをインストールする必要があります。
可能な限り,インターネットから最新版のパッケージを入手,インストールすることをお勧めします。CentOS5.3の場合は以下のコマンドを実行することにより,Samba 3.0.33ベースの3.0.33-3.7.el5といったバージョンがインストールされます。
# yum install samba
また,CentOS 5.3のデフォルトではファイアウォールが有効になっているため,このままではCentOS 5.3上のSambaに別マシンからアクセスすることができません。
system-config-securitylevel-tuiコマンドやGUIを用いて,Sambaサービスへのアクセスを許可する設定を行っておいてください。
以下,centos52というホスト名のCentOS 5.3で構築したSambaサーバを,IPアドレスが192.168.135.111,w2k8srv1.w2k8ad1.localというFQDN名のWindows Server 2008で構築したW2K8AD1.LOCALというADドメインに参加させる場合を例に,設定を行っていきます。
ADへの参加
インストールが完了したら,引き続きSambaをADに参加させるための設定を行います。以下順を追って説明します。
【1】AD参加の事前設定
ADに参加するためには,DNSサーバとして通常ADのDCを指定する必要があります。DHCPでIPアドレスやDNSサーバの設定を取得している場合は,DHCPサーバ側でDNSサーバの設定を変更する必要があります。各マシンで静的に設定している場合は,/etc/resolv.confを修正します。
リスト1 /etc/resolv.confの設定
search w2k8ad1.local
nameserver 192.168.135.111
また,自身のホスト名の名前解決ができない場合は,後述するドメイン参加の際にDNSの動的更新に失敗します。これ自体は致命的な問題ではありませんが,可能な限りDNSもしくは/etc/hostsファイルで名前解決の設定を行っておくことをお薦めします。
さらに,ADの認証方式であるKerberos認証が機能する上では,DCとの時刻のずれが常時5分以内である必要があります。そのため,DCと常時時刻同期を行うように設定しておきましょう。NTPを用いてNTPサーバでもあるDCと時刻同期するのが一般的ですが,Sambaの一部であるnetコマンドを用いることも可能です。
# net time set -I w2k8srv1.w2k8ad1.local
~~~~~~~~~~~~~~~~~~~~~~ ←DCのIPアドレスやホスト名を指定
Wed May 20 02:07:00 JST 2009
【2】Sambaデーモンの停止
ADへの参加を行う際にはSambaサーバが停止している必要があります。現在起動していたら,以下のようにして一度停止させましょう。
# /etc/init.d/smb stop Shutting down SMB services: [ OK ] Shutting down NMB services: [ OK ]
- ※1)
- 歴史的な理由によりRHEL系ディストリビューションにおけるSambaのサービス名はsmbです。間違えないように注意してください。
【3】smb.confの設定
smb.confにリスト2のような設定を行います。最低限必要なのはworkgroup/realm/securityの3つのパラメータの設定です。なおrealmパラメータの値は,必ず大文字で指定します。
リスト2 smb.confの設定
[global]
...
# ----------------------- Network Related Options -------------------------
#
workgroup = W2K8AD1 (ADのNetBIOS名)
...
# ----------------------- Domain Members Options ------------------------
...
security = ads
passdb backend = tdbsam
realm = W2K8AD1.LOCAL (ADのFQDN(大文字))
; password server = <NT-Server-Name>
idmap uid = 10000-11000
idmap gid = 10000-11000
...
[tmp] ←動作確認用の共有
path = /tmp
writeable = yes
workgroupパラメータには,デフォルトでMYGROUPという値が設定されていますので変更してください。それ以外の2つのパラメータは「Domain Members Options」という行の近辺にコメントされて記載されていますので,コメントを外します。また,動作確認用として,ホームディレクトリを自動共有するhomesセクション以外で,何かファイル共有を作成しておいてください。よくわからない場合は,リスト2の最後にある[tmp]以下の3行をsmb.confファイルの末尾に加えてください。

