●PAM(Pluggable Authentication Modules)
プログラムが使用する様々な認証方式を一元的に管理するためのシステム。
PAMのモジュールは、32ビット版は「/lib/security」ディレクトリ配下に、64ビット版は「/lib64/security」ディレクトリ配下に格納。
通常、PAMの設定ファイルは「/etc/pam.d」ディレクトリにプログラムごとに用意されています。「/etc/pam.d」ディレクトリが存在しない場合は「/etc/pam.conf」ファイルにまとめて記述。
/etc/pam.dディレクトリと/etc/pam.confファイルの両方が存在する場合は、/etc/pam.dディレクトリ内の設定ファイルが利用(/etc/pam.confファイルは無視)。
●PAMの設定ファイル(/etc/pam.d/以下にある個々の設定ファイル)の書式と、それぞれの項目
PAMの設定ファイルの書式
モジュールタイプ コントロール モジュール [引数]
■モジュールタイプ
その行に記述されているモジュールに何をさせるのか、またはどのようなタイプの認証を行うのかを指定。
モジュールタイプには以下の4つ。
・auth パスワードを使用してユーザの認証を行う
・account ユーザのアカウントが有効かどうかをチェック
・password パスワードの設定および変更を行う
・session 認証前後に実行させたい処理を指定する(ログの記録など)
■コントロール
モジュールの実行に成功または失敗した際の処理方法を指定。
以下は主なコントロール。
・requisite モジュールの実行に失敗した場合は、すぐに認証を拒否し、以降の行にあるモジュールを実行しない
・required モジュールの実行に失敗した場合、以降の行にある同じタイプのモジュールを実行してから認証を拒否する
・sufficient モジュールの実行に成功した場合、以前の行のrequiredのモジュールの実行が全て成功していれば、その時点で認証を許可する。失敗した場合は、引き続き移行の行にあるモジュールの実行を続ける。
・optional モジュールの実行に成功または失敗した場合でも、移行の行にあるモジュールの実行を続ける。
・include 指定した設定ファイルを読み込み実行する。
■モジュール [引数]
使用するモジュールを指定。引数がある場合は引数を指定。
PAMのモジュールは、32ビット版は「/lib/security」ディレクトリ配下に、64ビット版は「/lib64/security」ディレクトリ配下に格納。モジュールを絶対パスで記述しない場合は、これらのディレクトリが参照。
以下は主なPAMのモジュール。
・pam_console.so 端末(コンソール)から一般ユーザでログインした際、管理コマンドやデバイスなどの所有権を一時的に一般ユーザ権限に変更
・pam_clacklib.so(RHEL7,CentOS7からはpam_pwquality.so) パスワードの書式を制限し、安全性を向上。
・pam_deny.so 認証を全て拒否
・pam_env.so 環境変数を設定
・pam_ldap.so LDAPを使った認証を行う
・pam_limits.so ユーザが利用するリソースを制限
・pam_listfile.so 任意のファイルを用いてプログラムのアクセス制御を行う
・pam_nologin.so /etc/nologinファイルがある場合、一般ユーザのログインを拒否
・pam_securetty.so rootでのログインを「/etc/securetty」ファイルに記述された端末にのみ許可。
・pam_sss.so SSSDを使った認証を行う。
・pam_unix.so 通常のパスワード認証を行う
・pam_warm.so 認証時やパスワードの変更時にログを記録
・pam_wheel.so root権限のアクセスをwheelグループのメンバーに制限
それぞれのモジュールで指定できるモジュールタイプや引数などは、manコマンドもしくは「/usr/share/doc/pam-バージョン番号/texts」ディレクトリに格納されているドキュメンテーションで確認することが出来ます。
Comments
Let's comment your feelings that are more than good