LinuCレベル3 300試験の例題と解説

391.1PAMおよびNSSとLDAPの統合

LinuCレベル3 300試験の出題範囲から「391.1PAMおよびNSSとLDAPの統合」についての例題を解いてみます。
このテーマは、PAMやNSSにおいて認証にLDAPを利用するための方法に関する内容が含まれます。重要度2となっているため、機能概要を理解した上で実機において関連する設定ファイルなどを確認しておきましょう。

Linucレベル3 300試験 出題範囲


例題

PAMやNSSとLDAPを連携させるモジュールはどれか、2つ選択せよ。

  1. pam_ldap
  2. ldap_pam
  3. ldap_nss
  4. 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)

ページトップへ