LinuCレベル2 202試験の出題範囲「2.07.2 PAM認証」の技術的内容についての解説をまとめました。
重要度 3 概要 さまざまな方法で認証をサポートするようにPAMを設定できる。これには基本的な SSSD(System Security Services Daemon) の機能を含む。 詳細 PAMの設定ファイル、用語、ユーティリティ
・/etc/pam.d/, pam.conf, nsswitch.conf, sssd.conf
・pam_unix, pam_cracklib, pam_limits, pam_listfile, pam_sss

PAM認証の概要
PAM(Pluggable Authentication Modules)は、プログラムが使用する様々な認証方式を一元的に管理するためのシステムのことです。
PAM(Pluggable Authentication Modules)は、Linuxのユーザー認証に関する仕組みです。/etc/pam.dディレクトリ配下に設定ファイルが配置されており、設定を変更することで認証の動作を変更することができます。

PAMの設定ファイル
PAMの設定ファイルは「/etc/pam.d」配下に格納されています。以下はRed Hat Enterprise Linux 9.6で格納されているPAMの設定ファイルは以下です。
[root@RHEL96 ~]#
[root@RHEL96 ~]# ls /etc/pam.d
atd config-util gdm-autologin gdm-pin passwd remote sshd subscription-manager systemd-user
chfn crond gdm-fingerprint gdm-smartcard password-auth runuser sssd-shadowutils sudo vlock
chsh cups gdm-launch-environment login polkit-1 runuser-l su sudo-i vmtoolsd
cockpit fingerprint-auth gdm-password other postlogin smartcard-auth su-l system-auth xserver

「/etc/pam.conf」の概要
「/etc/pam.d」配下にPAMの設定ファイルが格納されていない場合は、「/etc/pam.conf」がPAMの設定として動作します。
SSSD(System Security Service Daemon)の概要
SSSDは、認証に関する情報などをキャッシュしておくことで、サーバーの障害時やオフライン時などでもこの情報を使って認証等を行うことができる環境を提供するデーモンです。
System Security Services Daemon (SSSD) は、リモートディレクトリーと認証メカニズムにアクセスするためのシステムサービスです。
SSSDの仕組みは以下です。

3.1. SSSD の仕組み
System Security Services Daemon (SSSD) サービスを使用すると、リモートディレクトリーと認証メカニズムにアクセスできます。SSSD クライアント であるローカルシステムを、外部のバックエンドシステム (プロバイダー) に接続できます。
SSSD は、次のような複数のアイデンティティーおよび認証プロバイダーをサポートしています。
- LDAP ディレクトリー
- Identity Management (IdM) ドメイン
- Active Directory (AD) ドメイン
- Kerberos レルム
SSSD は、以下の 2 段階で機能します。
- クライアントをリモートプロバイダーに接続し、ID 情報および認証情報を取得します。
- 取得した認証情報を使用して、クライアントにユーザーと認証情報のローカルキャッシュを作成します。
ローカルシステムのユーザーは、リモートプロバイダーに保存されているユーザーアカウントを使用して認証できます。
SSSD(System Security Services Daemon)は、LDAPやActiveDirectoryなどのリモートにある認証システムへのアクセスをクライアントシステムに提供する役割も担います。
NSS(Name Service Switch)の概要
NSS(Name Service Switch)は名前解決に使用する順序を指定するためのものです。NSSの設定ファイルは「/etc/nsswitch.conf」です。
「/etc/nsswitch.conf」ファイルは、名前解決を行う優先順位を指定するファイルです。具体的に、/etc/nsswitch.confファイルの設定例を見てみましょう。
hosts: files dnsこの設定は、「ホスト名に関する名前解決を行う順が、ローカルにあるファイル→DNSサーバ」ということを表します。具体的には、何らかの名前解決を行う際、まずfilesの指定によりローカルにあるファイル(/etc/hostsなど)が参照され、これに失敗するとdnsの指定により「/etc/resolv.conf」に指定したDNSサーバに問い合わせが行われる、という順になります。

NIS(Network Information Service)の概要
ネットワーク上にある複数のコンピュータの情報(ユーザ、パスワード等)を一元管理するためのシステムのことです。
