この手順では、新しい PAM モジュールを追加、保護、およびテストする方法を示します。新しいモジュールは、サイト固有のセキュリティーポリシーや、サードパーティーのアプリケーションのサポートのために必要になる可能性があります。PAM モジュールを作成するには、Oracle Solaris 11 セキュリティー開発者ガイド の第 3 章PAM アプリケーションおよび PAM サービスの記述を参照してください。
始める前に
サイト固有の PAM 構成の計画を完了します。
root 役割になる必要があります。詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。
所有権とアクセス権、つまり root 所有権と 444 のアクセス権でモジュールファイルが保護されていることを確認します。
# cd /opt/pam_modules # ls -lR .: total 4 -r--r--r-- 1 root root 4570 Nov 27 12:34 pam_app1.so.1 drwxrwxrwx 2 root root 3 Nov 27 12:38 sparcv9 ./64: total 1 -r--r--r-- 1 root root 4862 Nov 27 12:38 pam_app1.so.1
32 ビットモジュールは /opt/pam_modules ディレクトリ内にあり、64 ビットモジュールは 64 サブディレクトリ内にあります。
次の例では、モジュールを新しいアプリケーション app1 用にします。そのサービス名は、アプリケーション名と同じです。/etc/pam.d ディレクトリ内に app1 の service-name ファイルを作成します。このファイル内の最初のエントリにより、app1 サービスを個々のユーザーに割り当てることができます。
# cd /etc/pam.d # pfedit app1 ... # PAM configuration # # app1 service # auth definitive pam_user_policy.so.1 auth required /opt/pam_modules/$ISA/pam.app1.so.1 debug
モジュールパス内の $ISA トークンは、呼び出し側アプリケーションに対応する 32 ビットまたは 64 ビットアーキテクチャーバージョンのサービスモジュールを PAM フレームワークに指示します。32 ビットアプリケーションの場合は /a/b/$ISA/module.so が /a/b/module.so となり、64 ビットアプリケーションの場合はそれが /a/b/64/module.so となります。この例では、/opt/pam_modules ディレクトリにある 32 ビットの pam.app1.so.1 サービスモジュールと、/opt/pam_modules/64 ディレクトリにある 64 ビットモジュールをインストールしました。
詳細は、pfedit(1M) および pam.conf(4) のマニュアルページを参照してください。
app1 の PAM ポリシーを選択されたユーザーに制限するには、Example 1–2 を参照してください。
login または ssh を使用して、直接ログインします。次に、新しいモジュールによって影響を受けるコマンドを実行します。影響を受けるコマンドの使用を許可されるユーザーと拒否されるユーザーをテストします。トラブルシューティングの詳細は、PAM 構成のエラーをトラブルシューティングする方法を参照してください。
変更された PAM ポリシーを割り当てる方法を参照してください。
この例では、すべてのユーザーが app1 サービスを使用しているわけではないため、管理者はそのサービスをユーザーごとのポリシーとして追加します。
# cd /etc/pam.d # cp app1 /opt/local_pam/app1-conf # pfedit /opt/local_pam/app1-conf ## app1 service ## app1 auth definitive pam_user_policy.so.1 app1 auth required /opt/pam_modules/$ISA/pam_app1.so.1 debug
管理者は、pam.d ディレクトリから app1 ファイルを削除します。
# rm /etc/pam.d/app1
次に、管理者は、システム管理者の PAM ポリシーに app1-conf ポリシーを追加します。
# rolemod -K pam_policy=/opt/local_pam/app1-conf sysadmin使用例 1-3 権利プロファイルを使用したユーザーごとの PAM ポリシーの設定
この例では、pam_policy セキュリティー属性を使用して、異なるネームサービスからのユーザーを認証できるようにします。any PAM ポリシーファイルは、/etc/security/pam_policy ディレクトリ内に提供されています。このファイル内のコメントがこのポリシーを説明しています。
このディレクトリ内のファイルを変更しないでください。
# profiles -p "PAM Per-User Policy of Any" \ 'set desc="Profile which sets pam_policy=any"; set pam_policy=any; exit;'
この権利プロファイルを割り当てるには、変更された PAM ポリシーを割り当てる方法を参照してください。