Solaris のシステム管理 (セキュリティサービス)

PAM 構成ファイル

PAM 構成ファイル /etc/pam.conf は、使用する認証サービスとその使用順序を決定します。このファイルを編集すると、システムエントリアプリケーションごとに認証メカニズムを選択できます。

PAM 構成ファイルの構文

PAM 構成ファイルは、次の構文のエントリで構成されます。


service_name module_type control_flag module_path module_options

service_name

サービス名 (ftplogintelnet など)

module_type

サービスのモジュールタイプ。詳細は、PAM モジュールのタイプを参照

control_flag

モジュールの継続または失敗の動作を決定する 

module_path

サービスを実装するライブラリオブジェクトへのパスを指定する 

module_options

サービスモジュールに渡すオプションを指定する 

pam.conf ファイルにコメントを追加するには、コメント行の最初に # (ポンド記号) を入力します。フィールドを区切るには、空白またはタブを使用します。


注 –

行のフィールド数が 4 つ未満の場合、module_type または control_flag に無効な値が指定されている場合、または指定したモジュールが存在しない場合は、PAM 構成ファイル内のエントリは無視されます。


PAM で有効なサービス名

下記の表に、次の項目を示します。

サービスによっては適用できないモジュールタイプがあります。たとえば、password モジュールタイプは、passwd コマンドだけに適用できます。また、passwd コマンドは認証と関連がないため、このサービスに関連付けられた auth モジュールタイプはありません。

表 4–2 /etc/pam.conf ファイルの有効なサービス名

サービス名 

デーモンまたはコマンド 

適用可能なモジュールタイプ 

cron

/usr/sbin/cron

auth、account

dtlogin

/usr/dt/bin/dtlogin

auth、account、session

dtsession

/usr/dt/bin/dtsession

auth

ftp

/usr/sbin/in.ftpd

auth、account、session

init

/usr/sbin/init

session

login

/usr/bin/login

auth、account、session

passwd

/usr/bin/passwd

password

ppp

/usr/bin/ppp

auth、account、session

rexd

/usr/sbin/rpc.rexd

account、session

rlogin

/usr/sbin/in.rlogind

auth、account、session

rsh

/usr/sbin/in.rshd

auth、account、session

sac

/usr/lib/saf/sac

session

ssh

/usr/bin/ssh

auth、account、session

su

/usr/bin/su

auth、account

telnet

/usr/sbin/in.telnetd

auth、account、session

ttymon

/usr/lib/saf/ttymon

session

uucp

/usr/sbin/in.uucpd

auth、account、session

PAM 制御フラグ

モジュールの続行動作または失敗動作を決定するには、PAM 構成ファイル /etc/pam.conf のエントリごとに「制御フラグ」を選択する必要があります。スタック内の各モジュールは、要求の成功や失敗を決定できます。

続行動作では、後続のモジュールをチェックするかどうかを定義します。特定のモジュールの応答によっては、追加モジュールをスキップできます。

失敗動作では、エラーメッセージのログや報告をどのように行うかを定義します。失敗には任意 (optional) と必須 (required) があります。必須の場合は、他のモジュールが正常であっても要求は必ず失敗に終わります。任意の場合は、要求が必ず失敗に終わるとは限りません。

これらのフラグはすべてのモジュールタイプに適用されますが、次の説明では、これらのフラグは認証モジュールで使用されていると仮定します。制御フラグは、次のとおりです。

これらの制御フラグの詳細については、次の節を参照してください。次の節では、デフォルトの /etc/pam.conf ファイルについて説明します。

一般的な pam.conf ファイル

一般的な /etc/pam.conf ファイルには、次の動作が指定されています。

  1. login コマンドを実行したときは、pam_authtok_getpam_dhkeyspam_auth_unix、および pam_dial_auth モジュールの認証が成功する必要があります。

  2. rlogin コマンドを実行したときは、pam_rhost_auth の認証に失敗した場合、pam_authtok_getpam_dhkeys、および pam_auth_unix モジュールの認証が成功する必要があります。

  3. sufficient 制御フラグは、 rlogin コマンドを実行したとき、pam_rhost_auth モジュールによる認証が成功すれば十分であることを意味します。次のエントリは無視されます。

  4. 認証を必要とするその他のコマンドが実行されたときは、ほとんどの場合、pam_authtok_get pam_dhkeys、および pam_auth_unix モジュールの認証が成功する必要があります。

  5. rsh コマンドが実行されたときは、pam_rhost_auth モジュールの認証には sufficient フラグが適用されます。pam_rhost_auth モジュールの認証が成功した場合は、それ以外の認証は必要ありません。

OTHER サービス名を使用すると、認証を必要とするがこのファイルには含まれていない他のコマンドに対するデフォルトとして設定できます。OTHER オプションを使用すると、同じモジュールを使用する多数のコマンドを 1 つのエントリだけでカバーできるため、ファイルの管理が簡単になります。また、OTHER サービス名を「すべてを捕捉する」と言う意味で使用すると、1 つのモジュールですべてのアクセスをカバーできます。通常、OTHER エントリは、各モジュールタイプのセクションの最後に指定します。

通常、module_path のエントリには「ルートからのパス名」を指定します。module_path に入力したファイル名がスラッシュ (/) で始まらない場合、そのファイル名の前にパス /usr/lib/security/$ISA が付きます。モジュールが他のディレクトリにある場合は、フルパスを使用する必要があります。module_options の値は、そのモジュールのマニュアルページに記載されています。たとえば、UNIX モジュールは、pam_unix(5) のマニュアルページに記載されています。


login   auth required           pam_authtok_get.so.1
login   auth required           pam_dhkeys.so.1
login   auth required           pam_unix_auth.so.1
login   auth required           pam_dial_auth.so.1

この例の login サービスでは、4 つの認証モジュールの認証がすべて必須になっています。login コマンドは、いずれかのモジュールからエラーが返されると失敗します。