PAMの役割

11月 19, 2009

Linux LPIC編。(第11章 ネットワーククライアント管理)

PAM(Pluggable Authentication Modules)はUNIX系OSで認証を一元管理する
仕組みで、プログラムに対してユーザ認証のための機能を提供する。
PAMの設定ファイルは、ユーザ認証を行うプログラムごとに用意されており、
/etc/pam.dディレクトリ以下に配置されている。

設定ファイルの書式と例は以下のような感じ。

書式
モジュールタイプ コントロール モジュールのパス 引数

$ cat /etc/pam.d/login
auth    include  system-auth
account  required  pam_nologin.so
account  include   system_auth
 :
(略)
session  required  pam_loginuid.so
session  optional  pam_console.so
 :
(略)


モジュールタイプだのコントロールって、何なの?・・・はい、以下に説明を。

モジュールタイプ
その行でモジュールが使用する認証の型

auth
ユーザ認証を行う。パスワードを使った認証は、このモジュールタイプが
指定されたモジュール(プログラム)が行う。

account
パスワードが有効期限内か、ユーザによるサービスへのアクセスが許可
されているのかなど、ユーザ認証ができるのかどうかを確認する。

password
パスワードの設定と変更に使用。

session
ユーザ認証の前後に実行すべき処理を指定。


コントロール
認証が成功もしくは失敗したときの処理を指定

requisite
モジュールの実行に失敗したらすぐに認証を拒否する。
認証に失敗した段階で先に進ませない必要がある場合に指定。

required
モジュールの実行に失敗してもすぐには拒否せず、同じタイプのモジュールが
全て完了してから拒否する。この段階で認証結果が通知されるので、
ユーザ側ではどの段階で失敗したかわからない。
このため、セキュリティ上 requisiteより好ましい。

suficient
モジュールの実行に成功した場合、より上位のrequired行すべて成功であれば、
その時点で認証を成功とする。失敗した場合は引き続き評価を行う。

optional
optionalを指定したモジュールタイプが1つだけの場合を除き、
PAMアプリケーションに影響を与えない。


requisiteとrequiredの違いに注目、ですね。
最後のoptionalは何度読み返しても意味が分からなかった。
今は調べている時間もないので、別の機会に追記しよう(覚えていれば。。)
/etc/securityディレクトリ以下にも認証に関る設定ファイルが置かれていることを
ついでにメモしておく。

PAMモジュールについて
いろいろあるが、新出題範囲の対象になっているものだけメモしておく。
PAMで使用されるモジュールは/lib/securityディレクトリ以下に格納されている。

pam_unix.so 通常のパスワード認証を行う
pam_cracklib.so パスワードの安全性を向上させる
pam_limits.so ユーザが利用できるリソースを制限する
pam_listfile.so 特定ユーザのログインにおいてリストを利用


PAMモジュールについてはこちらに詳しい説明があり、参考になる。
特にパスワード攻撃へのセキュリティを向上させるというpam_cracklib.soに
関する説明は興味深い。

PAMのことは薄ーく知ってはいたが、改めてこうして勉強してみると普段何気なく
行っているログインやsuコマンドにも、様々なモジュールが動いているのだな、と分かる。
うーむ、PAM、深いヤツだな〜

出典
Linux教科書LPICレベル2(翔泳社)


Linux記事一覧はこちらをどうぞ
↓ ↓ ↓
Linux-index

Categories: LPIC

No Responses so far | Have Your Say!

Comments are closed.