Red Hat Training

A Red Hat training course is available for RHEL 8

Red Hat Enterprise Linux ホストでの authselect の使用

Red Hat Enterprise Linux 8

authselect プロファイルの理解、選択、変更、および作成

Red Hat Customer Content Services

概要

本書は、Red Hat Enterprise Linux 8 ホストで、authselect を使用する方法を説明します。

Red Hat ドキュメントへのフィードバック (英語のみ)

ご意見ご要望をお聞かせください。ドキュメントの改善点はございませんか。改善点を報告する場合は、以下のように行います。

  • 特定の文章に簡単なコメントを記入する場合は、以下の手順を行います。

    1. ドキュメントの表示が Multi-page HTML 形式になっていて、ドキュメントの右上端に Feedback ボタンがあることを確認してください。
    2. マウスカーソルで、コメントを追加する部分を強調表示します。
    3. そのテキストの下に表示される Add Feedback ポップアップをクリックします。
    4. 表示される手順に従ってください。
  • より詳細なフィードバックを行う場合は、Bugzilla のチケットを作成します。

    1. Bugzilla の Web サイトにアクセスします。
    2. Component で Documentation を選択します。
    3. Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも記入してください。
    4. Submit Bug をクリックします。

第1章 authselect でユーザー認証の設定

この段落では、アセンブリーを紹介します。これは、ユーザーがアセンブリー内のモジュールを通じて動作して達成するものを説明し、アセンブリーが基づいているユーザーストーリーのコンテキストを設定します。複数の段落を追加できます。ユーザーストーリーの情報を使用することを検討してください。

1.1. authselect の使用方法

authselect は、Red Hat Enterprise Linux ホストで、ユーザー認証の設定を簡略化するユーティリティーです。authselect は、最新のすべての ID 管理システムで普遍的に使用できる 2 つの既製プロファイルを提供します。

  • sssd プロファイル
  • winbind プロファイル

従来の機能との互換性により、nis プロファイルも利用できます。

Red Hat は、たとえば、ドメイン内のサービスを使用するために、データベースの LDAP、winbind、または nis を使用してユーザーを認証している場合など、半集中型の ID 管理環境での authselect の使用を推奨しています。

警告

お使いのホストが Red Hat Enterprise Linux Identity Management または Active Directory に含まれる場合は、authselect を使用しないでください。ipa-client-install コマンドは、ホストを Red Hat Identity Management ドメインに参加させるときに呼び出され、ホスト上で認証を設定します。同様に、realm join コマンドは、Active Directory ドメインにホストを参加させるときに呼び出され、ホストで認証を構成します。

authconfig ユーティリティーは、以前の Red Hat Enterprise Linux バージョンで、さまざまな設定ファイルの作成および変更するために使用されていたため、トラブルシューティングが困難になりました。authselect は、このディレクトリーのファイルのみを変更するため、テストとトラブルシューティングが容易になります。

  • /etc/nsswitch.conf
  • /etc/pam.d/* ファイル
  • /etc/dconf/db/distro.d/* ファイル

NSS (Name Service Switch) の構成ファイル (/etc/nsswitch.conf) は、GNU C ライブラリーおよびその他の特定のアプリケーションで、さまざまなカテゴリーの名前サービス情報を、どのソースから、どの順番で取得するかを決定するのに使用されます。情報の各カテゴリーは、データベース名で識別されます。

Linux-PAM (Pluggable Authentication Modules) は、システムのアプリケーション (サービス) の認証タスクを処理するモジュールのシステムです。認証の性質は動的に設定できます。システム管理者は、個々のサービス提供アプリケーションがユーザーを認証する方法を選択できます。この動的構成は、/etc/pam.d/ ディレクトリーの設定ファイルの内容により設定されます。このディレクトリーには、このサービスに必要な認証タスクを実行する PAM の一覧と、個々の PAM が失敗した場合の PAM-API の適切な動作が表示されます。

authselect プロファイルが特定のホストに対して選択されると、そのプロファイルは、そのホストにログインしているすべてのユーザーに適用されます。

1.2. authselect プロファイルの選択

システム管理者は、特定のホストの authselect ユーティリティーにプロファイルを選択できます。そのプロファイルはそのホストにログインしているすべてのユーザーに適用されます。

手順

  1. 認証プロバイダーに適した authselect プロファイルを選択します。たとえば、LDAP を使用している企業のネットワークにログインするには、sssd を選択します。root で、次のコマンドを実行します。

    # authselect select sssd
  2. 必要に応じて、/etc/nsswitch.conf ファイルの内容を確認します。

    passwd:     sss files
    group:      sss files
    netgroup:   sss files
    automount:  sss files
    services:   sss files
    ...

    /etc/nsswitch.conf ファイルの内容は、sssd プロファイルを選択すると、最初の 5 つの項目のうちの 1 つに関する情報が要求されている場合に、システムが最初に sssd を使用することを示しています。sssd キャッシュ、および認証を提供するサーバーで、要求された情報が見つからない、または sssd を実行していないと、システムはローカルファイル (/etc/*) を調べます。

    たとえば、ユーザー ID に関する情報が要求されると、そのユーザー ID は、最初に sssd キャッシュで検索されます。そこで見つからない場合は、/etc/passwd ファイルが参照されます。同様に、ユーザーのグループ所属が要求されると、最初に sssd キャッシュで検索され、そこに見つからない場合に限り、/etc/group ファイルが参照されます。

    実際には、ローカルの files データベースが検索されることはありません。唯一の例外は、root ユーザーの場合です。これは、sssd で処理されることはありませんが、files で処理されます。

  3. 必要に応じて、/etc/pam.d/system-auth ファイルの内容を確認します。

    # Generated by authselect on Tue Sep 11 22:59:06 2018
    # Do not modify this file manually.
    
    auth        required        pam_env.so
    auth        required        pam_faildelay.so delay=2000000
    auth        [default=1 ignore=ignore success=ok]    pam_succeed_if.so uid >= 1000 quiet
    auth        [default=1 ignore=ignore success=ok]    pam_localuser.so
    auth        sufficient      pam_unix.so nullok try_first_pass
    auth        requisite       pam_succeed_if.so uid >= 1000 quiet_success
    auth        sufficient      pam_sss.so forward_pass
    auth        required        pam_deny.so
    
    account     required        pam_unix.so
    account     sufficient      pam_localuser.so
    ...

    たとえば、/etc/pam.d/system-auth ファイルには次の情報が含まれています。

    • ユーザーパスワードのロックアウトの条件
    • スマートカードによる認証の可能性
    • 指紋による認証の可能性

      authselect select sssd コマンドまたは authselect select winbind コマンドに次のオプションを追加して、デフォルトのプロファイル設定を変更できます。

      • with-faillock
      • with-smartcard
      • with-fingerprint

    利用可能なオプションの一覧を確認する場合は、「authconfig から authselect へのスクリプトの変換」 か、man ページの authselect-migration(7) を参照してください。

注記

authselect 選択手順を完了する前に、プロファイルに関連する設定ファイルが正しく設定されていることを確認してください。たとえば、sssd デーモンが正しく構成されておらずアクティブではない場合に authselect select を実行すると、ローカルユーザーのみが、pam_unix を使用して認証できるようになります。

お使いのユースケースで既製のプロファイルを調整する際に、上述のいずれかの authselect select コマンドラインオプションでは十分ではない場合は、次を行うことができます。

1.3. 既製の authselect プロファイルの変更

システム管理者は、デフォルトのプロファイル sssdwinbind、または nis のいずれかを、ニーズに合わせて変更できます。以下の項目を除き、/etc/authselect/user-nsswitch.conf ファイルを変更できます。

  • passwd
  • group
  • netgroup
  • automount
  • services

その後、authselect select profile_name を実行すると、プロファイルの変更が /etc/authselect/user-nsswitch.conf ファイルから /etc/nsswitch.conf ファイルに転送されますが、受け入れられない変更はデフォルトのプロファイル設定により上書きされます。

重要

/etc/nsswitch.conf ファイルを直接編集しないでください。

手順

  1. authselect プロファイルを選択します。以下に例を示します。

    # authselect select sssd
  2. /etc/authselect/user-nsswitch.conf ファイルを編集します。
  3. /etc/authselect/user-nsswitch.conf ファイルから変更を適用します。

    # authselect apply-changes
  4. 必要に応じて、/etc/nsswitch.conf ファイルで、/etc/authselect/user-nsswitch.conf からの変更が伝播されているのを確認してください。

1.4. 独自の authselect プロファイルの作成とデプロイメント

システム管理者は、デフォルトプロファイル (sssdwinbind、または nis) のいずれかをカスタマイズすることで、カスタムプロファイルを作成してデプロイできます。これは、「既製の authselect プロファイルの変更」 では十分ではない場合に特に便利です。カスタムプロファイルをデプロイすると、そのプロファイルはそのホストにログインしているすべてのユーザーに適用されます。

手順

  1. authselect create-profile コマンドを使用してカスタムプロファイルを作成します。たとえば、既製の sssd プロファイルに基づく user-profile というカスタムプロファイルを作成し、/etc/nsswitch.conf ファイルで項目を設定するには、以下のコマンドを実行します。

    # authselect create-profile user-profile -b sssd --symlink-meta --symlink-pam
    New profile was created at /etc/authselect/custom/user-profile

    コマンドで --symlink-pam オプションを使用すると、PAM テンプレートが、コピーではなく元のプロファイルファイルへのシンボリックリンクになります。--symlink-meta オプションを使用すると、README、REQUIREMENTS などのメタファイルが、コピーではなく元のプロファイルファイルへのシンボリックリンクになります。これにより、元のプロファイルの PAM テンプレートおよびメタファイルへの今後の更新が、カスタムプロファイルにも反映されます。

    このコマンドにより、/etc/authselect/custom/user-profile/ ディレクトリーの /etc/nsswitch.conf ファイルのコピーが作成されました。

  2. /etc/authselect/custom/user-profile/nsswitch.conf ファイルを設定します。
  3. authselect select コマンドを実行してカスタムプロファイルを選択し、custom/name_of_the_profile パラメーターを追加します。たとえば、user-profile プロファイルを選択するには、以下のコマンドを実行します。

    # authselect select custom/user-profile

    お使いのマシンで user-profile プロファイルを選択すると、その後 Red Hat により sssd プロファイルが更新された場合に、/etc/nsswitch.conf ファイルに行った更新以外のすべての更新を利用できるようになります。

次の手順は、sssd プロファイルに基づいてプロファイルを作成する方法を示しています。ここでは、ホスト名に対するローカルの静的テーブルルックアップを、/etc/hosts ファイルでのみ参照し、dns データベースまたは myhostname データベースは参照しません。

  1. /etc/nsswitch.conf ファイルで、次の行を編集します。

    hosts:      files
  2. sssd に基づいてカスタムプロファイルを作成します。/etc/nsswitch.conf に対する変更は除外します。

    # authselect create-profile user-profile -b sssd --symlink-meta --symlink-pam
  3. プロファイルを選択します。

    # authselect select custom/user-profile
  4. 必要に応じて、カスタムプロファイルで、次の点を確認します。

    • 選択した sssd プロファイルに応じて /etc/pam.d/system-auth ファイルが作成されている。
    • /etc/nsswitch.conf の設定は変更されていない。

      hosts:      files
      注記

      一方、authselect select を実行すると、sssd は次のようになります。

      hosts:      files dns myhostname

1.5. authconfig から authselect へのスクリプトの変換

ipa-client-install または realm join を使用してドメインに参加する場合は、スクリプトの authconfig 呼び出しを削除しても問題はありません。これができない場合は、各 authconfig コールを、同等の authselect コールに置き換えてください。その場合は、正しいプロファイルと適切なオプションを選択します。さらに、必要な設定ファイルを編集します。

  • /etc/krb5.conf
  • /etc/sssd/sssd.conf (sssd プロファイルの場合) または /etc/samba/smb.conf (winbind プロファイルの場合)

表1.1「authconfig オプションと authselect プロファイルの関係」 および 表1.2「authconfig オプションと同等の authselect プロファイルオプション」 は、authconfig オプションと同等の authselect を表示します。

表1.1 authconfig オプションと authselect プロファイルの関係

authconfig オプション

authselect プロファイル

--enableldap --enableldapauth

sssd

--enablesssd --enablesssdauth

sssd

--enablekrb5

sssd

--enablewinbind --enablewinbindauth

winbind

--enablenis

nis

表1.2 authconfig オプションと同等の authselect プロファイルオプション

authconfig オプション

authselect プロファイル機能

--enablesmartcard

with-smartcard

--enablefingerprint

with-fingerprint

--enableecryptfs

with-ecryptfs

--enablemkhomedir

with-mkhomedir

--enablefaillock

with-faillock

--enablepamaccess

with-pamaccess

--enablewinbindkrb5

with-krb5

表1.3「authconfig コマンドと同等の authselect コマンドの例」は、authconfig へのキックスタートコールを、authselect へのキックスタートコールに変換した例となります。

表1.3 authconfig コマンドと同等の authselect コマンドの例

authconfig コマンド

同等の authselect コマンド

authconfig --enableldap --enableldapauth --enablefaillock --updateall

authselect select sssd with-faillock

authconfig --enablesssd --enablesssdauth --enablesmartcard --smartcardmodule=sssd --updateall

authselect select sssd with-smartcard

authconfig --enableecryptfs --enablepamaccess --updateall

authselect select sssd with-ecryptfs with-pamaccess

authconfig --enablewinbind --enablewinbindauth --winbindjoin=Administrator --updateall

realm join -U Administrator --client-software=winbind WINBINDDOMAIN

第2章 authselect でスマートカードの設定

本章では、以下のいずれかを達成するためのスマートカードの設定方法を説明します。

  • パスワードとスマートカード認証の両方を有効化
  • パスワードを無効にしてスマートカード認証を有効化
  • 削除時にロックの有効化

前提条件

  • authselect がインストールされている。

    authselect ツールは、Linux ホストでユーザー認証を設定し、スマートカード認証パラメーターを設定するのに使用できます。authselect の詳細は、「authselect とは」を参照してください。

  • RHEL 8 で対応しているスマートカードまたは USB デバイス

    詳細は、「Smart Card support in RHEL8」を参照してください。

2.1. スマートカードの対象となる証明書

authselect を使用してスマートカードを設定する前に、証明書をカードにインポートする必要があります。以下のツールを使用して証明書を生成できます。

2.2. ユーザーパスワード認証を有効にしてスマートカード認証を設定

本セクションでは、システムでスマートカードとパスワードの両方認証を有効にする方法を説明します。

前提条件

  • スマートカードに、証明書と秘密鍵が含まれる。
  • このカードはリーダーに挿入され、コンピューターに接続されている。
  • authselect ツールがシステム上にインストールされている。

手順

  • 以下のコマンドを実行して、スマートカードとパスワード認証を許可します。

    # authselect select sssd with-smartcard --force

この時点で、スマートカード認証が有効になります。ただし、スマートカードを忘れてしまった場合は、パスワード認証が動作します。

2.3. スマートカード認証を強制するための authselect の設定

authselect ツールを使用すると、システムでスマートカード認証を設定でき、デフォルトのパスワード認証を無効にすることができます。authselect コマンドには以下のオプションが含まれている必要があります。

  • with-smartcard - スマートカード認証の有効化
  • with-smartcard-required - 排他的なスマートカード認証の有効化 (パスワードによる認証は無効になっています)

前提条件

  • スマートカードに、証明書と秘密鍵が含まれている。
  • このカードはリーダーに挿入され、コンピューターに接続されている。
  • authselect ツールがローカルシステムにインストールされている。

手順

  • 以下のコマンドを実行して、スマートカード認証を強制します。

    # authselect select sssd with-smartcard  with-smartcard-required --force

この時点では、スマートカードでのみログインできます。パスワード認証は使えなくなります。

2.4. 削除時にロックを使用したスマートカード認証の設定

authselect サービスを使用すると、スマートカードの認証を設定して、リーダーからスマートカードを削除した後も、画面を即時にロックすることができます。authselect コマンドには以下の変数が含まれている必要があります。

  • with-smartcard - スマートカード認証の有効化
  • with-smartcard-required - 排他的なスマートカード認証の有効化 (パスワードによる認証は無効になっています)
  • with-smartcard-lock-on-removal: スマートカードの削除後に強制的にログアウト

前提条件

  • スマートカードに、証明書と秘密鍵が含まれている。
  • このカードはリーダーに挿入され、コンピューターに接続されている。
  • authselect ツールがローカルシステムにインストールされている。

手順

  • 以下のコマンドを実行して、スマートカード認証の有効化、パスワード認証の無効化、削除時のロックの強制を行います。

    # authselect select sssd  with-smartcard  with-smartcard-required with-smartcard-lock-on-removal --force

これで、カードを削除すると、画面がロックされます。ロックを解除するには、スマートカードを再度挿入する必要があります。

第3章 ローカル証明書のスマートカードへの設定およびインポート

本章では、以下のシナリオを説明します。

  • ホストがドメインに接続されていない
  • このホストで、スマートカードで認証する必要がある
  • スマートカード認証を使用して SSH アクセスを設定する
  • authselect を使用してスマートカードを設定する

このシナリオを行うには、以下の設定を使用します。

  • スマートカードで認証したいユーザーのユーザー証明書を取得する。証明書は、ドメインで使用される信頼できる認証局によって生成される必要があります。

    証明書を取得できない場合は、テスト目的で、ローカルの認証局が署名したユーザー証明書を生成する。

  • スマートカードに証明書と秘密鍵を保存する
  • SSH アクセス用のスマートカード認証を設定する
重要

ホストがドメインの一部である場合は、そのホストをドメインに追加し、Active Directory または Identity Management 認証局が生成した証明書を使用します。

スマートカードに IdM 証明書を作成する方法は、「スマートカード認証用の Identity Management の設定」を参照してください。

前提条件

  • authselect がインストールされている。

    authselect ツールは、Linux ホストでユーザー認証を設定し、スマートカード認証パラメーターを設定するのに使用できます。authselect の詳細は、「authselect とは」を参照してください。

  • RHEL 8 で対応しているスマートカードまたは USB デバイス

    詳細は、「Smart Card support in RHEL8」を参照してください。

3.1. ローカル証明書の作成

本セクションでは、以下のタスクを実行する方法を説明します。

  • OpenSSL 認証局の生成
  • 証明書署名リクエストの作成
警告

以下の手順は、テスト目的のみを想定しています。ローカルの自己署名証明局により生成される証明書は、AD、IdM、または RHCS 認証局を使用する場合と同じように安全ではありません。ホストがドメインに含まれていない場合でも、企業の認定機関が生成した証明書を使用する必要があります。

手順

  1. 証明書を生成するディレクトリーを作成します。以下に例を示します。

    # mkdir /tmp/ca
    # cd /tmp/ca
  2. 証明書を設定します (このテキストは、ca ディレクトリーのコマンドラインにコピーします)。

    cat > ca.cnf <<EOF
    [ ca ]
    default_ca = CA_default
    
    [ CA_default ]
    dir              = .
    database         = \$dir/index.txt
    new_certs_dir    = \$dir/newcerts
    
    certificate      = \$dir/rootCA.crt
    serial           = \$dir/serial
    private_key      = \$dir/rootCA.key
    RANDFILE         = \$dir/rand
    
    default_days     = 365
    default_crl_days = 30
    default_md       = sha256
    
    policy           = policy_any
    email_in_dn      = no
    
    name_opt         = ca_default
    cert_opt         = ca_default
    copy_extensions  = copy
    
    [ usr_cert ]
    authorityKeyIdentifier = keyid, issuer
    
    [ v3_ca ]
    subjectKeyIdentifier   = hash
    authorityKeyIdentifier = keyid:always,issuer:always
    basicConstraints       = CA:true
    keyUsage               = critical, digitalSignature, cRLSign, keyCertSign
    
    [ policy_any ]
    organizationName       = supplied
    organizationalUnitName = supplied
    commonName             = supplied
    emailAddress           = optional
    
    [ req ]
    distinguished_name = req_distinguished_name
    prompt             = no
    
    [ req_distinguished_name ]
    O  = Example
    OU = Example Test
    CN = Example Test CA
    EOF
  3. 以下のディレクトリーを作成します。

    # mkdir certs crl newcerts
  4. 以下のファイルを作成します。

    # touch index.txt crlnumber index.txt.attr
  5. シリアルファイルに番号 01 を書き込みます。

    # echo 01 > serial

    このコマンドは、シリアル番号内に 01 を書き込みます。これは証明書のシリアル番号です。この CA によってリリースされる新しい証明書ごとに、数が 1 つ増えます。

  6. OpenSSL root CA キーを作成します。

    # openssl genrsa -out rootCA.key 2048
  7. 自己署名 root 認証局証明書を作成します。

    # openssl req -batch -config ca.cnf \
        -x509 -new -nodes -key rootCA.key -sha256 -days 10000 \
        -set_serial 0 -extensions v3_ca -out rootCA.crt
  8. ユーザー名のキーを作成します。

    # openssl genrsa -out example.user.key 2048

    このキーは、セキュリティーが保護されていないローカルシステムで生成されるため、キーがカードに格納されると、キーがシステムから削除されます。

    キーはスマートカードで直接作成できます。これを行う場合は、スマートカードの製造元による手順に従います。

  9. 証明書署名リクエスト設定ファイルを作成します (このテキストを ca ディレクトリーでコマンドラインにコピーします)。

    cat > req.cnf <<EOF
    [ req ]
    distinguished_name = req_distinguished_name
    prompt = no
    
    [ req_distinguished_name ]
    O = Example
    OU = Example Test
    CN = testuser
    
    [ req_exts ]
    basicConstraints = CA:FALSE
    nsCertType = client, email
    nsComment = "testuser"
    subjectKeyIdentifier = hash
    keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment
    extendedKeyUsage = clientAuth, emailProtection, msSmartcardLogin
    subjectAltName = otherName:msUPN;UTF8:testuser@EXAMPLE.COM, email:testuser@example.com
    EOF
  10. example.user 証明書用の証明書署名リクエストを作成します。

    # openssl req -new -nodes -key example.user.key \
        -reqexts req_exts -config req.cnf -out testuser.csr
  11. 新しい証明書を設定します。有効期限は 1 年に設定されています。

    # openssl ca -config ca.cnf -batch -notext \
        -keyfile rootCA.key -in example.user.csr -days 365 \
        -extensions usr_cert -out example.user.crt

この時点で、認証局と証明書が正常に生成され、スマートカードにインポートできる状態になります。

3.2. SSSD ディレクトリーへの証明書のコピー

GNOME デスクトップマネージャー (GDM) には SSSD が必要です。GDM を使用する場合は、/etc/sssd/pki ディレクトリーに PEM 証明書をコピーする必要があります。

前提条件

  • ローカル CA の認証局および証明書が生成されます。

手順

  1. システムに SSSD がインストールされていることを確認します。

    # rpm -q sssd
    sssd-2.0.0.43.el8_0.3.x86_64
  2. /etc/sssd/pki ディレクトリーを作成します。

    # file /etc/sssd/pki
    /etc/sssd/pki/: directory
  3. /etc/sssd/pki/ ディレクトリーの PEM ファイルとして rootCA.crt をコピーします。

    # cp /tmp/ca/rootCA.crt /etc/sssd/pki/sssd_auth_ca_db.pem

これで、認証局と証明書が生成され、/etc/sssd/pki ディレクトリーに保存されました。

注記

別のアプリケーションで認証局の証明書を共有する場合は、sssd.conf の場所を変更してください。

  • SSSD PAM レスポンダー: [pam] セクションの pam_cert_db_path
  • SSSD ssh レスポンダー: [ssh] セクションの ca_db

詳細は sssd.conf の man ページを参照してください。

Red Hat では、デフォルトのパスを維持して、SSSD に専用の認証局証明書ファイルを使用し、認証に信頼されている認証局のみがここにリストされるようにすることを推奨します。

3.3. gnutls-utils のインストール

スマートカードを設定するには、証明書を生成し、スマートカードに保存するツールが必要になります。

以下を実行する必要があります。

  • 証明書管理に役立つ gnutls-utils プログラムをインストールします。
  • スマートカードリーダーと通信する pcscd サービスを開始します。

手順

  1. gnutls-utils パッケージをインストールします。これにより、スマートカードの読み書きを行うためのスマートカード設定を管理できます。

    # dnf -y install opensc gnutls-utils
  2. pcscd サービスを開始します。

    # systemctl start pcscd

pcscd サービスが稼働していることを確認します。

3.4. スマートカードでの証明書の保存

本セクションでは、設定に役立つ gnutls-utils によるスマートカードの設定を説明します。

  • スマートカードの消去
  • 新しい PIN および PUK の設定
  • スマートカードでの新規スロットの作成
  • スロットでの証明書とプライベートキーの保存
  • スマートカード設定のロック (一部のスマートカードではこのようなタイプの最終化が必要になります)

前提条件

  • gnutls-utils パッケージがインストールされている。

    詳細は、「gnutls-utils のインストール」を参照してください。

  • カードがリーダーに挿入され、コンピューターに接続されている。

手順

  1. スマートカードを消去して PIN で自身を認証します。

    # spawn pkcs15-init --erase-card --use-default-transport-keys
    Using reader with a card: Smart Card name
    PIN [Security Officer PIN] required.
    Please enter PIN [Security Officer PIN]:

    カードを削除しました。

  2. PIN と PUK (検証に両方に 2 回) を設定します。

    # pkcs15-init --create-pkcs15 --use-default-transport-keys \
        --pin redhat --puk redhat --so-pin redhat --so-puk redhat
    Using reader with a card: SCM Microsystems Inc. SCR 3320 [CCID Interface] (53311657131456) 00 00

    pcks15-init は、スマートカードに新しいスロットを作成し、ラベルと認証 ID のマークを付けます。

  3. スロット名および認証 ID のラベルを追加します。

    # pkcs15-init --store-pin --label testuser \
        --auth-id 01 --so-pin redhat --pin redhat --puk redhat
    Using reader with a card: SCM Microsystems Inc. SCR 3320 [CCID Interface] (53311657131456) 00 00

    ラベルの auth-id は 01 に設定されます。

  4. 秘密鍵を、スマートカードの新しいスロットに保存します。

    # pkcs15-init --store-private-key testuser.key --label testuser_key \
        --auth-id 01 --id 01 --so-pin redhat --pin redhat
    Using reader with a card: SCM Microsystems Inc. SCR 3320 [CCID Interface] (53311657131456) 00 00
  5. 証明書をスマートカードの新しいスロットに保存します。

    # pkcs15-init --store-certificate testuser.crt --label testuser_crt \
        --auth-id 01 --id 01 --format pem --so-pin redhat --pin redhat
    Using reader with a card: SCM Microsystems Inc. SCR 3320 [CCID Interface] (53311657131456) 00 00
  6. 任意で、設定をロックしてカード設定の最終処理を行います。

    # pkcs15-init -F
    重要

    スマートカードの中には、このステップが必要なものもあります。

この段階では、スマートカードには、新規作成されたスロットに証明書と秘密鍵が含まれます。PIN と PUK が正しく作成されました。

3.5. スマートカード認証で SSH アクセスの設定

スマートカードが設定されていれば、スマートカード認証を使用してこのホストへの SSH アクセスを設定できます。

基本的に、ssh-keygen コマンドを実行して、opensc ライブラリーを使用して SSH 鍵への書き込みを実行する必要があります。

前提条件

  • スマートカードには、証明書と秘密鍵が含まれます。
  • カードがリーダーに挿入され、コンピューターに接続されている。

手順

  1. スマートカード認証を使用するユーザーのホームディレクトリーで、SSH キー用の新しいディレクトリーを作成します。

    # mkdir /home/example.user/.ssh
  2. SSH キーを生成します。

    # ssh-keygen -D /usr/lib64/pkcs11/opensc-pkcs11.so >> ~example.user/.ssh/authorized_keys
  3. アクセス権を変更します。

    # chown -R example.user:example.user ~example.user/.ssh/
    # chmod 700 ~example.user/.ssh/
    # chmod 600 ~example.user/.ssh/authorized_keys
  4. 必要に応じて、キーを表示します。

    # cat ~example.user/.ssh/authorized_keys

    端末にキーが表示されます。

  5. ssh キーを使用するには、authselect コマンドで認証を設定します。

    # authselect select sssd with-smartcard with-smartcard-lock-on-removal --force

    authselect を使用したスマートカードの設定の詳細は 「authselect でスマートカードの設定」を参照してください。

これで、以下のコマンドを実行して ssh アクセスを確認できます。

# ssh -I /usr/lib64/opensc-pkcs11.so -l example.user localhost hostname

設定に成功すると、認証情報の入力を求めるプロンプトはないはずです。スマートカード PIN を追加する必要があります。

法律上の通知

Copyright © 2019 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.