*古い記事です。最新版をご覧ください。

SAMBAでADを作ってみる

■準備
samba4のコンパイルに必要なライブラリを予めインストールします。

yum install libacl-devel libblkid-devel gnutls-devel readline-devel python-devel gdb pkgconfig (公式から)

*sl6も同じ
ですが、centosではlibblkid-develは存在しないようだ。実はこれ、e2fsprogs-libsに入っていている(rpm -qaliから)。
ので、その開発用ライブラリとしてe2fsprogs-develをインストールします。

yum install e2fsprogs-devel

あと

yum install libtevent-devel libtalloc-devel libtdb-devel krb5-workstation
yum --enablerepo=rpmforge install python-dns.noarch

*sl6も同じ。python-dnsは、pkgs.orgからEPEL版をインストール
としました

▼注意
以下不要
なんかpythonが古くてsamba4のmake testができない感じなので。
wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz
gtar xzf Python-2.6.6.tgz
./configure --enable-shared
make; make install
ほか、
wget http://www.samba.org/ftp/pub/ldb/ldb-1.1.0.tar.gz
wget http://www.samba.org/ftp/talloc/talloc-2.0.5.tar.gz
wget http://www.samba.org/ftp/tdb/tdb-1.2.9.tar.gz
wget http://www.samba.org/ftp/tevent/tevent-0.9.11.tar.gz
らもあるべきなのか....
ここまで

■samba4インストール

wget http://ftp.samba.org/pub/samba/samba4/samba-4.0.0alpha15.tar.gz
tar zxvf samba-4.0.0alpha15.tar.gz
cd samba-4.0.0alpha15
(注意を実行した場合)export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
./configure --prefix=/opt/samba --enable-selftest
make
make quicktest(結果がALL OKだと最低限大丈夫。make testとするとエラーがちらほら出る。回収がめんどいのでそのまま)
make install

■ADの設計
既存にchaperone.jpなるドメインがあり、DNSが既にある。このDNSに間借りしてADを組んでもいいのだが、
テスト目的としては避けたい。なので、ADサーバ内にDNSを別途構築して cerius.local なるドメインを
設計することとする。
/etc/sysconfig/networkとか/etc/resolv.confおよび/etc/hostsを修正して、所属ドメインをcerius.localにします

■adドメインの定義とadministratorの作成、並びにbind設定用ファイルの作成
sambaを起動しない状態で、下記コマンドでadサーバ(c3.cerius.local)とそのadドメイン(CERIUS)およびドメインadminのパスワード(SOMEPASSWORD)を定義します。

/opt/samba/sbin/provision --realm=c3.cerius.local --domain=CERIUS --adminpass=SOMEPASSWORD --server-role='domain controller'
もしくは対話的に
/opt/samba/sbin/provision --interactive

(/usr/sbin/rndcがないとエラーになる。下記のbindをインストールしてlinkするのがいいかも[ln -s /opt/bind/sbin/rndc /usr/sbin/rndc])

っで、実際にsambaを稼働させて、administratorで認証させてみる。
/opt/samba/sbin/samba -i -M single (sambaが稼働します)
ドメインadminでの認証テスト
/opt/samba/bin/smbclient //localhost/netlogon -Uadministrator
Password for [CERIUS\administrator]: <パスワード(SOMEPASSWORD)を入力>

■bindの調整
どうも、bind-9.7.2rc1以上でないとwindows7やwindows2008serverのダイナミックDNS更新を受けてくれないとか....

yum install libgssapi-devel
wget http://ftp.riken.jp/net/bind/9.7.3/bind-9.7.3.tar.gz
tar xzvf bind-9.7.3.tar.gz
cd bind-9.7.3
./configure --disable-openssl-version-check --prefix=/opt/bind --with-gssapi
make
make install
/opt/bind/sbin/rndc-confgen -a -b 512 -k rndc.key  (rndcの共通鍵作成。rndc:oracleのsqlplusなもの?)
mkdir -p /opt/bind/var/named
vi /opt/bind/etc/named.conf    (provisionコマンドで作成されたnamed.confをincludeさせ、named.txtに記載された追記を行う)
vi /etc/init.d/named     (同じくprovisionコマンドで作成された環境変数KEYTAB_FILEとKRB5_KTNAMEを予め与え起動させる)
vi /etc/resolv.conf     (DNSサーバを自身とさせます)
chkconfig named on
/etc/init.d/named start   (namedを起動させます。/var/log/messageにエラーが出たら対処)

参照:named.confnamed

■bindの動作テスト
テストしてみます。

[root@c3 ~]# host -t SRV _ldap._tcp.cerius.local.
       _ldap._tcp.cerius.local has SRV record 0 100 389 c3.cerius.local.
[root@c3 ~]# host -t SRV _kerberos._udp.cerius.local.
       _kerberos._udp.cerius.local has SRV record 0 100 88 c3.cerius.local.
[root@c3 ~]# host -t A c3.cerius.local.
       c3.cerius.local has address 192.168.0.107

とsambaのprovisionコマンドで作成したadドメイン情報が引けるので、これでbindは完成っぽい

■krb5
ケルベロス君。
sambaのprovisionコマンドで作成された krb5.conf を /etc/krb5.conf とします。従来のは /etc/krb5.conf_ とかに変更
mv /etc/krb5.conf /etc/krb5.conf_
cp /opt/samba/private/krb5.conf /etc/krb5.conf
っで、krb5の動作確認(sambaが動いている条件でね)

[root@c3 ~]# kinit administrator@CERIUS.LOCAL
Password for administrator@CERIUS.LOCAL:
Warning: Your password will expire in 41 days on Wed Jun 15 22:06:48 2011

とこちらも大丈夫

以上で、SAMBAをADとして稼働させることは成功と思えます

っで、次はユーザの事。/homeにユーザを作ってUNIX/Windows共通のホームディレクトリにしたり、
/home/projectとか複数のユーザ・グループで共有する場合には従来のUNIXファイルシステムでは無理。
なので、XATTRを使うのですが、ファイルシステムがこのXATTRに対応している事が必須。
対応しているとして、/etc/fstabの中身を

/dev/mapper/V00-L01 /home ext3 user_xattr 1 1 

とします。

備考とか
■samba起動スクリプト
参照:samba
chmod 755 /etc/init.d/samba
chkconfig --add samba

■adアカウント作成
現在のアカウントポリシー表示
/opt/samba/bin/samba-tool pwsettings show
ユーザ作成
/opt/samba/bin/samba-tool newuser usera
New Password:
User usera created successfully

■windowsクライアントのドメイン参加
windowsXP64bitで確かめた。
作成したuseraでは「error in module acl: insufficient access rights (50)」と言われた。
なのでadmnistratorで行ったら、参加できた。
参加作業後は、この作成したユーザでのログインもできるのだが....


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2012-09-05 (水) 20:39:43 (2694d)