遂にSamba4.7からMIT Kerberos がサポートされました。(Samba4.6以前はheimdal kerberos)
CentOS7ではまだSamba4.7のパッケージの配布が無いためソースコードから導入します。使用するOSはCentOS7(1708)です。
なお、今回の説明は、以前の記事「Samba4とSSSDでLinux/Windowsの認証統合環境を構築(ActiveDirectory+NIS)」の変更箇所をピックアップして記載しています。
1. 必要なパッケージのインストール
MIT Kerberos を利用するためには2つパッケージを追加します。
# yum install krb5-devel krb5-server
2. Samba4.7のダウンロードとインストール
最新のSambaをこちらから入手してインストールします。
# wget https://download.samba.org/pub/samba/stable/samba-4.7.0.tar.gz
# tar -zxvf samba-4.7.0.tar.gz
# cd samba-4.7.0
# ./configure --with-system-mitkrb5
<略>
Checking for gnutls >= 3.4.7 : not found
/root/samba-4.7.0/source4/lib/tls/wscript:28: error: the configuration failed (see '/root/samba-4.7.0/bin/config.log')
GnuTLS 3.4.7が見つからないとエラーが発生します。インストール済のパッケージを確認すると
# rpm -qa | grep gnutls
gnutls-c++-3.3.26-9.el7.x86_64
gnutls-devel-3.3.26-9.el7.x86_64
gnutls-3.3.26-9.el7.x86_64
gnutls-dane-3.3.26-9.el7.x86_64
GnuTLS は最新パッケージを導入済ですがSamba4.7が要求するバージョンより古いことがわかりました。
3. GnuTLS の最新版をソースコードからインストール
CentOS7が用意しているパッケージは最新が3.3.26なのでソースコードから最新版をインストールします。
# cd
# wget https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/gnutls-3.5.9.tar.xz
# xz -dv gnutls-3.5.9.tar.xz
# tar -xvf gnutls-3.5.9.tar
# cd gnutls-3.5.9/
# ./configure --libdir=/lib64
<略>
configure: error:
***
*** Libnettle 3.1 was not found.
今度はLibnettle 3.1が見つからないとエラーが発生します。
4. Nettle の最新版をソースコードからインストール
Nettle のインストールパッケージを確認すると、GnuTLS と同様には最新パッケージを導入済ですが GnuTLS が要求するバージョンより古い様です。
# rpm -qa | grep nettle
nettle-2.7.1-8.el7.x86_64
nettle-devel-2.7.1-8.el7.x86_64
Nettle もソースコードから最新版をインストールします。
# cd
# wget https://ftp.gnu.org/gnu/nettle/nettle-3.3.tar.gz
# tar -zxvf nettle-3.3.tar.gz
# cd nettle-3.3/
# ./configure --libdir=/lib64
# make
# make install
インストールが完了したら共有ライブラリの依存関係情報を更新します。
# ldconfig
# ldconfig -p | grep nettle
libnettle.so.6 (libc6,x86-64) => /lib64/libnettle.so.6 # 追加されたことを確認
libnettle.so.4 (libc6,x86-64) => /lib64/libnettle.so.4
libnettle.so (libc6,x86-64) => /lib64/libnettle.so
# ldconfig -p | grep libhogweed
libhogweed.so.4 (libc6,x86-64) => /lib64/libhogweed.so.4 # 追加されたことを確認
libhogweed.so.2 (libc6,x86-64) => /lib64/libhogweed.so.2
libhogweed.so (libc6,x86-64) => /lib64/libhogweed.so
*注意:openssl-devel が未インストールの状態では、libhogweed.soが導入されません。
5. 再度 GnuTLS の最新版をソースコードからインストール
GnuTLS を再度コンパイルしてインストールします。
# cd ../gnutls-3.5.9/
# ./configure --libdir=/lib64
<略>
configure: error:
***
*** Libunistring was not found. To use the included one, use --with-included-unistring
次はLibunistringが無いとエラーが発生しました。
6. libunistringをインストール
libunistring-devel をインストールします。
# yum install libunistring-devel
7. 再度 GnuTLS の最新版をソースコードからインストール
気を取り直してGnuTLS をコンパイルしてインストールします。
# ./configure --libdir=/lib64
# make
# make install
インストールが完了したら共有ライブラリの依存関係情報を更新します。
# ldconfig
# ldconfig -p | grep gnutls
libgnutlsxx.so.28 (libc6,x86-64) => /lib64/libgnutlsxx.so.28
libgnutlsxx.so (libc6,x86-64) => /lib64/libgnutlsxx.so
libgnutls.so.30 (libc6,x86-64) => /lib64/libgnutls.so.30
libgnutls.so.28 (libc6,x86-64) => /lib64/libgnutls.so.28
libgnutls.so (libc6,x86-64) => /lib64/libgnutls.so
libgnutls-dane.so.0 (libc6,x86-64) => /lib64/libgnutls-dane.so.0
libgnutls-dane.so (libc6,x86-64) => /lib64/libgnutls-dane.so
8. 再度Samba4.7をインストール
全てのライブラリが揃ったので再度Samba4.7を導入します。
# cd ../samba-4.7.0/
# ./configure --with-system-mitkrb5
# make
# make install
エラーなくインストールできれば完了です。
以後の設定は「Samba4とSSSDでLinux/Windowsの認証統合環境を構築(ActiveDirectory+NIS)」をご参照ください。
お疲れさまでした。