9.OpenLDAPクライアントの構築

投稿者: | 2017年12月12日

8.OpenLDAPサーバの構築⑧ -ssh公開鍵をldapユーザのホームディレクトリに配置までで、ldapサーバの設定は一通り完了。次はldapクライアントの構築。下の図の青色で囲んだサーバに該当する。

ldapクライアントとは、そのサーバに誰かがログインしようとした時に、そのユーザがldapサーバにちゃんと登録されているか問い合わせを行うサーバのことを言う。


ldapクライアント環境要件

設定項目 設定内容 備考
ホスト名 ldapclient
IPアドレス 192.168.3.7/24 内部環境のためクラスCアドレス
ゲートウェイ 192.168.3.1
ネームサーバ 192.168.3.1 自宅のHGWなのでゲートウェイと同じ

■ldapクライアントでも、sssd関連パッケージのインストール

ldapクライアントを構築する方法はいくつかあるが、ldapクライアントでもsssd関連パッケージをインストールする。
やり方は7.OpenLDAPサーバの構築⑦ -LDAPユーザをlinuxユーザとして認識させるとまったく同じで、パッケージもsssd,sssd-client,sssd-ldap,openldap-clients,oddjob-mkhomedirが必要となる。

[root@ldapclient ~]# yum install sssd sssd-client sssd-ldap openldap-clients oddjob-mkhomedir
                :
                :
================================================================================
 Package                アーキテクチャー
                                    バージョン               リポジトリー  容量
================================================================================
インストール中:
 oddjob-mkhomedir       x86_64      0.31.5-4.el7             base          38 k
 openldap-clients       x86_64      2.4.44-5.el7             base         188 k
 sssd                   x86_64      1.15.2-50.el7_4.8        updates      120 k
 sssd-client            x86_64      1.15.2-50.el7_4.8        updates      187 k
 sssd-ldap              x86_64      1.15.2-50.el7_4.8        updates      227 k
                :
                :
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) "
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-4.1708.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
上記の処理を行います。よろしいでしょうか? [y/N]y        ->  途中でこの質問があったら「y」を入力する。
                :
                :
完了しました!

「完了しました!」と表示されればOK。

/etc/sssdというディレクトリが作成されるので、その配下にsssd.confというファイルを以下の内容で作成する、。

[root@ldapclient ~]# vi /etc/sssd/sssd.conf
[sssd]
debug_level = 0
config_file_version = 2
services = nss, sudo, pam, ssh
domains = default

[domain/default]
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
sudo_provider = ldap
ldap_uri = ldap://192.168.3.6                ->  ldap://<ldapサーバのIPアドレス>を記述
ldap_search_base = dc=abc,dc=def,dc=com    ->  3.OpenLDAPサーバの構築③  -ベースDN(dc)/管理者DN(cn)の設定で設定したベースDN
ldap_id_use_start_tls = False
ldap_search_timeout = 3
ldap_network_timeout = 3
ldap_opt_timeout = 3
ldap_enumeration_search_timeout = 60
ldap_enumeration_refresh_timeout = 300
ldap_connection_expire_timeout = 600
ldap_sudo_smart_refresh_interval = 600
ldap_sudo_full_refresh_interval = 10800
entry_cache_timeout = 1200
cache_credentials = True
ldap_tls_reqcert = never

[nss]
homedir_substring = /home
entry_negative_timeout = 20
entry_cache_nowait_percentage = 50

[pam]

[sudo]

[autofs]

[ssh]

[pac]

上記のファイルを作成したら、sssd.confのアクセス権限を600/root(オーナ):root(グループ)に設定する。

[root@ldapclient ~]# chmod 600 /etc/sssd/sssd.conf
[root@ldapclient ~]# chown root:root /etc/sssd/sssd.conf
[root@ldapclient ~]# ls -l /etc/sssd
合計 4
drwx--x--x. 2 sssd sssd   6 12月  6 00:35 conf.d
-rw-------. 1 root root 772 12月 12 21:51 sssd.conf

アクセス権限の設定を行わないと、systemctl start sssdコマンドを実行したときにfailedとなるケースがあるので、必ず実施すること。


■ldapクライアントでも、sssd認証リソースの有効化・ldap認証リソースの無効化

次にsssd認証リソースの有効化とldap認証リソースの無効化を行う。認証リソースとはauthconfigで管理している部分で、systemctlコマンドで有効・無効するものとは別物。sssd認証リソースを有効にする代わりに、ldap認証リソースを無効にする。

以下、実行コマンド。このまま打つ。

[root@ldapclient ~]# authconfig --enablesssd --enablesssdauth --enablelocauthorize --disableldap --disableldapauth --disableldaptls --update

■ldapクライアントでも、sssdデーモンの起動

仕上げはsssdデーモンの起動と自動起動の有効化。

[root@ldapclient ~]# systemctl start sssd
[root@ldapclient ~]# systemctl enable sssd
[root@ldapclient ~]# systemctl status sssd
 sssd.service - System Security Services Daemon
   Loaded: loaded (/usr/lib/systemd/system/sssd.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/sssd.service.d
           mqjournal.conf
   Active: active (running) since 火 2017-12-12 21:53:32 JST; 7s ago
 Main PID: 9372 (sssd)
   CGroup: /system.slice/sssd.service
           tq9372 /usr/sbin/sssd -i -f
           tq9373 /usr/libexec/sssd/sssd_be --domain default --uid 0 --gid 0 ...
           tq9374 /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 --debug-to-files...
           tq9375 /usr/libexec/sssd/sssd_sudo --uid 0 --gid 0 --debug-to-file...
           tq9376 /usr/libexec/sssd/sssd_pam --uid 0 --gid 0 --debug-to-files...
           mq9377 /usr/libexec/sssd/sssd_ssh --uid 0 --gid 0 --debug-to-files...

                :
                :

「Active」と表示されればOK。もしエラーが出たりしたら、/etc/sssd/sssd.confの内容に誤りや余分な文字などが入っていないか確認するとよい。


■ldapクライアントでもidコマンドでldapユーザの存在を確認

ここまで設定が終わったら、idコマンドでldapユーザが存在することを確認する。
この確認は大きなポイントとなる。ldapサーバのようにldapaddコマンドでユーザを作ったわけでも、useraddを実行したわけでもないサーバがちゃんとユーザがいることを認識しているかどうかの確認になるからだ。

ldapサーバと同様、id <ldapユーザ名>コマンドを実行してみよう。

[root@ldapclient ~]# id user01
uid=1001(user01) gid=1001(ldapmanager) groups=1001(ldapmanager)

きたーーーーーーー!!
ldapクライアントでもユーザが見れた!!!これはldapクライアントが、ldapサーバにちゃんとユーザがいることを確認しにいった証拠となる。


■ldapクライアントでも、ホームディレクトリをldapユーザでログイン(またはsuコマンドでユーザ切り替え)した時に自動で作成されるように設定

ldapクライアントでも、ldapユーザでsshログインしたときにホームディレクトリを自動で作るように設定する。詳しい説明は7.OpenLDAPサーバの構築⑦ -LDAPユーザをlinuxユーザとして認識させるを参照。

ただ、oddjob-mkhomedirはすでに上記の「■ldapクライアントでも、sssd関連パッケージのインストール」でインストール済みなので、以下のコマンドで認証リソースを有効にする。

[root@ldapclient ~]# authconfig --enablemkhomedir --update

oddjobdデーモンの起動と自動起動の有効化も忘れずに。

[root@ldapclient ~]# systemctl start oddjobd
[root@ldapclient ~]# systemctl enable oddjobd
[root@ldapclient ~]# systemctl status oddjobd
 oddjobd.service - privileged operations for unprivileged applications
   Loaded: loaded (/usr/lib/systemd/system/oddjobd.service; enabled; vendor preset: disabled)
   Active: active (running) since 火 2017-12-12 22:04:08 JST; 21s ago
 Main PID: 9453 (oddjobd)
   CGroup: /system.slice/oddjobd.service
           mq9453 /usr/sbin/oddjobd -n -p /var/run/oddjobd.pid -t 300

12月 12 22:04:08 ldapclient systemd[1]: Started privileged operations for u....
12月 12 22:04:08 ldapclient systemd[1]: Starting privileged operations for ....
Hint: Some lines were ellipsized, use -l to show in full.

「Active」と表示されればOK。

さあ、ここも大きなポイント。suコマンドでldapユーザに切り替えてホームディレクトリが作成されるか確認する。

[root@ldapclient ~]# su user01
[user01@ldapclient root]$ ls /home
user01

プロンプトもrootからuser01に変わったし、/homeディレクトリ配下にuser01というディレクトリがある!これは5.OpenLDAPサーバの構築⑤ -LDAPユーザの設定でhomeDirectoryという属性に「/home/user01」と記述したから。


■ldapクライアントでもsshdコンフィグの設定

sshdコンフィグもldapサーバと同様、以下の設定を行う。詳しい説明は7.OpenLDAPサーバの構築⑦ -LDAPユーザをlinuxユーザとして認識させるを参照。

[root@ldapclient ~]# vi /etc/ssh/sshd_config
#HostKey /etc/ssh/ssh_host_rsa_key      ->  コメントアウトする。デフォルトは有効になっている。
#HostKey /etc/ssh/ssh_host_ecdsa_key    ->  コメントアウトする。デフォルトは有効になっている。
HostKey /etc/ssh/ssh_host_ed25519_key
                :
PubkeyAuthentication yes      ->  コメントアウトを外して有効にする。
PubkeyAcceptedKeyTypes ssh-ed25519      ->  新規に追加する。
                :
AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys    -> コメントアウトを外して、赤字の内容に修正する。
AuthorizedKeysCommandUser root    -> コメントアウトを外して、赤字の内容に修正する。

※他の設定は必要に応じてコメントアウト/コメントアウト外しを行う。

上記変更後、sshdサービスを再起動する。

[root@ldapclient ~]# systemctl restart sshd

これでldapクライアントの構築は完了!

コメントを残す

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

CAPTCHA