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 ドキュメントへのフィードバック (英語のみ)

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

  • 特定の文章に簡単なコメントを記入する場合は、ドキュメントが Multi-page HTML 形式になっているのを確認してください。コメントを追加する部分を強調表示し、そのテキストの下に表示される Add Feedback ポップアップをクリックし、表示された手順に従ってください。
  • より詳細なフィードバックを行う場合は、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

--enablepamaccess

with-pamaccess

表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

法律上の通知

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.