2014年5月17日土曜日

Samba4 で ActiveDirectory / Apache で Windows 統合認証

はじめに

ユーザアカウントをそれぞれのシステムで別々に管理するのでなく
ActiveDirectory で一元的に管理したいというのはある。
例えば HTTP 認証で保護されたページにアクセスする時の ユーザID / パスワードなど。
もうちょっと欲張るとドメインにログインしている状態であれば
その ユーザID / パスワード でもって自動的に認証処理がパスできればなお素晴らしい!
まぁそういう訳で Windows 統合認証 / Windows Desktop SSO 認証になります。
Apache であればモジュールを追加すると試せそうだ。
ActiveDirectory については Samba4 を使います。
ではでは Getting Started!!

環境

Primary Domain Controller

OS ContOS 6.5(CentOS-6.5-x86_64-minimal.iso)
Samba 4.1.7
Bind 9.8.2
NTP 4.2.6p5
レルム MYDOMAIN.LOCAL
ドメイン MYDOMAIN
Host pdc
IP 192.168.0.10
Gateway 192.168.0.1
DNS 127.0.0.1


Web Server

OS ContOS 6.5(CentOS-6.5-x86_64-minimal.iso)
VMware Player 6.0.2
Apache 2.2.15
Host web01
IP 192.168.0.110
Gateway 192.168.0.1
DNS 192.168.0.10
FQDN web01.mydomain.local


Windows クライアント

OS Windows 8.1
レルム MYDOMAIN.LOCAL
ドメイン MYDOMAIN
Host win01
IP 192.168.0.150
Gateway 192.168.0.1
DNS 192.168.0.10


Primary Domain Controller の構築

わたしも blog にまとめているのでそちらを参考に構築してみてください。
『Samba4 で Active Directory / SerNet Repo でセットアップ』
『Samba4 で ActiveDirectory / インストール編 - わたしもやってみた - 』
『Samba4 で ActiveDirectory / PDC編 - わたしもやってみた - 』


Web Server の構築

とりあえず SELinux と iptables は止めておこう。
/etc/selinux/config
...
SELINUX=disabled
...
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off


ネットワークの設定は次のような感じ。
/etc/sysconfig/network-scripts/ifcfg-eth0
...
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.110
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
...
/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=web01
DNS は PDC のものを利用する。
/etc/resolv.conf
domain mydomain.local
nameserver 192.168.0.10

必要なモジュールをインストールしていく。
Apache は当然として Samba AD とアクセスするために Kerberos 関連のものと
テストページ用に php もインストールする。
yum -y install httpd krb5-workstation mod_auth_kerb php
サービスの起動設定をしておく。
chkconfig httpd on

ここで再起動します。
reboot

PDC にログインして Web Server の 正引き DNS の設定をします。
一応確認もしておく。
ssh root@pdc
samba-tool dns add pdc mydomain.local web01 A 192.168.0.110
dig web01.mydomain.local
exit


Windows クライアントの設定

とりあえず MYDOMAIN.LOCAL ドメインへの参加くらいでしょうか?
ドメイン参加しているのであれば DNS は PDC に設定されていると思うので DNS の設定は 大丈夫だと思う。
もし hosts ファイルに Web Server の IP を追加するなら以下のような感じ。
C:\Windows\System32\drivers\etc\hosts
...
192.168.0.110  web01.mydomain.local web01

ここまでできたら Web ブラウザで「http://web01.mydomain.local」を開いて Apache が動いているか確認する。


Samba AD のユーザで Basic 認証

手始めに Apache から Samba AD にアクセスできているかの確認も兼ねて
Basic 認証の設定をしてみようと思います。
雰囲気としては、.htpasswd ファイルの代わりに Samba AD のユーザデータを使う感じだと思います。
では Web Server の設定をしていきます。
httpd.conf に追加してもよいのだけれども mod_auth_kerb をインストールすると
auth_kerb.conf が生成されていると思うのでこちらを編集します。
/etc/httpd/conf.d/auth_kerb.conf
<location "/">
  AuthName "AD authentication"
  AuthBasicProvider ldap
  AuthType Basic
  AuthLDAPGroupAttribute member
  AuthLDAPGroupAttributeIsDN On
  AuthLDAPURL ldap://pdc:389/cn=Users,dc=mydomain,dc=local?sAMAccountName?sub?(objectClass=*)
  AuthLDAPBindDN cn=administrator,cn=Users,dc=mydomain,dc=local
  AuthLDAPBindPassword passwd-123
  require valid-user 
</Location>
Apache から Samba AD にアクセスするユーザを administrator にしています。
パスワードは passwd-123 にしています。

確認用のテストページを以下の内容で作成します。
/var/www/html/index.php
<html>
  <head>
    <title>Samba AD User</title>
  </head>
  <body>
    <h2>Samba AD User</h2>
    <pre>
      USER : <?php echo $_SERVER['PHP_AUTH_USER']; ?>
      PASS : <?php echo $_SERVER['PHP_AUTH_PW']; ?>
    </pre>
  </body>
</html>

ここで再起動します。
reboot

再起動が終わったら Windows で Web ブラウザから「http://web01.mydomain.local」を開いてみます。
Basic 認証 のダイアログが表示されると思います。
適当な Samba AD ユーザを入力して「OK」ボタンを押します。
すると画面に入力したユーザIDとパスワードが表示されていると思います。
パスワードまでが表示されてしまっているのは Basic 認証 なんで仕方ないのでしょう。
今は Basic 認証 の確認なので Windows はドメインログインでなくローカルログインでも
検証できると思います。
また、Web Server もドメイン参加していなくても大丈夫そうです。


Windows Desktop SSO 認証の設定

さて、いよいよ本題の Windows 統合認証の設定に入りたいと思います。
まず、PDC 側での作業から始めます。
Web Server の DNS の正引きの設定に加えて逆引きの設定も必要だとのことなので
PDC の DNS に逆引きゾーンを追加して Web Server の 逆引き設定をする。
ssh root@pdc
samba-tool dns zonecreate pdc 0.168.192.in-addr.arpa
samba-tool dns add pdc 0.168.192.in-addr.arpa 110 PTR web01.mydomain.local
わたしのPDCの場合 administrator@MYDOMAIN.LOCAL のパスワードは passwd-123 になります。
DNS の正引き、逆引き設定ができているか確認します。
dig web01.mydomain.local 
dig -x 192.168.0.110

次に Web Server のための Service Principal を追加します。
どのユーザでも構わないと思うのですが
Service Principal 追加時に関連付けするユーザが必要なので
ここでは sso ユーザを作成しています。
そして作成した Service Principal を keytab ファイルに出力します。
cd /root
samba-tool user create --random-password sso
samba-tool user setexpiry --noexpiry sso
samba-tool spn add HTTP/web01.mydomain.local sso
samba-tool domain exportkeytab httpd.keytab --principal=HTTP/web01.mydomain.local  
出力した keytab ファイルを Web Server に転送して
Web Server に戻ります。
scp httpd.keytab root@192.168.0.110:/etc/httpd/conf/httpd.keytab
rm httpd.keytab
exit

Web Server に戻ってきたら 転送した keytab ファイルの権限を変更します。
一応、keytab ファイルの中身も確認しておきます。
chown root:apache /etc/httpd/conf/httpd.keytab
chmod 640 /etc/httpd/conf/httpd.keytab
klist -ke /etc/httpd/conf/httpd.keytab

次は Kerberos の設定をします。
mv /etc/krb5.conf /etc/krb5.conf.original
以下のような内容で krb5.conf を作成します。
/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 = MYDOMAIN.LOCAL
  dns_lookup_realm = false
  dns_lookup_kdc = false
  ticket_lifetime = 24h
  renew_lifetime = 7d
  forwardable = true

[realms]
  MYDOMAIN.LOCAL = {
    kdc = pdc.mydomain.local
    admin_server = pdc.mydomain.local
  }

[domain_realm]
  .mydomain.local = MYDOMAIN.LOCAL
  mydomain.local = MYDOMAIN.LOCAL
Kerberos チケットのクリアと初期化、そして確認をします。
kdestroy
kinit administrator@MYDOMAIN.LOCAL
klist

その次に Apache の設定をします。
auth_kerb.conf を以下のような内容に編集します。
/etc/httpd/conf.d/auth_kerb.conf
<location "/">
  AuthType Kerberos
  AuthName "Network Login"
  KrbMethodNegotiate On
  KrbMethodK5Passwd On
  KrbAuthRealms MYDOMAIN.LOCAL
  require valid-user
  Krb5KeyTab /etc/httpd/conf/httpd.keytab
  KrbLocalUserMapping On 
</Location>
Apache を再起動します。
service httpd restart
確認用のテストページは、先ほどの Basic 認証で作成したものをそのまま使います。
これで Web Server の設定は終わりです。

Windows にドメインログインします。
確認用のテストページを開く前に Windows のブラウザの設定をします。
IE の場合
  「ツール」/「インターネット オプション」を開く。
  「セキュリティ」タブを選択する。
      「ローカル イントラネット」を選択する。
        「サイト」ボタンを押す。
          「ローカル イントラネット」ダイアログの「詳細設定」ボタンを押す。
            「http://web01.mydomain.local」を追加する。
        「レベルのカスタマイズ」ボタンを押す。
            「イントラネット ゾーンでのみ自動的にログインする」にチェックを入れる。
  「詳細設定」タブを選択する。
      「統合 Windows 認証を使用する」にチェックを入れる。
Firefox の場合
  アドレスバーに「about:config」と入力して以下のプロパティを設定する。
      network.negotiate-auth.delegation-uris    web01.mydomain.local
      network.negotiate-auth.trusted-uris       web01.mydomain.local
Web ブラウザから「http://web01.mydomain.local」を開いてみます。
HTTP 認証 のダイアログなしに画面にドメインログインしているユーザIDが
表示されていれば OK です。
Basic 認証の時と違ってパスワードは表示されていないと思います。
Windows はドメインログインしていないとうまくいかないと思うけど
Web Server はドメイン参加していなくても問題なさそうです。


おわりに

内々で使うちょっとしたサイトでユーザ認証がほしいという時には使えそうだ。
ユーザが所属するドメインのグループを条件にアクセス制限もかけられそうだ。
ガッツリ作りこむような Web アプリには厳しそうだ。
HTTP 認証のダイアログでなく独自のログイン画面がほしいだろうし
ユーザID 以外の ActiveDirectory に登録された情報もほしいところだ。
参考URL
https://wiki.samba.org/index.php/Samba4/beyond
https://community.zarafa.com/pg/blog/read/18332/zarafa-outlook-amp-webaccess-sso-with-samba4
http://int128.hatenablog.com/entry/20130829/1377768762
http://passing.breeze.cc/mt/archives/2008/12/active-directory-apache-window.html

2014年5月14日水曜日

Samba4 で Active Directory / SerNet Repo でセットアップ

はじめに

Samba4.1 がリリースされていた。
またセットアップしてみようかなと Samba Wiki をぶらぶらしていると
Samba4 の yum リポジトリを公開しているサイトを見つけた。
おぉ!これは助かる!!
という訳で今回は、yum で Samba4 をしてみようと思います。
ではでは Getting Started!

yum リポジトリの設定

これがないと始まらない。
EnterpriseSamba.com というところが Samba4 yum リポジトリを公開しているようだ。
利用するためにはユーザ登録が必要になる。
このサイトの Samba のページに移動して register のリンクから  Sign up を行う。
メールアドレスの確認やなんやかんやあって一通りユーザ登録が終わったら Login してみる。
ログインしたページをよ~く見ると username と accesskey が表示されているので
これをしっかりメモっておく。
さて準備が整ったところで yum リポジトリの設定をします。
まず yum リポジトリを取得します。
以下のコマンドの USERNAME:ACCESSKEY の部分を
先ほどメモった username と accesskey に置き換えて実行します。
cd /etc/yum.repos.d
wget https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.1/centos/6/sernet-samba-4.1.repo
今度は、取ってきた yum リポジトリをエディタで開いて baseurl と gpgkey の
USERNAME:ACCESSKEY の部分を先ほどメモった username と accesskey に置き換えて保存します。
/etc/yum.repos.d/sernet-samba-4.1.repo
[sernet-samba-4.1]
name=SerNet Samba 4.1 Packages (centos-6)
type=rpm-md
baseurl=https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.1/centos/6/
gpgcheck=1
gpgkey=https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.1/centos/6/repodata/repomd.xml.key
enabled=1
最後に gpg build key の設定をして終わりです。
cd /root
wget http://ftp.sernet.de/pub/sernet-build-key-1.1-4.noarch.rpm
rpm -i sernet-build-key-1.1-4.noarch.rpm


インストール

といっても yum を実行するだけです。
yum install -y sernet-samba sernet-samba-ad  sernet-samba-client
/var/lib/samba ディレクトリにデータファイルがインストールされていると思います。
smb.conf は /etc/samba ディレクトリに出力されるようです。
ただ、サービス名が sernet-samba-ad、sernet-samba-smbd、sernet-samba-nmbd、sernet-samba-winbindd
となりソースからインストールした時と異なるのがちょっと微妙かなぁ。

PDC の構築

せっかくなので Primary Domain Controller も構築してみたいと思います。
環境

OS ContOS 6.5(CentOS-6.5-x86_64-minimal.iso)
Samba 4.1.7
Bind 9.8.2
NTP 4.2.6p5
レルム MYDOMAIN.LOCAL
ドメイン MYDOMAIN
Host pdc
IP 192.168.0.10
Gateway 192.168.0.1
DNS 127.0.0.1

Samba 以外の設定でハマりたくないので SELinux と iptables は止めておく。
/etc/selinux/config
...
SELINUX=disabled
...
service iptables stop
service ip6tables stop
chkconfig iptables off
chkconfig ip6tables off

ネットワークの設定は次のような感じ。
/etc/sysconfig/network-scripts/ifcfg-eth0
...
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.10
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
...
/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=pdc
/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.10 pdc.mydomain.local pdc

Samba のサービスのなかで PDC で使わないものを止めておきます。
chkconfig sernet-samba-ad on
chkconfig sernet-samba-smbd off
chkconfig sernet-samba-nmbd off
chkconfig sernet-samba-winbindd off

このあたりで再起動してみる。
reboot

セットアップに必要なライブラリは一通り yum でインストールされているのだけど
Bind と NTP がインストールされていないので追加します。
Kerbors のコマンド類もインストールされていないのでそれも追加します。
NTP も signed ntp が サポートされたものが yum で提供されているようなので
合わせてインストールします。
yum install -y bind ntp krb5-workstation
サービスの起動設定をしておく。
chkconfig named on
chkconfig ntpd on

では、ドメインコントローラーの設定します。
まず、Samba が Active Directory モードで起動するように sernet-samba ファイルを編集します。
/etc/default/sernet-samba
...
SAMBA_START_MODE="ad"
...
smb.conf などドメインコントローラーに必要なファイル一式を出力します。
samba-tool domain provision \
  --use-rfc2307 \
  --function-level=2008_R2 \
  --use-ntvfs \
  --realm=MYDOMAIN.LOCAL \
  --domain=MYDOMAIN \
  --server-role=dc \
  --dns-backend=BIND9_DLZ \
  --adminpass 'passwd-123'
--use-ntvfs
--function-level=2008_R2 にした場合 --use-ntvfs オプションも必要になるみたいです。
出力された smb.conf をチェックする。
testparm
smb.conf は以下のような感じ。
/etc/samba/smb.conf
[global]
 workgroup = MYDOMAIN
 realm = MYDOMAIN.LOCAL
 netbios name = PDC
 server role = active directory domain controller
 server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate, smb
 dcerpc endpoint servers = epmapper, wkssvc, rpcecho, samr, netlogon, lsarpc, spoolss, drsuapi, dssetup, unixinfo, browser, eventlog6, backupkey, dnsserver, winreg, srvsvc
 idmap_ldb:use rfc2307 = yes
 
 winbind use default domain = yes
 template shell = /bin/bash

[netlogon]
 path = /var/lib/samba/sysvol/fummy.local/scripts
 read only = No

[sysvol]
 path = /var/lib/samba/sysvol
 read only = No

Kerberos の設定ファイルが出力されているので差し替える。

mv /etc/krb5.conf /etc/krb5.conf.original
cp /var/lib/samba/private/krb5.conf /etc/krb5.conf

krb5.conf は以下のような感じ。

/etc/krb5.conf
[libdefaults]
  default_realm = MYDOMAIN.LOCAL
  dns_lookup_realm = false
  dns_lookup_kdc = true

Bind の設定は次のような感じ。
ソースからインストールした時と変わらないのだけど
ファイル Path が違っているのでそのあたりを確認する。
/etc/named.conf
options {
  ...
  listen-on port 53 { any; };
  ...
  allow-query     { any; };
  ...
  tkey-gssapi-keytab "/var/lib/samba/private/dns.keytab";
};
...
include "/var/lib/samba/private/named.conf";
dns.keytab の権限の設定をする。
chgrp named /var/lib/samba/private/
chgrp named /var/lib/samba/private/named.conf
chmod g+r /var/lib/samba/private/dns.keytab
chown -R named:named /var/lib/samba/private/dns
/etc/rndc.key を生成する。
rndc-confgen -a -r /dev/urandom
resolv.conf の設定をする。
/etc/resolv.conf
domain mydomain.local
nameserver 127.0.0.1

Samba4、Bindを再起動する。

service sernet-samba-ad start
service named restart

ここで NTP の設定もしておこう。
ここもソースからインストールした時と変わらないのだけど
ntp_signd ディレクトリの Path が違っているのでそのあたりを確認する。
/etc/ntp.conf
server 127.127.1.0
fudge 127.127.1.0 stratum 10
server 0.pool.ntp.org iburst prefer
server 1.pool.ntp.org iburst prefer
driftfile /var/lib/ntp/ntp.drift
logfile /var/log/ntp
ntpsigndsocket /var/lib/samba/ntp_signd
restrict default kod nomodify notrap nopeer mssntp
restrict 127.0.0.1
restrict 0.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
restrict 1.pool.ntp.org mask 255.255.255.255 nomodify notrap nopeer noquery
NTP との連動ために ntp_signd ディレクトリの権限を変更する。
時刻合せした後、NTP を起動する。
chmod 750 /var/lib/samba/ntp_signd
ntpdate ntp.nict.jp
service ntpd start

DNS を更新する。
samba_dnsupdate --verbose --all-names
更新した DNS の設定を確認する。
not found: 3(NXDOMAIN) とかが返ってこないことを確認する。
host -t SRV _ldap._tcp.mydomain.local.
host -t SRV _kerberos._udp.mydomain.local.
host -t A pdc.mydomain.local.

Kerberos のチケットを一旦クリアした後、初期化と確認をします。
administrator@MYDOMAIN.LOCAL のパスワードは今回の場合、passwd-123 になります。
kdestroy
kinit administrator@MYDOMAIN.LOCAL
klist

とりあえず以下のコマンドで ログインできれば設定は OK だ。
smbclient //localhost/netlogon -U administrator
以下のようにして administrator のパスワードの期限を無効にしておく方が検証には便利かも?
samba-tool user setexpiry --noexpiry administrator

ドメインユーザを追加してログインしてみる。
Windows からだとこの状態でもログインできるのだけれども 
CentOS からだと、もうすこし設定が必要だ。
Winbind を使ってドメインユーザがログインできるように PAM の設定する。
LANG=en_US.UTF-8 authconfig --enablewinbindauth --update
LANG=en_US.UTF-8 authconfig --enablemkhomedir --update
authconfig について
authconfig コマンドで Winbind の PAM 設定をすると
「サービス winbind に関する情報の読み込み中にエラーが発生しました: 
そのようなファイルやディレクトリはありません
winbind: 認識されていないサービスです。
error reading information on service winbind: No such file or directory
winbind: unrecognized service」
というようなエラーメッセージが表示されると思います。
原因はきっと winbind のサービス名が sernet-samba-winbindd になっているからだと思います。
なので sernet-samba-winbindd のサービス名を winbind に変更して authconfig を実行してみると
今度は「sernet-samba ファイルの SAMBA_START_MODE の設定を ad から classic に変更してほしい」的な
警告が出ます。
エラーメッセージや警告は出るものの PAM 設定自体はできている。
また、Samba AD にした場合、Winbind そのものを使う訳でもない。
この辺りは PAM 設定でなく yum のパッケージング(winbind の起動スクリプト?)の問題だと思う。
エラーメッセージや警告が気になるからといって PAM を手動で設定するのはちょっと…
またいつの日にかこの問題が解消されることを期待しましょう。
nsswitch.conf を以下のように編集して
/etc/nsswitch.conf
... 
passwd:     compat winbind
shadow:     files
group:      compat winbind
...
ドメインユーザを追加したら
samba-tool user add user01
ドメインログイン!!!
ssh user01@pdc
administrator でドメインログイン
やっぱり administrator は ssh で 自身の PDC に CentOS からドメインログインできなかった。
普通に追加したドメインユーザであればログインはできるのに。
まぁこれはこんなもんなんだろう。

Member Server の構築

Member Server も構築してみたいと思います。
先ほど構築した PDC にドメイン参加する形になります。
環境

OS ContOS 6.5(CentOS-6.5-x86_64-minimal.iso)
VMware Player 6.0.2
Samba 4.1.7
Bind 9.8.2
NTP 4.2.6p5
レルム MYDOMAIN.LOCAL
ドメイン MYDOMAIN
Host mbr01
IP 192.168.0.100
Gateway 192.168.0.1
DNS 192.168.0.10


PDC の時と同様に SELinux と iptables は一旦止めておいた方がハマらないと思う…
ネットワークの設定は次のような感じ。
/etc/sysconfig/network-scripts/ifcfg-eth0
...
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
...
/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=mbr01
/etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.0.100 mbr01.mydomain.local mbr01
DNS は PDC のものを利用しようと思うので DNS を PDC に設定する。
/etc/resolv.conf
domain mydomain.local
nameserver 192.168.0.10
ipv6 を無効化しておきます。
以下のような内容で disable-ipv6.conf を作成します。
/etc/modprobe.d/disable-ipv6.conf
options ipv6 disable=1
ipv6 の無効化
ドメイン参加時に
「print_kdc_line: can't resolve name for kdc with non-default port [::]. Error 
名前またはサービスが不明です」的なエラーメッセージは出るものの 
ipv6 を無効にしなくてもドメイン参加はできているようです。
Samba のサービスのなかで Member Server で使わないものを止めておきます。
chkconfig sernet-samba-ad off
chkconfig sernet-samba-smbd off
chkconfig sernet-samba-nmbd off
chkconfig sernet-samba-winbindd on

ここで一度、再起動する。
reboot

追加で必要なライブラリをインストールする。
yum install -y ntp krb5-workstation
サービスの起動設定をしておく。
chkconfig ntpd on
今回の Member Server では Bind を使わないのでインストールしている場合は OFF っておいてください。

まずは、Kerberos の設定から行います。
mv /etc/krb5.conf /etc/krb5.conf.original
以下のような内容で krb5.conf を作成します。
/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 = MYDOMAIN.LOCAL
  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
  }
Kerberos のチケットをクリアしてから初期化と確認をします。
administrator@MYDOMAIN.LOCAL のパスワードは今回の場合、passwd-123 になります。
kdestroy
kinit administrator@MYDOMAIN.LOCAL
klist

では Member Server の設定をします。
きっと Winbind を使うことになりそうなので
Samba が Classic モードで起動するように sernet-samba ファイルを編集します。
/etc/default/sernet-samba
...
SAMBA_START_MODE="classic"
...
smb.conf は以下のような感じ。
/etc/samba/smb.conf
[global]
  netbios name = MBR01
  workgroup = MYDOMAIN
  security = ads
  realm = MYDOMAIN.LOCAL
  encrypt passwords = yes

  idmap config *:backend = tdb
  idmap config *:range = 70001-80000
  idmap config MYDOMAIN:default = yes
  idmap config MYDOMAIN:backend = rid
  idmap config MYDOMAIN:range = 10000 - 19999

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

  template shell = /bin/bash
ドメインに参加します。
net ads join -U administrator
DNS を確認しておきます。
dig mbr01.mydomain.local
samba-tool について
Setup_a_Samba_AD_Member_Server によると 
samba-tool コマンドを使った Member Server のドメイン参加は、まだ未対応のようで
現段階では、traditional な方法でのセットアップになるみたいだ。
以下のように smb.conf など Member Server に必要なファイル一式を出力するとか
samba-tool domain provision \
  --realm=MYDOMAIN.LOCAL \
  --domain=MYDOMAIN \
  --server-role=member \
  --dns-backend=NONE \
  --adminpass 'passwd-123'
以下のようにしてドメイン参加もできないみたいだ。
samba-tool domain join mydomain.local MEMBER \
  -U administrator \
  --password=passwd-123 \
  --realm=mydomain.local
NTP の設定もしておこう。
/etc/ntp.conf
server 127.127.1.0
fudge  127.127.1.0 stratum 10

server pdc.mydomain.local iburst prefer

driftfile /var/lib/ntp/ntp.drift
logfile   /var/log/ntp

restrict default ignore
restrict 127.0.0.1
restrict pdc.mydomain.local mask 255.255.255.255 nomodify notrap nopeer noquery

設定が終わったら時刻合せをして Winbind、NTP を起動する。
ntpdate ntp.nict.jp
service ntpd start
service sernet-samba-winbindd start

ドメインユーザを追加してログインできるか確かめてみる。
Winbind の PAM を設定することになるのだけど
この状態で authconfig を使うとサービス名が違うたら無いたらふぅたらいわれる。
別に設定はできるので問題ないと思うのだが
うるさいと感じる場合はサービス名を変更してしまう。
service sernet-samba-winbindd stop
cd /etc/rc.d/init.d
cp sernet-samba-winbindd winbind
chkconfig --del sernet-samba-winbindd
chkconfig --add winbind
chkconfig winbind on
chkconfig --list
service winbind start
静になったところで Winbind の PAM の設定する。
LANG=en_US.UTF-8 authconfig --enablewinbindauth --update
LANG=en_US.UTF-8 authconfig --enablemkhomedir --update
nsswitch.conf を以下のように編集したら
/etc/nsswitch.conf
... 
passwd:     compat winbind
shadow:     files
group:      compat winbind
...
あとは PDC 側でドメインユーザを追加したら
ssh root@pdc
samba-tool user add user02
ログインして Member Server に戻ってこれればとりあえず OK だ。
ssh user02@mbr01


おわりに

微妙なところ(サービス名など)もあったが yum を使うと格段にセットアップが楽になった。
検証用には十分楽しめると思う。
しかし実運用となると MS AD を使いたいというのが本音か?!
参考URL
http://folgaizer.wordpress.com/2013/12/12/samba4-on-centos-6-4/
http://www.reddrop.net/howto_samba4_ActiveDirectory_Bind_DLZ
https://wiki.samba.org/index.php/Setup_a_Samba_AD_Member_Server
http://web.chaperone.jp/w/index.php?samba4%2Fuser