More Related Content More from Serverworks Co.,Ltd.
More from Serverworks Co.,Ltd. (20) 知っているようで知らないPAMのお話10. UNIX上での認証の用途の例
• Squid や apache での BASIC 認証
• Dovecot での IMAP ユーザ認証
• SSH でのログイン認証
• UNIX パスワード認証
• などなど他にも
• 上記は全て、システムを利用する人の正当性を確認するもの
13. PAMとは
• Pluggable Authentication Module
• 認証処理を実行するプログラム群
• 外部から利用するためのAPI群
• 下位レベルにある認証スキームを入れ替えることで、様々な認証
バックエンドを利用できる(プログラムでは意識不要)
• UNIXやLinuxの各種ディストリビューションで古くから実装
プログラムA プログラムB プログラムC
PAMライブラリ
設定ファイル
(/etc/pam.d)
下位レベルの認証スキーム
16. 制御フラグ
• 制御フラグには以下のような種類がある(もっとややこしい表記方
法もあるが、割愛)
フラグ 意味
required このフラグが立ったモジュールが成功しないと認証が失敗。ただ
し次のモジュールがある場合は続けてそちらを参照する。
requisite このフラグが立ったモジュールが成功しないと認証が失敗。以降
のモジュールが存在しても参照されずにエラーとなる。先に
requiredで失敗していた場合、requiredエラーとして扱われる。
sufficient このフラグが立ったモジュールが成功し、かつ先のモジュールが
全て成功していた場合、以降のモジュールが存在しても参照され
ずに認証され、次のインタフェースに進む。
optional 他に参照するモジュールがない場合、このフラグが立ったモ
ジューが成功すると認証される。
include 引数で指定したファイルを読み込み、記述に従って処理する。
substack 引数で指定したファイルを読み込、記述に従って処理する。
Includeと違い、認証の成否がファイル内で完結する
17. PAM設定ファイルの中身
02: 外部ファイル(system-auth)を読み込んで認証処理を行う
※system-auth自体は環境変数セット、/etc/passwd & /etc/shadowを基に認証を行う
03: 外部ファイル(system-auth)を読み込んでアカウント確認を行う
※system-authではpasswd & shadowでのアカウント有効性確認を行う
04: 外部ファイル(system-auth)を読み込んでパスワードの確認を行う
※system-authではpam_cracklibによるパスワードポリシ確認、/etc/shadowの書き換え
を行 う。
05: (su実行元プロセスの)セッションキーリングが存在する場合、revokeされる
06: /etc/security/limits.confや/etc/security/limits.d/*で定義された内容に基づいてリソー
スの制限を行う
#%PAM-1.0
auth include system-auth
account include system-auth
password include system-auth
session optional pam_keyinit.so revoke
session required pam_limits.so
01:
02:
03:
04:
05:
06:
例)Amazon Linux(3.14.48-33.39.amzn1.x86_64)の/etc/pam.d/sudo