389 Directory Server は、超高速のオープン ソース エンタープライズ LDAP サーバーです。
このチュートリアルでは、389 ディレクトリ サーバーと通信する LDAP クライアントを Linux にインストールして構成する方法について説明します。
EPEL をインストール
EPEL から LDAP 関連のパッケージをダウンロードするため、クライアント マシンで EPEL リポジトリがセットアップされていることを確認してください。
最初に、fedora プロジェクトの Web サイトから最新の EPEL パッケージをダウンロードします:
# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
次に、EPEL rpm をクライアント マシンにインストールします。
# rpm -ivh epel-release-7-10.noarch.rpm
/etc/hosts を確認
hosts ファイルが正しく設定されていることを確認してください。
この例では、以下が現在の /etc/hosts ファイルのセットアップです。この例では、デプロイ時に 389 ディレクトリ サーバーがインストールされています
# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.101.10 deploy.thegeekstuff.com deploy
389 ディレクトリ サーバーを初めて使用する場合は、Linux に LDAP 389 ディレクトリ サーバーをインストールする方法について詳しく説明した以前のチュートリアルを参照してください。
LDAP クライアント ライブラリをインストールする
LDAP クライアント ライブラリについては、次のパッケージをインストールする必要があります:
- openldap – LDAP サポート ライブラリが含まれています
- openldap-devel.x86_64 – LDAP 開発ライブラリとヘッダー ファイルが含まれています
- nss-pam-ldapd – ディレクトリ サーバーを使用する nsswitch モジュールです
以下に示すように、yum を使用して上記のパッケージをインストールします。
# yum install nss-pam-ldapd.x86_64 openldap.x86_64 openldap-devel.x86_64
上記の 3 つのパッケージのインストールとは別に、現在のシステム構成によっては、yum は次の依存パッケージもインストールする場合があります:
- cyrus-sasl
- cyrus-sasl-devel
- nscd
LDAP クライアント認証リソースの構成
LDAP クライアント認証リソースを構成するには、次のいずれかのツールを使用できます:
- authconfig – 認証リソースを構成するためのコマンドライン ツール
- authconfig-tui – 認証リソースを構成するための GUI ベースのツール
GUI バージョンを起動するには、次のコマンドを実行します:
# authconfig-tui
これにより、次のユーザー インターフェイスが表示されます:
以下に示すように、矢印キーを使用して [Use LDAP Authentication] チェックボックスを選択します。チェックボックスを選択するには、スペースバーを押してください。
次の画面で、それに応じて LDAP サーバーとベース DN を設定します。これらの値は、389 ディレクトリ サーバーのインストールに対応している必要があります。詳細については、389 ディレクトリ サーバーのインストール チュートリアルを参照してください。
LDAP クライアントのネーム サービス関連サービスを開始
最初に、nslcd Naming Services LDAP クライアント デーモンが稼働中であることを確認します。これが起動していない場合は、それに応じて起動してください。
# systemctl start nslcd # systemctl status nslcd ? nslcd.service - Naming services LDAP client daemon. Loaded: loaded (/usr/lib/systemd/system/nslcd.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2017-10-08 15:15:58 UTC; 7min ago Process: 2624 ExecStart=/usr/sbin/nslcd (code=exited, status=0/SUCCESS) Main PID: 2625 (nslcd) CGroup: /system.slice/nslcd.service +-2625 /usr/sbin/nslcd Oct 08 15:15:58 192.168.101.10 systemd[1]: Starting Naming services LDAP client daemon.... Oct 08 15:15:58 192.168.101.10 systemd[1]: PID file /var/run/nslcd/nslcd.pid not readable (yet?) after start. Oct 08 15:15:58 192.168.101.10 nslcd[2625]: version 0.8.13 starting Oct 08 15:15:58 192.168.101.10 nslcd[2625]: accepting connections Oct 08 15:15:58 192.168.101.10 systemd[1]: Started Naming services LDAP client daemon.. .. ..
次に、systemctl コマンドを使用して、以下に示すように nscd ネーム サービス キャッシング デーモンを起動します。
# systemctl start nscd # systemctl status nscd ? nscd.service - Name Service Cache Daemon Loaded: loaded (/usr/lib/systemd/system/nscd.service; disabled; vendor preset: disabled) Active: active (running) since Sun 2017-10-08 15:27:23 UTC; 3s ago Process: 2693 ExecStart=/usr/sbin/nscd $NSCD_OPTIONS (code=exited, status=0/SUCCESS) Main PID: 2694 (nscd) CGroup: /system.slice/nscd.service +-2694 /usr/sbin/nscd Oct 08 15:27:23 192.168.101.10 nscd[2694]: 2694 monitoring file `/etc/hosts` (4) Oct 08 15:27:23 192.168.101.10 nscd[2694]: 2694 monitoring directory `/etc` (2) Oct 08 15:27:23 192.168.101.10 nscd[2694]: 2694 monitoring file `/etc/resolv.conf` (5) Oct 08 15:27:23 192.168.101.10 nscd[2694]: 2694 monitoring directory `/etc` (2) Oct 08 15:27:23 192.168.101.10 nscd[2694]: 2694 monitoring file `/etc/services` (6) Oct 08 15:27:23 192.168.101.10 nscd[2694]: 2694 monitoring directory `/etc` (2) Oct 08 15:27:23 192.168.101.10 nscd[2694]: 2694 disabled inotify-based monitoring for file `/etc/netgroup': No such file or directory Oct 08 15:27:23 192.168.101.10 nscd[2694]: 2694 stat failed for file `/etc/netgroup'; will try again later: No such file or directory Oct 08 15:27:23 192.168.101.10 nscd[2694]: 2694 Access Vector Cache (AVC) started Oct 08 15:27:23 192.168.101.10 systemd[1]: Started Name Service Cache Daemon. .. ..
SSSD および PAM LDAP 構成のセットアップ
次の authconfig コマンドを実行して、以下に示すように SSSD 認証構成をセットアップします。これにより、LDAP クライアントに応じてユーザーのホーム ディレクトリを確実に取得できます。
# authconfig --enableldapauth --enablemkhomedir \ --enablesysnetauth --enablelocauthorize \ --ldapserver=ldap://deploy.thegeekstuff.com \ --ldapbasedn="dc=thegeekstuff,dc=com" --update
次のうち 2 つが満たされると、authconfig によって SSSD サービスが有効になり、開始されることに注意してください。 br />SSSD 認証が有効になっています。これは、pam_sss.so モジュールが PAM 構成で参照されていることを意味します。
SSSD がユーザー ID に対して有効になっています。つまり、nsswitch.conf ファイルが sss を参照しています。
次の authconfig コマンドを実行して、以下に示すように PAM 構成をセットアップします。
# authconfig --enableldap --enableldapauth \ --enablemkhomedir --enablesysnetauth \ --enablelocauthorize \ --ldapserver="deploy.thegeekstuff.com" \ --ldapbasedn="dc=deploy,dc=thegeekstuff,dc=com" \ --update
以下は、authconfig の変更中に影響を受けるファイルの一部です:
- /etc/nscd.conf
- /etc/nslcd.conf
- /etc/openldap/ldap.conf
- /etc/pam.d/system-auth
- /etc/pam.d/password-auth-ac
- /etc/nsswitch.conf
上記の authconfig コマンドでは、次のオプションが使用されます:
- –enableldapauth は、/etc/pam.d/system-auth を介して認証機能を設定します
- –enableldap オプションは、/etc/nsswitch.conf でユーザー情報サービスを構成します
- –enablesysnetauth オプションは、uid が 500 未満のシステム アカウントの認証を許可します。
- –enablelocauthorize オプションを使用すると、承認のためにネットワーク認証サービスのチェックをバイパスできます
- –update オプションは、指定されたコマンド ライン オプションに基づいて、すべての構成ファイルが確実に変更されるようにします