samba4でActive Directory

ドメイン0を認証サーバにするため、Windows環境のユーザも一括で制御したい。
できればドメイン0でActiveDirectory使いたい。
けど、sambaって確か、ADのドメイン参加はできたけど、PDCにはなれなかったよなーって思って一応sambaの公式いってみた。
samba4っていう文字が見える。
メジャーナンバー上がってる。
これはもしかして?とおもって調べてみたら、やはりそうだった。
samba4ではADのPDCになれるっぽいぞ!

ということで、Debian lennyではsambaは3系なので、借りてくることにする。
/etc/apt/source.listにexperimentalのラインを書き加え、APT Pinningの設定をする。
samba4はまだsidでもないみたいなので、experimental利用しないといけない。
そしてインストール。

# aptitude install samba4 samba4-clients

んだが、なんかsmbpasswdとかないし、いまいち怪しいので結局ソースからコンパイルして使うことに変更。

ということでソースも入手する。
gitかrsyncで入手可能。
なんだけども、gitでうまくいかないので今回はrsyncを用いた。

$ rsync -avz samba.org::ftp/unpacked/samba_4_0_test/ samba-master

以降はgitで最新版を取得できるようにいじる。

 $ cd samba-master/
 $ rm .git/objects/info/alternates
 $ rm .git/refs/tags/*
 $ rm -r .git/refs/remotes/
 $ git config remote.origin.url git://git.samba.org/samba.git
 $ git config --add remote.origin.fetch +refs/tags/*:refs/tags/*
 $ git fetch

ソースをコンパイルするためのライブラリをインストール。

# aptitude install libattr1-dev libblkid-dev libgnutls-dev libreadline5-dev python-dev

コンパイル&インストール

$ cd samba-master/source4
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

DCとしての設定を生成。

# ./setup/provision –realm=waterblue.net –domain=WATERBLUE –adminpass=SOMEPASSWORD –server-role=’domain controller’

bindのインストール

# aptitude install bind9

bindおよびケルベロス認証のsamba関連の設定

/etc/bind/named.confに以下を追記

include “/usr/local/samba/private/named.conf”;

/etc/bind/namd.conf.optionsに以下を追記

tkey-gssapi-credential “DNS/waterblue.net”;
tkey-domain “WATERBLUE.NET”;

/etc/samba/private/named.confの以下を編集

zone “123.168.192.in-addr.arpa” in {
type master;
file “123.168.192.in-addr.arpa.zone”;
update-policy {
grant *.NET wildcard *.123.168.192.in-addr.arpa. PTR;
};
};

zone “1.168.192.in-addr.arpa” in {
type master;
file “1.168.192.in-addr.arpa.zone”;
update-policy {
grant *.NET wildcard *.1.168.192.in-addr.arpa. PTR;
};
};

/usr/local/samba/private/krb5.confを/etc以下にこぴぺ。
dns.keytabをbindに読めるように変更

# chgrp bind dns.keytab
# chmod 640 dns.keytab

/etc/default/bind9に以下を追記

export KRB5_KTNAME=”/usr/local/samba/private/dns.keytab”

そして次に、ファイルシステムの設定。
ext3ファイルシステムを用いている場合は、拡張属性を有効にする。
カーネルがサポートしているかどうかは、カーネルの設定を確認。

  CONFIG_EXT3_FS_XATTR=y
  CONFIG_EXT3_FS_SECURITY=y

有効でない場合はカーネルを再構築するか、

  posix:eadb = /usr/local/samba/eadb.tdb

を使うことでエミュレートできる。
今回は取り扱うパーティションがルートパーティションになっているため、fstabを書き換えて再起動する。

/dev/MS-09/ms09 /               ext3    errors=remount-ro,user_xattr 0       1

user_xattrオプションをつけてマウントするようにする。
再起動したら有効になっているか確認。

 # touch test.txt
 # setfattr -n user.test -v test test.txt
 # setfattr -n security.test -v test2 test.txt
 # getfattr -d test.txt
 # getfattr -n security.test -d test.txt

こんな結果が帰ってきたらOK。

 # file: test.txt
 user.test="test"
 # file: test.txt
 security.test="test2"

これでアクティブディレクトリのPDCとして動作するようになったらしい。

しかし、ここまできてsamba4を使わないことに。
LDAPとの連携の設定がうまくいかない。
slapdが意味不明に起動しない。
しかたがないのでここまでやりながら全部削除した。
samba3系でNTドメインつかってやるかー。

「samba4でActive Directory」への1件のフィードバック

  1. ADドメインにPDCは無いですよ。それはNTドメインです。
    PDCエミュレータというFSMOはいますが、あくまでエミュレータです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>