kenkino’s diary

おそらく技術・グッズ・自転車系 ※当ブログは、Amazonアソシエイトやその他アフィリエイト等の収益メディアを表示しております。

FreeBSDでSamba4 ActiveDirectory Domain Controller


去年の頭に「Samba4でActiveDirectory のDomain Controllerが構築出来るらしい」ということで調べて見たところCentOSとかでの設定手順があり、試しにやってみたところアッサリ設定が完了WindowsPCのドメイン認証・ユーザー設定も問題無く設定を行う事が出来た

Linuxでもやれるって事はFreeBSDでも」ということで調べたところ
https://forums.freebsd.org/viewtopic.php?t=36137
http://www.whitneytechnologies.com/?p=422
を発見、「これなら出来そうか」ということで試して見ることに、FreeBSDportsを確認したところsamba4があったのだがSambaがLinux向けに手順を公開していたのでgitからソースをダウンロード->ビルドしてみることにした。

インストール前の設定の設定としてはまずはaclsだろうこれは/etc/fstab のルートディレクトリのオプションにaclsを加えれば良い、そのあと

mount -o acls / 

でマウントし直し次にresolv.confで自マシンのIPアドレスを追加する、その後はportsよりgitをインストール

cd /usr/ports/devel/git 
make
make install
clean

必要なパッケージのダウンロード・設定で色々聞かれるがデフォルトで進めてしまって問題無い、インストール後はgitでソースをダウンロード

cd /root
git clone git://git.samba.org/samba.git samba4

ダウンロード後、python2.7 をpythonにリンク

ln -s /usr/local/bin/python2.7 /usr/local/bin/python

その後ビルド・インストール

cd samba4
./configure --enable-debug --enable-selftest
make
make install

問題無くインストールができたら以下コマンドでドメインを設定、諸々設定項目を聞かれるが、上に紹介したページを参照しながら設定は出来ると思う

/usr/local/samba/bin/samba-tool domain provision

ドメインの設定が終わったら/usr/local/samba/share/setup/krb5.conf を/etc/にコピーして上記紹介したページでの記述を元に修正、後は

/usr/local/samba/sbin/samba

でsamba4を起動してdnsやkerberosの設定に問題も無く無事に設定が完了した


FreeBSD 10.0RELEASEではldapのライブラリを求められたためportsよりopenldap-serverをインストール、しかしgitよりソースをダウンロードしてビルドしようとしたところエラーでビルドが停止

ソースのダウンロードで問題があったかと思い9.2RELEASEで使用したソースを使用してみたが、やはり結果は同じで首を捻っていたところsambaのMLでCコンパイラのclangでビルドした際にトラブルが発生したとの記述を発見
https://lists.samba.org/archive/samba-technical/2013-June/093391.html

10.0RELEASEではビルドの際に使用するコンパイラgccからclangに変わっている関係でソースを変更する必要があったようで

'--- a/lib/util/string_wrappers.h
'+++ b/lib/util/string_wrappers.h
@@ -62,7 +62,7 @@ char * __unsafe_string_function_usage_here__(void);

  size_t __unsafe_string_function_usage_here_size_t__(void);

'--#define CHECK_STRING_SIZE(d, len) (sizeof(d) != (len) && sizeof(d) != sizeof(char *))
'++#define CHECK_STRING_SIZE(d, len) (sizeof(d) != sizeof(char *) && sizeof(d) != (len))

を修正したところ無事にビルド・起動しドメインの設定も無事に行えた

LinuxFreeBSDでSamba4のインストール・ADの設定をやってみたがLinuxが事前にパッケージを入れる必要があるのに比べてFreeBSDの方はportsでgitとopenldap-serverをインストールするだけで構築・AD設定が行えたのが意外だった。9系統からインストーラーも変わりCUIに慣れた人ならFreeBSDで設定する方がやりやすいのではと思う、規模がそれ程でも無く費用をかけずに手軽にADを導入したいという場合にはかなり良い選択肢になるのではなかろうか・・・・

Samba4のActiveDirectoryについては情報が少ないながら、こういう本も出ているので参考にしてみると良いのではと思う。