PAM認証の設定
カテゴリ:PAM
PAMは認証を一元化するための仕組みです。設定ファイルの場所
PAMの設定ファイルは/etc/pam.d/配下に各アプリケーションごとにフォルダ分けされて格納されています。
※/etc/pam.d/ディレクトリが存在しない場合のみ/etc/pam.confを参照します。
# ls -la /etc/pam.d 合計 108 drwxr-xr-x. 2 root root 4096 7月 21 01:00 2014 . drwxr-xr-x. 64 root root 4096 7月 27 11:48 2014 .. -rw-r--r--. 1 root root 192 2月 22 14:02 2013 chfn -rw-r--r--. 1 root root 192 2月 22 14:02 2013 chsh -rw-r--r--. 1 root root 232 2月 22 09:16 2013 config-util -rw-r--r--. 1 root root 293 7月 19 13:55 2011 crond -rw-r--r--. 1 root root 167 7月 21 01:00 2014 dovecot lrwxrwxrwx. 1 root root 19 7月 19 23:25 2014 fingerprint-auth -> fingerprint-auth-ac -rw-r--r--. 1 root root 659 7月 19 23:25 2014 fingerprint-auth-ac -rw-r--r--. 1 root root 728 2月 22 14:02 2013 login -rw-r--r--. 1 root root 172 2月 22 14:38 2013 newrole -rw-r--r--. 1 root root 154 2月 22 09:16 2013 other -rw-r--r--. 1 root root 146 2月 22 20:48 2012 passwd lrwxrwxrwx. 1 root root 16 7月 19 23:25 2014 password-auth -> password-auth-ac -rw-r--r--. 1 root root 896 7月 19 23:25 2014 password-auth-ac -rw-r--r--. 1 root root 613 2月 22 14:02 2013 remote -rw-r--r--. 1 root root 167 2月 22 14:38 2013 run_init -rw-r--r--. 1 root root 143 4月 17 22:03 2012 runuser -rw-r--r--. 1 root root 105 4月 17 22:03 2012 runuser-l lrwxrwxrwx. 1 root root 17 7月 19 23:25 2014 smartcard-auth -> smartcard-auth-ac -rw-r--r--. 1 root root 711 7月 19 23:25 2014 smartcard-auth-ac lrwxrwxrwx. 1 root root 25 7月 20 21:27 2014 smtp -> /etc/alternatives/mta-pam -rw-r--r--. 1 root root 0 7月 28 09:24 2014 smtp.postfix -rw-r--r--. 1 root root 341 2月 22 12:51 2013 ssh-keycat -rw-r--r--. 1 root root 575 2月 22 12:51 2013 sshd -rw-r--r--. 1 root root 487 4月 17 22:03 2012 su -rw-r--r--. 1 root root 137 4月 17 22:03 2012 su-l -rw-r--r--. 1 root root 202 2月 22 15:26 2013 sudo -rw-r--r--. 1 root root 187 2月 22 15:26 2013 sudo-i lrwxrwxrwx. 1 root root 14 7月 19 23:25 2014 system-auth -> system-auth-ac -rw-r--r--. 1 root root 896 7月 19 23:25 2014 system-auth-ac -rw-r--r--. 1 root root 335 3月 1 19:16 2013 vsftpd -rw-r--r--. 1 root root 101 5月 21 13:51 2014 webmin
# cat /etc/pam.d/sshd #%PAM-1.0 auth required pam_sepermit.so auth include password-auth account required pam_nologin.so account include password-auth password include password-auth # pam_selinux.so close should be the first session rule session required pam_selinux.so close session required pam_loginuid.so # pam_selinux.so open should only be followed by sessions to be executed in the user context session required pam_selinux.so open env_params session optional pam_keyinit.so force revoke session include password-auth
モジュールタイプ
モジュールタイプは認証の型を示します。
モジュールタイプには以下の4つがあります。
auth
ユーザー認証を実施するモジュールです。
account
そのユーザーがユーザー認証が行えるかをチェックするモジュールです。
例えばユーザーのアクセス許可やパスワードの有効期限切れなどを確認します。
password
パスワードの変更など、パスワード関連の設定を実施するモジュールです。
session
ユーザー認証後の処理を定義するモジュールです。
コントロール
コントロールは認証の結果、どうするかを定義します。
コントロールには以下の4つがあります。
requisite
モジュールの処理に失敗した場合に、直ちに認証を拒否します。
required
モジュールの処理に失敗してもすぐに拒否せずに、同じモジュールタイプの認証がすべて終了してから拒否します。
sufficient
モジュールの処理に成功した場合、且つそれまでにモジュールの処理が1つも失敗していなければ、直ちに認証を許可します。
optional
モジュールの結果を無視します。
外部ファイルの読み込み
includeを指定して外部ファイルを読み込む事もできます。
auth include sales-account
主なモジュール
実際にどのような認証を実施するかは指定するモジュールで決まります。
主なモジュールは以下となります。
pam_unix.so
通常のパスワード認証を実施します。
pam_securetty.so
/etc/securettyに記載されている端末のみを許可します。
pam_nologin.so
/etc/nologinがある場合にroot以外を拒否します。
pam_cracklib.so
パスワードのチェックを実施します。
以下の場合、パスワードが空の場合、パスワードを設定する場合に、大文字、小文字、数字、記号がそれぞれ2文字以上含まれていなければならない。またパスワードを3回間違えると認証失敗を返します。
password requisite pam_cracklib.so try_first_pass retry=3 type=ucredit=-2 lcredit=-2 dcredit=-2 ocredit=-2
※try_first_passは認証方式を複数指定している場合に指定すると、パスワード認証のプロンプトを1回だけ表示するようにします。
pam_deny.so
認証に対して常に失敗を返します。
つまりホワイトリスト方式の場合に使用するモジュールとなり、通常sufficientコントロールと組み合わせて使用します。
例えば以下の設定の場合、パスワード認証に成功しなかったユーザーはすべて明示的に拒否します。
... auth sufficient pam_unix.so auth required pam_deny.so
※sufficientは成功すれば直ちに認証許可となるため、pam_deny.soは実行されません。
pam_permit.so
認証に対して常に成功を返します。
認証に関してはあまりブラックリスト方式は使用しないため、あまり使う機会は無いと思います。
公開日時:2014年07月28日 09:43:25