Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.4. スマートカード

パスワードベースの認証の代わりに、スマートカードに基づいた認証を使用できます。ユーザー認証情報はスマートカードに格納され、特別なソフトウェアやハードウェアを使用してその情報にアクセスします。スマートカードを使用して認証するには、ユーザーはスマートカードリーダーにスマートカードを設置してから、スマートカードの PIN コードを提供する必要があります。
重要
次のセクションでは、pam_pkcs11 および pam_krb5 パッケージを使用して、ローカルユーザーによるスマートカード認証に 1 つのシステムを設定する方法を説明します。これらのパッケージは、7.4 リリースノートの非推奨の機能で説明されているように非推奨になりました 『』。
スマートカード認証を一元的に設定するには、System Security Services Daemon(SSSD)が提供する、強化されたスマートカード機能を使用します。詳細は、Red Hat Identity Management の 『』 『Linux ドメイン ID、認証、およびポリシーガイド』の「Identity Management でのスマートカード認証」を参照してください。

4.4.1. authconfig を使用したスマートカードの設定

Enable smart card support オプションを選択すると、スマートカードの動作を設定する追加のコントロールが表示されます。

図4.3 スマートカードオプション

スマートカードオプション
Red Hat Enterprise Linux サーバーおよびワークステーション用のスマートカードログインはデフォルトでは有効になっておらず、システム設定で有効にする必要があります。
注記
Red Hat Enterprise Linux にログインする際にシングルサインオンを使用するには、以下のパッケージが必要です。
  • nss-tools
  • nss-pam-ldapd
  • esc
  • pam_pkcs11
  • pam_krb5
  • opensc
  • pcsc-lite-ccid
  • gdm
  • authconfig
  • authconfig-gtk
  • krb5-libs
  • krb5-workstation
  • krb5-pkinit
  • pcsc-lite
  • pcsc-lite-libs

4.4.1.1. UI からのスマートカード認証の有効化

  1. root でシステムにログインします。
  2. ベース 64 形式でネットワークのルート CA 証明書をダウンロードし、サーバーにインストールします。証明書は、certutil コマンドを使用して適切なシステムデータベースにインストールされます。以下に例を示します。
    [root@server ~]# certutil -A -d /etc/pki/nssdb -n "root CA cert" -t "CT,C,C" -i /tmp/ca_cert.crt
    注記
    インポートされた証明書がプロセス後の authconfig UI に表示されないことに注意してください。UI に証明書を表示することはできません。認証時に /etc/pki/nssdb/ ディレクトリーから取得されます。
  3. トップメニューで Application メニューを選択し、Sundry を選択して Authentication をクリックします。
  4. 高度なオプション タブを開きます
  5. Enable Smart Card Support チェックボックスをクリックします。
  6. スマートカードでは 2 つの動作が設定可能です。
    • カード削除のアクション は、アクティブなセッション中にスマートカードが削除された場合にシステムが取る応答を設定します。Ignore オプションは、スマートカードが削除されたり、Lock が画面を即時にロックすると、システムが通常どおりに機能し続けることを意味します。
    • Require smart card for login チェックボックスは、スマートカードがログインに必要かどうかを設定します。このオプションを選択すると、認証の他の方法はすべてブロックされます。
      警告
      スマートカードを使用して正常にログイン するまでは、これは選択しないでください
  7. デフォルトでは、証明書が失効したかどうかを確認するメカニズム(Online Certificate Status Protocol、OCSP、応答)は無効です。失効期間前に証明書が失効したかどうかを確認するには、ocsp_on オプションを cert_policy ディレクティブに追加して OCSP チェックを有効にします。
    1. pam_pkcs11.conf ファイルを開きます。
      vim /etc/pam_pkcs11/pam_pkcs11.conf
    2. ocsp_on オプションが含まれるように、すべての cert_policy 行を変更します。
      cert_policy = ca, ocsp_on, signature;
      注記
      ファイルの解析方法が原因で、cert_policy と等号記号の間にスペースが必要です。そうでない場合は、パラメーターの解析に失敗します。
  8. スマートカードが登録されていない場合は(個人証明書とキーによる設定)、スマートカードを登録します。
  9. スマートカードが CAC カードの場合、CAC ユーザーのホームディレクトリーに.k5login ファイルを作成します。CAC カードに Microsoft Principal Name が必要な場合は、.k5login ファイルが必要です。
  10. 以下の行を /etc/pam.d/smartcard-auth および /etc/pam.d/system-auth ファイルに追加します。
    auth    optional    pam_krb5.so use_first_pass no_subsequent_prompt preauth_options=X509_user_identity=PKCS11:/usr/lib64/pkcs11/opensc-pkcs11.so
    OpenSC モジュールが想定どおりに動作しない場合は、coolkey パッケージのモジュール (/usr/lib64/pkcs11/libcoolkeypk11.so )を使用します。この場合は、Red Hat テクニカルサポートまたは問題に関する Bugzilla レポートの作成を検討してください。
  11. /etc/krb5.conf ファイルを設定します。この設定は、CAC カードまたは Gemalto 64K カードを使用しているかどうかによって異なります。
    • CAC カードを使用して、CAC カードの使用状況 (pkinit_anchors )に関連するすべてのルート証明書を指定します。以下の例では、CAC カードを設定するための /etc/krb5.conf ファイルでは、EXAMPLE.COM は CAC カードのレルム名で、kdc.server.hostname.com は KDC サーバーのホスト名です。
      [logging]
        default = FILE:/var/log/krb5libs.log
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmind.log
      
      [libdefaults]
        dns_lookup_realm = false
        dns_lookup_kdc = false
        ticket_lifetime = 1h
        renew_lifetime = 6h
        forwardable = true
      
        default_realm = EXAMPLE.COM
      [realms]
        EXAMPLE.COM = {
          kdc = kdc.server.hostname.com
          admin_server = kdc.server.hostname.com
          pkinit_anchors = FILE:/etc/pki/nssdb/ca_cert.pem
          pkinit_anchors = FILE:/etc/pki/nssdb/CAC_CA_cert.pem
          pkinit_anchors = FILE:/etc/pki/nssdb/CAC_CA_email_cert.pem
          pkinit_anchors = FILE:/etc/pki/nssdb/CAC_root_ca_cert.pem
          pkinit_cert_match = CAC card specific information
        }
      
      [domain_realm]
        EXAMPLE.COM = EXAMPLE.COM
        .EXAMPLE.COM = EXAMPLE.COM
      
        .kdc.server.hostname.com = EXAMPLE.COM
        kdc.server.hostname.com = EXAMPLE.COM
      
      [appdefaults]
          pam = {
            debug = true
            ticket_lifetime = 1h
            renew_lifetime = 3h
            forwardable = true
            krb4_convert = false
            mappings = username on the CAC card     Principal name on the card
          }
      
    • 以下の例では、Gemalto 64K カードを設定するための /etc/krb5.conf ファイルでは、EXAMPLE.COM は KDC サーバーで作成したレルム、kdc-ca.pem は CA 証明書、kdc.server.hostname.com は KDC サーバーのホスト名です。
      [logging]
        default = FILE:/var/log/krb5libs.log
        kdc = FILE:/var/log/krb5kdc.log
        admin_server = FILE:/var/log/kadmind.log
      
      [libdefaults]
        dns_lookup_realm = false
        dns_lookup_kdc = false
        ticket_lifetime = 15m
        renew_lifetime = 6h
        forwardable = true
      
        default_realm = EXAMPLE.COM
      [realms]
        EXAMPLE.COM = {
          kdc = kdc.server.hostname.com
          admin_server = kdc.server.hostname.com
          pkinit_anchors = FILE:/etc/pki/nssdb/kdc-ca.pem
          pkinit_cert_match = <KU>digitalSignature
          pkinit_kdc_hostname = kdc.server.hostname.com
        }
      
      [domain_realm]
        EXAMPLE.COM = EXAMPLE.COM
        .EXAMPLE.COM = EXAMPLE.COM
      
        .kdc.server.hostname.com = EXAMPLE.COM
        kdc.server.hostname.com = EXAMPLE.COM
      
      [appdefaults]
          pam = {
            debug = true
            ticket_lifetime = 1h
            renew_lifetime = 3h
            forwardable = true
            krb4_convert = false
          }
      
注記
スマートカードが挿入されると、pklogin_finder ユーティリティーは、デバッグモードで実行すると、最初にログイン ID をカード上の証明書にマッピングし、証明書の有効性についての情報の出力を試みます。
pklogin_finder debug
このコマンドは、スマートカードを使用してシステムにログインする際の問題を診断する上で役立ちます。

4.4.1.2. コマンドラインでのスマートカード認証の設定

システムでスマートカードを使用する必要があるのは、--enablesmartcard オプションを設定することです
[root@server ~]# authconfig --enablesmartcard --update
デフォルトのスマートカードの変更、スマートカードの削除時、およびログインに必要なスマートカードの動作の設定など、スマートカードにはその他の設定オプションがあります。
値が 0 の場合は、スマートカードが削除されても、すぐにシステムをロックを解除するように指示します。スマートカードが削除された場合、1 を設定するとこれを無視します
[root@server ~]# authconfig --enablesmartcard --smartcardaction=0 --update
スマートカード認証が正常に設定され、テストされると、単純なパスワードベースの認証ではなくユーザーにスマートカード認証を必要とするようにシステムを設定できます。
[root@server ~]# authconfig --enablerequiresmartcard --update
警告
スマートカードを使用してシステムに認証するまで、--enablerequiresmartcard オプションを使用しないでください。それ以外の場合は、ユーザーはシステムにログインできない可能性があります。

4.4.2. Identity Management におけるスマートカード認証

Red Hat Identity Management は、IdM ユーザーのスマートカード認証をサポートします。詳細は、『Linux ドメイン ID、認証、およびポリシーガイド』を参照してください

4.4.3. 対応するスマートカード

以下のスマートカードとリーダーは、Red Hat Enterprise Linux でサポートされています。

スマートカード

  • Athena ASECard Crypto smart, pkcs15-unit
  • ATOS (Siemens) CardOS 5.0
  • Gemalto ID Classic 230 / TOP IM CY2 64kv2
  • Gemalto Cyberflex Access 64k V2c
  • Gemalto GemPCKey USB フォームファクターキー
  • Giesecke & Devrient(G&D)SmartCafe Expert 6.0(SCP03)
  • Giesecke & Devrient(G&D)SmartCafe Expert 7.0(SCP03)
  • Safenet 330J
  • Safenet SC650 (SCP01)
  • Siemens Card CardOS M4.4
  • Yubikey 4

リーダー

  • HP Keyboard KUS1206 with built in Smart Card reader
  • Omnikey 3121 reader
  • Omnikey 3121 with PID 0x3022 reader
  • Reiner SCT cyberJack RFID komfort reader
  • SCR331 CCID reader

このページには機械翻訳が使用されている場合があります (詳細はこちら)。