遂に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)」をご参照ください。

 

お疲れさまでした。

 

Joomla templates by a4joomla