LinuCレベル3 300試験の例題と解説
391.1PAMおよびNSSとLDAPの統合
LinuCレベル3 300試験の出題範囲から「391.1PAMおよびNSSとLDAPの統合」についての例題を解いてみます。
このテーマは、PAMやNSSにおいて認証にLDAPを利用するための方法に関する内容が含まれます。重要度2となっているため、機能概要を理解した上で実機において関連する設定ファイルなどを確認しておきましょう。
例題
PAMやNSSとLDAPを連携させるモジュールはどれか、2つ選択せよ。
- pam_ldap
- ldap_pam
- ldap_nss
- nss_ldap
※この例題は実際の試験問題とは異なります。
解答と解説
正解は、「1.pam_ldap」と「4.nss_ldap」です。
PAMはPluggable Authentication Modulesの略で、認証方式を一元的に管理する仕組みです。PAMの認証にLDAPを使用するには、pam_ldapモジュールを利用します。
(*)インストールされたファイル名は、pam_ldap.soとなります。
ubuntu@linucserver:~$ ls /usr/lib/x86_64-linux-gnu/security/
pam_access.so pam_faildelay.so pam_ldap.so pam_namespace.so pam_sepermit.so pam_timestamp.so
pam_cap.so pam_faillock.so pam_limits.so pam_nologin.so pam_shells.so pam_tty_audit.so
pam_debug.so pam_filter.so pam_listfile.so pam_permit.so pam_stress.so pam_umask.so
pam_deny.so pam_ftp.so pam_localuser.so pam_pwhistory.so pam_succeed_if.so pam_unix.so
pam_echo.so pam_group.so pam_loginuid.so pam_rhosts.so pam_systemd.so pam_userdb.so
pam_env.so pam_issue.so pam_mail.so pam_rootok.so pam_tally.so pam_warn.so
pam_exec.so pam_keyinit.so pam_mkhomedir.so pam_securetty.so pam_tally2.so pam_wheel.so
pam_extrausers.so pam_lastlog.so pam_motd.so pam_selinux.so pam_time.so pam_xauth.so
ログイン認証で利用する場合は、/etc/pam.d/loginにpam_ldapを使った設定を追加します。
(*)その他、LDAPクライアントとして動作してLDAPサーバへアクセスできる必要があります。
ubuntu@linucserver:~$ ls /etc/pam.d
atd chsh common-password cron newusers polkit-1 sshd sudo
chfn common-account common-session dovecot other runuser su systemd-user
chpasswd common-auth common-session-noninteractive login passwd runuser-l su-l vmtoolsd
ubuntu@linucserver:/etc/pam.d$ cat /etc/pam.d/login
.
.
.
auth required pam_ldap.so use_first_pass
.
NSSはName Service Switchの略で、ユーザー・グループの情報やホスト名などを取得する際の検索先・検索順を指定するために使われます。
NSSとLDAPを連携させるモジュールはnss_ldapであり、libnss_ldap.soとしてインストールされます。
ubuntu@linucserver:~$ ls /usr/lib/x86_64-linux-gnu/libnss
libnss3.so libnss_files-2.31.so libnss_ldap.so libnss_nisplus.so.2
libnss_compat-2.31.so libnss_files.so.2 libnss_ldap.so.2 libnss_systemd.so.2
libnss_compat.so.2 libnss_hesiod-2.31.so libnss_nis-2.31.so libnssutil3.so
libnss_dns-2.31.so libnss_hesiod.so.2 libnss_nis.so.2
libnss_dns.so.2 libnss_ldap-2.26.so libnss_nisplus-2.31.so
認証にLDAPを利用する場合、/etc/nsswitch.confの該当箇所に"ldap"と追記します。
(*)その他、LDAPクライアントとして動作してLDAPサーバへアクセスできる必要があります。
ubuntu@linucserver:~$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: files ldap
group: files ldap
shadow: files ldap
gshadow: files
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
なお、PAMやNSSの詳細については、以下で確認ができます。
AM
https://linuxjf.osdn.jp/JFdocs/User-Authentication-HOWTO/pam.html
https://linuc.org/study/knowledge/417/
NSS
https://www.gnu.org/software/libc/manual/html_node/Name-Service-Switch.html
例題作成者
鯨井 貴博 (LinuCエヴァンジェリスト/登録インストラクター、LPI-Japanアカデミック認定校 Zeus IT Camp)