4.4. スマートカード
スマートカードに基づいた認証は、パスワードベースの認証の代替手段です。ユーザーの認証情報がスマートカードに格納され、特別なソフトウェアやハードウェアを使用して、その情報にアクセスします。スマートカードを使用して認証するには、ユーザーはスマートカードリーダーにスマートカードを設置してから、そのスマートカードの PIN コードを指定する必要があります。
重要
次のセクションでは、pam_pkcs11 パッケージおよび pam_krb5 パッケージを使用して、ローカルユーザーでスマートカード認証に単一のシステムを設定する方法を説明します。これらのパッケージは、『7.4 リリースノート』 の 非推奨の機能 で説明されているように、非推奨になりました。
スマートカード認証を一元的に設定するには、System Security Services Daemon(SSSD) が提供する拡張スマートカード機能を使用します。詳細は、『Linux Domain Identity, Authentication, and Policy Guide』のSmart-card Authentication in 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 でのスマートカード認証の有効化
- root でシステムにログインします。
- ネットワーク用のルート CA 証明書をベース 64 形式でダウンロードし、サーバーにインストールします。証明書は、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/
ディレクトリーから証明書を取得します。 - トップメニューでメニューを選択し、 を選択してから をクリックします。
- 高度なオプション タブを開きます。
- Enable Smart Card Support チェックボックスをクリックします。
- スマートカードでは 2 つの動作が設定可能です。
- カード 削除アクション メニューは、アクティブなセッション中にスマートカードが削除された場合にシステムが取得する応答を設定します。
無視
オプションは、スマートカードが削除され、Lock
が画面を直ちにロックしている間に、システムが通常通りに機能し続けることを意味します。 - Require smart card for login チェックボックスは、ログインにスマートカードが必要であるかどうかを設定します。このオプションを選択すると、認証の他の方法はすべてブロックされます。警告スマートカードを使用して正常にログイン するまで は、これを選択しないでください。
- デフォルトでは、証明書が失効したかどうかを確認するメカニズム (オンライン証明書ステータスプロトコル、OCSP、応答) は無効です。有効期限が切れる前に証明書を失効したかどうかを検証するには、
cert_policy
ディレクティブにocsp_on
オプションを追加して OCSP チェックを有効にします。pam_pkcs11.conf
ファイルを開きます。vim /etc/pam_pkcs11/pam_pkcs11.conf
ocsp_on
オプションが含まれるように、すべてのcert_policy
行を変更します。cert_policy = ca,
ocsp_on,
signature;注記ファイルの解析方法により、cert_policy と等号記号の間にスペースが 必要 です。そうでない場合は、パラメーターの解析に失敗します。
- (個人証明書とキーによる設定で) スマートカードが登録されていない場合、スマートカードを登録します。
- スマートカードが CAC カードの場合は、CAC ユーザーのホームディレクトリーに
.k5login
ファイルを作成します。CAC カードに Microsoft プリンシパル名を使用するには、.k5login
ファイルが必要です。 - 以下の行を
/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 レポートの作成を検討してください。 /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 Domain Identity, Authentication, and Policy Guide』のSmart-card Authentication in Identity Managementを参照してください。。
4.4.3. 対応するスマートカード
Red Hat Enterprise Linux では、以下のスマートカードとリーダーがサポートされます。
スマートカード
- Athena ASECard Crypto スマート、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 キーボード KUS1206
- Omnikey 3121 リーダー
- PID 0x3022 リーダーを備えた Omnikey 3121
- Reiner SCT cyberJack RFID komfort リーダー
- SCR331 CCID リーダー