第 4 章 認証メカニズムの設定
4.4. スマートカード
4.4.1. authconfig を使用したスマートカードの設定
4.4.1.1. UI でのスマートカード認証の有効化 でのスマートカード認証の有効化
1. root でシステムにログインします。
2. ネットワーク用の 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/ ディレクトリーから取得されます。
3. トップメニューでアプリケーションアプリケーションから諸ツール諸ツールを選択し、認証認証をクリックします。
4. 高度なオプション高度なオプションタブを開きます。
5. スマートカードサポートを有効にするスマートカードサポートを有効にするチェックボックスをクリックします。
6. スマートカードでは 2 つの動作が設定可能です。
カード削除のアクション
カード削除のアクションでは、アクティブセッション中にカードが取り出された時のシス テムの対応方法を設定します。無視する無視するオプションの場合、カードが取り出されてもシス テムは通常の機能を続けます。ロックするロックするの場合は直ちに画面をロックします。
スマートカードログインを要求
スマートカードログインを要求のチェックボックスでは、スマートカードがログインで必 要かどうかを設定します。このオプションが選択されると、他の認証メソッドはすべてブ ロックされます。
警告 警告
スマートカードを使用してシステムに正常にログインするまでまでは、こ のオプションは選択しないでください。
7. デフォルトでは、証明書が失効となったかどうかを確認するメカニズム (オンライン証明書ス テータスプロトコル、OCSP の反応) は、無効になっています。有効期限が切れる前に証明書 が失効したかどうかを検証するには、cert_policy ディレクティブに ocsp_on オプションを追
加して OCSP のチェックを有効にします。
1. pam_pkcs11.conf ファイルを開きます。
vim /etc/pam_pkcs11/pam_pkcs11.conf
2. cert_policy 行すべてに ocsp_on オプションを追加します。
cert_policy = ca, ocsp_on, signature;
注記 注記
このファイルの解析方法が原因で、cert_policy とイコール記号の間には空 白が必要になります。これがないと、パラメーターの解析が失敗します。必要になります
8. (個人証明書とキーによる設定で) スマートカードが登録されていない場合、スマートカードを
登録します。
9. スマートカードが CAC カードの場合、CAC ユーザーのホームディレクトリーに .k5login ファ イルを作成します。.k5login ファイルは、CAC カード上に Microsoft Principal Name を記載す るために必要となります。
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 カード使用に関連するすべての root 証明書を pkinit_anchors で 指定します。以下の /etc/krb5.conf ファイルで CAC カードを設定する例で
は、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
このコマンドは、スマートカードを使ってシステムにログインする際の問題を診断する 上で役立ちます。