第10章 SSSD を使用した PAM サービスのドメインの制限
Pluggable Authentication Modules (PAM) は、認証と認可のための一般的なフレームワークです。Red Hat Enterprise Linux のほとんどのシステムアプリケーションは、認証と認可の基礎となる PAM 設定に依存しています。
SSSD (System Security Services Daemon) を使用すると、PAM サービスがアクセスできるドメインを制限できます。SSSD は、特定の PAM サービスを実行するユーザーに基づいて PAM サービスからの認証要求を評価します。つまり、PAM サービスユーザーが SSSD ドメインにアクセスできる場合は、PAM サービスもそのドメインにアクセスできることを意味します。
10.1. PAM の概要 リンクのコピーリンクがクリップボードにコピーされました!
Pluggable Authentication Module (PAM) は、システムアプリケーションが、中央で設定したフレームワークに認証を中継するのに使用できる集中認証メカニズムを提供します。
PAM モジュールは、Kerberos、SSSD、NIS、ローカルファイルシステムなどのさまざまなタイプの認証ソースに存在するため、PAM はプラグ可能です。別の認証ソースに優先順位を付けることができます。
このモジュラーアーキテクチャーにより、管理者はシステムの認証ポリシーを柔軟に設定することができます。PAM は、開発者および管理者にとって以下のような便利なシステムです。
- PAM は、幅広いアプリケーションで使用できる一般的な認証スキームを提供します。
- PAM は、システム管理者に対して、優れた柔軟性と制御性を提供します。
- PAM では、完全にドキュメント化されたライブラリーが 1 つ提供され、開発者が独自の認証スキームを作成しなくてもプログラムを作成できるようになります。
10.1.1. PAM 設定ファイル形式 リンクのコピーリンクがクリップボードにコピーされました!
各 Pluggable Authentication Module (PAM) 設定ファイルは、特定のモジュールの設定を定義するディレクティブで構成されています。PAM はいくつかのモジュール向けの認証中に引数を使用して情報をプラグ可能なモジュールに渡します。
module_type control_flag <module_name> <module_arguments>
以下に例を示します。
auth required pam_unix.so
10.1.1.1. PAM モジュールタイプ リンクのコピーリンクがクリップボードにコピーされました!
PAM モジュールタイプは、モジュールが実行する認証タスクのタイプを指定します。モジュールは次のタスクを実行できます。
- アカウント管理
- 認証管理
- パスワード管理
- セッション管理
各モジュールは、いずれかのタイプまたはすべてのタイプの認証タスクを提供できます。たとえば、pam_unix.so は 4 つの認証タスクすべてを提供します。
pam_unix.so などのモジュール名は、指定されたモジュールタイプを含むライブラリーの名前を PAM に提供します。ディレクトリー名は省略されています。アプリケーションが適切なバージョンの libpam にリンクされており、正しいバージョンのモジュールを検出できるためです。
モジュールタイプのディレクティブは積み重ねたり、重ねて配置したりできるため、複数のモジュールを 1 つの目的で一緒に使用できます。モジュールの順序は、制御フラグとともに重要であり、サービスに対するユーザーの認証という全体的な目標に対して、特定のモジュールの成功または失敗がどの程度重要であるかを決定します。
PAM モジュールをスタックして、ユーザーが認証される前に満たす必要がある特定の条件を適用できます。
10.1.1.2. PAM 制御フラグ リンクのコピーリンクがクリップボードにコピーされました!
PAM モジュールが機能を実行すると、成功または失敗の結果が返されます。制御フラグは、この結果をどのように処理するかを PAM に指示します。
単純なフラグではキーワードを使用します。より複雑な構文は [<value1>=<action1> <value2>=<action2> …] という形式に従います。
モジュールの制御フラグが sufficient な値または requisite な値を使用する場合は、モジュールがリストされる順序は認証プロセスにとって重要になります。
オプションのリストを含む PAM 制御フラグの詳細な説明は、pam.conf(5) の man ページを参照してください。