Go to main content
Oracle® Solaris 11.3 での Kerberos およびその他の認証サービスの管理

印刷ビューの終了

更新: 2017 年 3 月
 
 

PAM モジュールを追加する方法

この手順では、新しい PAM モジュールを追加、保護、およびテストする方法を示します。新しいモジュールは、サイト固有のセキュリティーポリシーや、サードパーティーのアプリケーションのサポートのために必要になる可能性があります。PAM モジュールを作成するには、Oracle Solaris 11 セキュリティーサービス開発ガイド の 第 3 章, PAM アプリケーションおよび PAM サービスの記述を参照してください。


注 - PAM サービスモジュールの 32 ビットバージョンと 64 ビットバージョンをインストールする必要があります。

始める前に

サイト固有の PAM 構成の計画を完了します。

root 役割になる必要があります。詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

  1. PAM サービスモジュールの両方のバージョンをディスク上にインストールして保護します。

    所有権とアクセス権、つまり 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 サブディレクトリ内にあります。

  2. モジュールを適切な PAM 構成ファイルに追加します。

    次の例では、モジュールを新しいアプリケーション 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 ポリシーを選択されたユーザーに制限するには、使用例 3を参照してください。

  3. 新しいサービスをテストします。

    login または ssh を使用して、直接ログインします。次に、新しいモジュールによって影響を受けるコマンドを実行します。影響を受けるコマンドの使用を許可されるユーザーと拒否されるユーザーをテストします。トラブルシューティングの詳細は、PAM 構成のエラーをトラブルシューティングする方法を参照してください。

  4. ポリシーを割り当てます。

    変更された PAM ポリシーを割り当てる方法を参照してください。

使用例 3  ユーザーごとの 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
使用例 4  権利プロファイルを使用したユーザーごとの 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 ポリシーを割り当てる方法を参照してください。