PAM認証設定ファイルについて
はじめに
PAM認証について調べた。
LPIC2で結構手こずった記憶があるのだが、意外とあっさり理解できた。
何よりも先に
発行日が2000年と少し古いが、これを読もう。
というか、これだけで大丈夫。
http://linuxjf.osdn.jp/JFdocs/User-Authentication-HOWTO/index.html
PAMの設定ファイルについて
PAMの設定ファイルは、/etc/pam.dディレクトリに認証を行うプログラムごとに配置されている。
自分のところでは、こんな感じ。
[root@localhost ~]# ls /etc/pam.d/ chfn httpd polkit-1 runuser-l su systemd-user chsh login postlogin smartcard-auth su-l vlock config-util other postlogin-ac smartcard-auth-ac sudo vmtoolsd crond passwd pwauth smtp sudo-i fingerprint-auth password-auth remote smtp.postfix system-auth fingerprint-auth-ac password-auth-ac runuser sshd system-auth-ac
各ファイルの書式は以下である。
<モジュールタイプ> <コントロール> <モジュールパス> <モジュールの引数>
モジュールタイプは、後続のモジュールパスがどういったときに認証するのかを記載する。
よく使われる型は以下の4つ。
auth
ユーザが本物かどうかを認証する。account
ユーザがアクセスを許可されているか、パスワードが期限切れになっていないかを確認する。password
パスワードの設定・変更時の処理。session
ユーザの認証前後で実行したい処理がある場合に書く。
ディレクトリのマウントや、ログの記録を行いたい場合に使用する。
コントロールは認証が成功・失敗したときにPAMにどう動けばいいかを指定する。
requisite
このモジュールでの認証に失敗した場合、即認証を拒否する。required
認証に失敗した場合、認証を拒否するが、すぐには拒否しないところがrequisiteと異なる。
同じタイプの認証をすべて完了後、認証を拒否するため、ユーザはどの認証で失敗したのかが分からない。
そういった意味で、セキュリティは高いと言える。sufficient
認証に成功し、かつそれまでのrequired型モジュールがすべて成功している場合、認証される。
sufficientがタイプの一番上に記載されていた場合は、このモジュールの認証に成功さえすれば、その型については認証は成功する。optional
他モジュールの認証対象にならなかった場合、このモジュールで認証される。
モジュールパスは他のPAM設定や、/lib64/security/以下のモジュールを指定する。
モジュールの格納場所は環境によって異なるものもある。
モジュールの引数はそのままの意味。それぞれのモジュールが持つ引数を指定する。