Info kplace.plala.jpから移設しました

■目的
 Microsoft Active Directory互換Samba4をテストしてみました。
 参照したSamba4/Domain Member HOWTOの要約メモです。

■Samba4
 Samba4ではMicrosoft Active Directory互換サーバー機能をサポートしました。
 Samba4/Domain Member HOWTOのページはこちら

■Samba4/Domain Member HOWTO
 Samba4/Memberサーバーインストールで参照したHOWTOのメモです。
[概要]
 このHOWTOではActive Directoryに参加のSamba4.xメンバーサーバーの基本的なセットアップ方法について提示します。
 SambaあるいはWindowsのドメインコントローラ(DC)かどうかには関係しません。

 [必要なパッケージ]
 Sambaのコンパイルのためには以下のパッケージがインストールされる必要があります(RHEL6の基本インストールにて)

 autoconf
 automake
 gcc
 gdb
 krb5-devel
 krb5-workstation
 make
 openldap-devel
 pam-devel
 python-devel

[コンパイルとインストール]
 ソースのダウンロード/解凍のあと以下を実行します。
 # ./configure --with-ads --with-shared-modules=idmap_ad --{必要なら環境に合わせて別のオプションを追加}
 # make
 # make install
 このコマンドは展開されたソースのルートディレクトリで実行します。
 新しいwafビルドシステムで問題があれば従来システムで'source3'ディレクトリからのコマンド実行を試すことができます。
 このケースでは早い解決のためにSambaメーリングリストで問題を開発者に知らせてください。
 wafビルドシステムに関する追加の情報はBUILD_SYSTEMS.txtとBuildsystem Use And Whyのページを参照ください。

[Kerberosの設定]
 以下の/etc/krb5.confのサンプルを参照して実際の環境に合わせて編集ください。
 [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log

 [libdefaults]
     default_realm = YOUR.SAMBA.DOMAIN.NAME
     dns_lookup_realm = true
     dns_lookup_kdc = true
     ticket_lifetime = 24h
     forwardable = yes

[appdefaults]
     pam = {
          debug = false
          ticket_lifetime = 36000
          renew_lifetime = 36000
          forwardable = true
          krb4_convert = false
     }

 [smb.conf基本設定]
 以下はもっとも基本的なsmb.confのサンプルです。本ファイルは通常は/usr/local/samba/etc/におかれます。
' またconfigure'のパラメータによりファイルを別の場所に置くこともできます。
[global]

   workgroup = SHORTDOMAINNAME
   security = ADS
   realm = YOUR.SAMBA.DOMAIN.NAME
   encrypt passwords = yes

   idmap config *:backend = tdb
   idmap config *:range = 70001-80000
   idmap config SHORTDOMAINNAME:backend = ad
   idmap config SHORTDOMAINNAME:schema_mode = rfc2307
   idmap config SHORTDOMAINNAME:range = 500-40000

   winbind nss info = rfc2307
   winbind trusted domains only = no
   winbind use default domain = yes
   winbind enum users  = yes
   winbind enum groups = yes

[test]
   path = /srv/samba/test
   read only = no

 この内容はActive Directoryに参加のメンバーサーバとするためのもっとも基本的なサンプルです。
 ドメインのユーザ/グループのIDマッピングはrfc2307の指定により行われます。
 AD内でADと同じuidナンバー/gidナンバーセットを持つユーザー/グループをメンバーサーバー上で利用可能です。
 もしAD内で異なる範囲のUID/GIDを使用するのなら、それに適合するようにする必要があります。
 非ドメインアカウントでは、マッピングデータをローカルTDBファイルに格納し、与えられた範囲のIDをとることができます。
 さらに詳細なsmb.confのパラメータについてはmanpageを参照ください。

[メンバーサーバーのドメインへの参加]

 # net ads join -U administrator
 winbindを介してドメインユーザー/グループが利用可能になります。
 さらにドメインユーザー/グループをメンバーサーバーで使えるようにするには2つのリンクを/libフォルダーに作成します。
 # ln -s /usr/local/samba/lib/libnss_winbind.so /lib
 # ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2
 # ldconfig

 64ビットLinuxシステムを実行中なら("uname -i"コマンドで"x86_64"が表示されます)/libを/lin64に置き換えてください。
 これを実行しない場合、'wbinfo'コマンドは問題なしですが'getent'は動作しません。
 # ln -s /usr/local/samba/lib/libnss_winbind.so /lib64
 # ln -s /lib64/libnss_winbind.so /lib64/libnss_winbind.so.2
 # ldconfig

 次に/etc/nsswitch.confに以下のエントリーを追加します。
 passwd: compat winbind
 group:  compat winbind

[デーモンの起動]
 以上のステップが終了したら次のサービスを起動できます。
 smbd
 nmbd
 winbindd
手動でのサービスの起動を避けるために起動スクリプトを書くか入手の必要があります。

[winbindユーザ/グループマッピングのテスト]
 winbindがドメインからユーザー/グループを受け取ったことを確認するには次のコマンドを実行します。
 # wbinfo -u
 # wbinfo -g
 このコマンドはwinbindを介してドメインから供給されたすべてのユーザとグループを表示します。

 nsswitch.confが正しくセットアップされていればchown/chgrpが可能でIDを使用できます。
 # chown DomainUser:DomainGroup file
 # chgrp DomainGroup file
 # id DomainUser

[ログファイルのチェック]
 メンバーサーバーが正常に動作しているのを確認のためにsambaログファイルをチェックします。

[その他]
 NTP
 Kerberosはドメイン内ですべてのサーバーは同じ時刻であることを要求します。
 時刻を同期のためにNTPの構築を考慮すべきです。

■結果
 以上はファイル共有サーバーなどをSamba4 Microsoft Active Directoryのドメインに参加させる方法です。
 Samba4ではsmbd/nmbd/winbindの起動スクリプト見つからずファイル共有などはSamba3を利用が容易と思われます。

  blog    MovableType