Red Hat Training

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

第13章 認証の設定

認証 は、ユーザーを特定し、システムで検証される方法です。認証プロセスでは、ユーザー名とパスワードなど、ある程度の ID および認証情報を提示する必要があります。その後、認証情報は、システムの一部のデータストアに保存されている情報と比較されます。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux では、認証設定ツールは LDAP などのユーザー認証情報に使用するデータストアの種類を設定するのに役立ちます。
シングルサインオンの便宜上や、Red Hat Enterprise Linuxnbsp;Hat Enterprise Red Hat Enterprise Linuxnbsp;Linux は中央のデーモンを使用して、多数の異なるデータストアのユーザー認証情報を保存できます。SSSD(System Security Services Daemon)は、LDAP、Kerberos、および外部アプリケーションと対話して、ユーザーの認証情報を検証できます。Authentication Configuration Tool は、NIS、Winbind、および LDAP とともに SSSD を設定して、認証処理とキャッシュを組み合わせることができます。

13.1. システム認証の設定

ユーザーが Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux システムにログインすると、そのユーザーはユーザー ID を確立するためにいくつかの 認証 情報を提示します。次に、システムは、設定された認証サービスに対してこれらの認証情報を確認します。認証情報が一致し、ユーザーアカウントがアクティブであれば、ユーザーは 認証されます。(ユーザーが認証されると、ユーザーが実行できるものを判別するためにアクセス制御サービスへ情報が渡されます。ユーザーがアクセスが 許可 されるリソースです。)
ユーザーがローカルシステムに配置できるか、ローカルシステムが LDAP や Kerberos などのリモートシステムのユーザーデータベースを参照できます。
システムは、ユーザー認証を確認するために、有効なアカウントデータベースの一覧を設定している。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux では、認証設定ツールには、ユーザーデータストアを設定するための GUI とコマンドラインオプションの両方があります。
ローカルシステムは、ユーザー情報にさまざまなデータストアを使用できます。たとえば、Lightweight Directory Access Protocol (LDAP)、ネットワーク情報サービス(NIS)、および Winbind があります。さらに、LDAP データストアと NIS データストアの両方が Kerberos を使用してユーザーを認証することができます。
重要
インストール時またはセキュリティーレベル(Security Level Configuration Tool)で中程度または高レベルのセキュリティーレベルが設定されている場合、ファイアウォールは NIS 認証を防ぎます。ファイアウォールに関する詳しい情報は、『 『セキュリティーガイド』の「ファイアウォール」セクションを参照して』 ください。

13.1.1. Authentication Configuration Tool UI の起動

  1. root でシステムにログインします。
  2. システム を開きます
  3. Administration メニューを選択します。
  4. Authentication 項目を選択します。
または、system-config-authentication コマンドを実行します。
重要
Authentication Configuration Tool UI が閉じられると、変更はすぐに有効になります。
認証 ダイアログボックスには、設定タブが 2 つあります。
  • ID および認証。アイデンティティーストアとして使用するリソース (ユーザー ID と対応する認証情報が保存されるデータリポジトリー) を設定します。
  • 高度なオプション。スマートカードやフィンガープリントなどのパスワードや証明書以外の認証方法を許可します。

13.1.2. 認証用のアイデンティティーストアの選択

Identity & Authentication タブは、ユーザーの認証方法を設定します。デフォルトでは、ローカルシステム認証を使用します。つまり、ユーザーとパスワードは、ローカルシステムのアカウントに対して確認されます。Red Hat Enterprise Linuxnbsp;Hat Enterprise Linuxnbsp;Linux マシンは、LDAP、NIS、Winbind などのユーザーおよび認証情報を含む外部リソースを使用することもできます。

図13.1 ローカル認証

ローカル認証

13.1.2.1. LDAP 認証の設定

openldap-clients パッケージまたは sssd パッケージは、ユーザーデータベースの LDAP サーバーを設定するのに使用されます。デフォルトでは、両方のパッケージがデフォルトでインストールされます。
  1. 「Authentication Configuration Tool UI の起動」 のとおりに、認証設定ツールを開きます。
  2. User Account Database ドロップダウンメニューで LDAP を選択します。
  3. LDAP サーバーへの接続に必要な情報を設定します。
    • LDAP 検索ベース DN は、ユーザーディレクトリーのルートサフィックスまたは 識別名 (DN) を提供します。ID/認証に使用されるユーザーエントリーはすべて、この親エントリーの下に存在します。例: ou=people,dc=example,dc=com
      このフィールドは任意です。これが指定されていない場合、System Security Services Daemon(SSSD)は、LDAP サーバーの設定エントリーの namingContexts および defaultNamingContext 属性を使用して検索ベースの検出を試みます。
    • LDAP サーバー は LDAP サーバーの URL を提供します。これには通常、ldap://ldap.example.com:389 などの LDAP サーバーのホスト名およびポート番号の両方が必要です。
      URL ldaps:// にセキュアなプロトコルを入力すると、Download CA Certificate ボタンが有効になります。
    • TLS を使用して接続を暗号化する かどうかは、Start TLS を使用して LDAP サーバーへの接続を暗号化するかどうかを設定します。これにより、標準ポートを介したセキュアな接続が可能になります。
      TLS を選択すると、Download CA Certificate ボタンが有効になります。これは、発行した認証局から LDAP サーバーの発行元の CA 証明書を取得します。CA 証明書は、プライバシーにより強化されたメール(PEM)形式である必要があります。
      重要
      サーバー URL がセキュアなプロトコル(ldaps)を使用する場合は、TLS を使用して接続を暗号化する ことはでき ませ ん。このオプションは、標準ポートでセキュアな接続を開始する Start TLS を使用します。セキュアなポートが指定されている場合は、TLS の代わりに SSL などのプロトコルを使用する必要があります。
  4. 認証方法を選択します。LDAP は、簡単なパスワード認証または Kerberos 認証を許可します。
    Kerberos の使用については、「LDAP または NIS 認証での Kerberos の使用」 を参照してください。
    LDAP パスワード オプションは、PAM アプリケーションで LDAP 認証を使用します。このオプションには、LDAP サーバーに接続するためにセキュアな(ldaps://)URL または TLS オプションのいずれかが必要です。

13.1.2.2. NIS 認証の設定

  1. ypbind パッケージをインストールします。これは NIS サービスに必要ですが、デフォルトではインストールされません。
    ~]# yum install ypbind
    ypbind サービスをインストールすると、ポートマップと yp bind サービスが開始し、システムの起動時に開始できるようになります。
  2. 「Authentication Configuration Tool UI の起動」 のとおりに、認証設定ツールを開きます。
  3. User Account Database ドロップダウンメニューで NIS を選択します。
  4. NIS サーバーに接続する情報を設定します。つまり、NIS ドメイン名およびサーバーホスト名になります。NIS サーバーが指定されていない場合、authconfig デーモンは NIS サーバーをスキャンします。
  5. 認証方法を選択します。NIS は、簡単なパスワード認証または Kerberos 認証を許可します。
    Kerberos の使用については、「LDAP または NIS 認証での Kerberos の使用」 を参照してください。
NIS の詳細は、『『セキュリティーガイド』』 の「NIS のセキュア化」セクションを参照してください。

13.1.2.3. Winbind 認証の設定

  1. samba-winbind パッケージをインストールします。これは、Samba サービスの Windows 統合機能に必要ですが、デフォルトではインストールされません。
    ~]# yum install samba-winbind
  2. 「Authentication Configuration Tool UI の起動」 のとおりに、認証設定ツールを開きます。
  3. User Account Database ドロップダウンメニューで Winbind を選択します。
  4. Microsoft Active Directory ドメインコントローラーへの接続に必要な情報を設定します。
    • Winbind ドメイン は、接続する Windows ドメインを提供します。
      これは、DOMAIN などの Windows 2000 形式である必要があります。
    • セキュリティーモデル は、Samba クライアントに使用するセキュリティーモデルを設定します。authconfig は、以下の 4 種類のセキュリティーモデルをサポートします。
      • ads は、Samba が Active Directory Server レルムのドメインメンバーとして動作するように設定します。このモードで実行するには、krb5-server パッケージをインストールして、Kerberos を適切に設定する必要があります。また、コマンドラインを使用して Active Directory Server に参加する場合は、以下のコマンドを使用する必要があります。
        net ads join
      • ドメイン には、Windows サーバーなど、Windows プライマリーまたはバックアップドメインコントローラーで認証することで、Samba がユーザー名/パスワードを検証します。
      • サーバー には、Windows サーバーなどの別のサーバーで認証することで、ローカルの Samba サーバーがユーザー名/パスワードを検証します。サーバーの認証を試みると、システムは user モードで認証を試行します。
      • ユーザー には、有効なユーザー名およびパスワードでクライアントにログインする必要があります。このモードは、暗号化されたパスワードに対応します。
        ユーザー名の形式は domain\user (例: EXAMPLE\jsmith) である必要があります。
        注記
        指定したユーザーが Windows ドメインに存在することを確認するには、常に Windows 2000 形式の形式を使用してバックスラッシュ(\)文字をエスケープしてください。以下に例を示します。
        ~]# getent passwd domain\\user DOMAIN\user:*:16777216:16777216:Name Surname:/home/DOMAIN/user:/bin/bash
        以下はデフォルトのオプションになります。
    • Winbind ADS レルム は、Samba サーバーが参加する Active Directory レルムを提供します。これは、ads セキュリティーモデルとのみ使用されます。
    • winbind ドメインコントローラーは、使用するドメインコントローラーを提供します。ドメインコントローラーの詳細は、「ドメインコントローラー」 を参照してください。
    • テンプレート シェルは、Windows ユーザーアカウント設定に使用するログインシェルを設定します。
    • オフラインログインを許可する と、認証情報をローカルキャッシュに保存できます。システムがオフライン時に、ユーザーがシステムリソースに認証を試みるとキャッシュが参照されます。
Winbind サービスの詳細は、「Samba デーモンと関連サービス」 を参照してください。
Winbind およびトラブルシューティングのヒントの詳細は、Red Hat カスタマーポータルナレッジベース を参照してください。
また、Red Hat Access Labs ページには、Red Hat Enterprise Linux を Active Directory に接続するのに役立つ smb.conf ファイルの一部を生成する Winbind Mapper ユーティリティーが含まれます。

13.1.2.4. LDAP または NIS 認証での Kerberos の使用

LDAP および NIS の認証ストアは、Kerberos 認証方法をサポートします。Kerberos の使用には、以下のような利点があります。
  • これは、標準ポートを介した接続を許可する一方で、通信にセキュリティーレイヤーを使用します。
  • SSSD で認証情報キャッシュを自動的に使用します。これにより、オフラインログインが可能になります。
Kerberos 認証を使用するには、krb5-libs および krb5-workstation パッケージが必要です。
Authentication Method ドロップダウンメニューの Kerberos パスワード オプションは、Kerberos レルムへの接続に必要なフィールドを自動的に開きます。

図13.2 Kerberos フィールド

Kerberos フィールド
  • レルム は、Kerberos サーバーのレルム名を指定します。レルムは、Kerberos を使用するネットワークで、1 つ以上の キー配布センター (KDC) と、潜在的に多数のクライアントで構成されます。
  • KDC は、Kerberos チケットを発行するサーバーのコンマ区切りリストを提供します。
  • 管理サーバー は、レルムで kadmind プロセスを実行する管理サーバーのリストを提供します。
  • 必要に応じて、DNS を使用してサーバーのホスト名を解決し、レルム内で追加の KDC を見つけます。
Kerberos の詳細は、『Red Hat Enterprise Linux 6nbsp;Hat Enterprise Linux 6nbsp;LinuxRed Hat Enterprise Linux 6nbsp;6 『Managing Single Sign-On and Smart Cards』 』の「Using Kerberos」を参照してください。

13.1.3. 代替認証機能の設定

Authentication Configuration Tool は、アイデンティティーストアとは別に、認証の動作に関連する設定も設定します。これには、完全に異なる認証方法(フィンガープリントスキャンとスマートカード)またはローカル認証ルールが含まれます。これらの代替認証オプションは、Advanced Options タブで設定します。

図13.3 高度な設定

高度な設定

13.1.3.1. フィンガープリント認証の使用

適切なハードウェアが利用可能な場合は、フィンガープリントリーダーのサポート オプションを使用すると、他の認証情報に加えて、フィンガープリントスキャンを使用してローカルユーザーの認証を行うことができます。

13.1.3.2. ローカル認証パラメーターの設定

ローカル認証オプション エリアには、ローカルシステムで認証の動作を定義する 2 つのオプションがあります。
  • ローカルアクセス制御を有効 にすると、/etc/security/access.conf ファイルに、ローカルユーザー承認ルールを確認するように指示します。
  • パスワードハッシュアルゴリズムは ローカルに保存されたパスワードの暗号化に使用するハッシュアルゴリズムを設定します。

13.1.3.3. スマートカード認証の有効化

適切なスマートカードリーダーが利用可能な場合、システムは他のユーザー認証情報ではなくスマートカード(または トークン)を受け入れて認証できます。
Enable smart card support オプションを選択すると、スマートカード認証の動作を定義できます。
  • カード削除アクション は、アクティブなセッション中にカードがカードリーダーから削除されるときにシステムに応答する方法を指示します。システムは削除を無視し、ユーザーが通常通りにリソースにアクセスできるようにしたり、スマートカードが提供されるまでシステムが直ちにロックできます。
  • ログ インにスマートカード が必要であるか、ログインに許可されているか、スマートカードのログインが必要です。このオプションを選択すると、認証の他のすべての方法がすぐにブロックされます。
    警告
    スマートカードを使用してシステムに正常に認証されるまで、このオプションを選択しないでください。
スマートカードを使用するには、pam_pkcs11 パッケージが必要です。

13.1.3.4. ユーザーホームディレクトリーの作成

オプション(初回ログイン時にホームディレクトリーの作成)があり、ユーザーの初回ログイン時にホームディレクトリーを自動的に作成します。
このオプションは、LDAP など、集中管理されているアカウントでは利点があります。ただし、自動マウントなどのシステムがユーザーのホームディレクトリーの管理に使用される場合、このオプションは選択しないでください。

13.1.4. コマンドラインでの認証設定

authconfig コマンドラインツールは、スクリプトに渡される設定に従って、システム認証に必要な設定ファイルおよびサービスをすべて更新します。UI で設定できるすべての ID および認証設定オプションを許可すると共に、authconfig ツールを使用してバックアップおよびキックスタートファイルを作成することもできます。
authconfig オプションの完全なリストは、help 出力と man ページを参照してください。

13.1.4.1. authconfig を使用するためのヒント

authconfig を実行する際に注意すべき事項があります。
  • すべてのコマンドで、--update オプションまたは --test オプションのいずれかを使用します。コマンドを正常に実行するには、以下のオプションのいずれかが必要です。--update を使用すると、設定の変更が書き込まれます。--test は変更を stdout に出力しますが、設定の変更は適用されません。
  • 有効化オプションには、それぞれ対応する無効化オプションがあります。

13.1.4.2. LDAP ユーザーストアの設定

LDAP アイデンティティーストアを使用するには、--enableldap を使用します。LDAP を認証ソースとして使用する場合は、--enableldapauth を使用して、LDAP サーバー名、ユーザーサフィックスのベース DN、TLS を使用するかどうか (オプション) など、必要な接続情報を使用します。authconfig コマンドには、ユーザーエントリーの RFC 2307bis スキーマを有効または無効にするオプションもありますが、認証設定 UI では不可能です。
プロトコル (ldap または ldaps) およびポート番号を含む完全な LDAP URL を使用するようにしてください。--enableldaptls オプションでセキュアな LDAP URL (ldaps) を使用 しないでください
authconfig --enableldap --enableldapauth --ldapserver=ldap://ldap.example.com:389,ldap://ldap2.example.com:389 --ldapbasedn="ou=people,dc=example,dc=com" --enableldaptls --ldaploadcacert=https://ca.server.example.com/caCert.crt --update
LDAP パスワード認証に --ldapauth を使用する代わりに、LDAP ユーザーストアで Kerberos を使用できます。これらのオプションは、「Kerberos 認証の設定」 で説明されています。

13.1.4.3. NIS ユーザーストアの設定

NIS アイデンティティーストアを使用するには、--enablenis を使用します。Kerberos パラメーターが明示的に設定されていない限り、NIS 認証が自動的に使用されるため、Kerberos 認証(「Kerberos 認証の設定」)が使用されます。NIS サーバーおよび NIS ドメインを特定するためのパラメーターのみ。これを使用しないと、authconfig サービスは NIS サーバーのネットワークをスキャンします。
authconfig --enablenis --nisdomain=EXAMPLE --nisserver=nis.example.com --update

13.1.4.4. Winbind ユーザーストアの設定

Windows ドメインには複数のセキュリティーモデルがあり、ドメインで使用されるセキュリティーモデルによってローカルシステムの認証設定が決定します。
ユーザーおよびサーバーのセキュリティーモデルの場合、Winbind の設定にはドメイン(またはワークグループ)名とドメインコントローラーのホスト名のみが必要です。
authconfig --enablewinbind --enablewinbindauth --smbsecurity=user|server  --enablewinbindoffline --smbservers=ad.example.com --smbworkgroup=EXAMPLE --update
注記
ユーザー名の形式は domain\user (例: EXAMPLE\jsmith) である必要があります。
指定したユーザーが Windows ドメインに存在することを確認するには、常に Windows 2000 形式の形式を使用してバックスラッシュ(\)文字をエスケープしてください。以下に例を示します。
~]# getent passwd domain\\user DOMAIN\user:*:16777216:16777216:Name Surname:/home/DOMAIN/user:/bin/bash
ads および domain セキュリティーモデルの場合、Winbind は、テンプレートシェルおよびレルム(adsのみ)への追加の設定を可能にします。以下に例を示します。
authconfig --enablewinbind --enablewinbindauth --smbsecurity ads  --enablewinbindoffline --smbservers=ad.example.com --smbworkgroup=EXAMPLE --smbrealm EXAMPLE.COM --winbindtemplateshell=/bin/sh --update
Windowsベースの認証とWindowsユーザーアカウントの情報を構成するためのオプションは他にもたくさんあります。たとえば、名前の形式、ユーザー名とともにドメイン名を要求するかどうか、UIDの範囲などです。これらのオプションは authconfig ヘルプに一覧表示されます。

13.1.4.5. Kerberos 認証の設定

LDAP および NIS の両方で、Kerberos 認証をネイティブ認証メカニズムの代わりに使用できます。少なくとも、Kerberos認証を使用するには、レルム、KDC、および管理サーバーを指定する必要があります。また、DNS を使用してクライアント名を解決し、追加の管理サーバーを検索するオプションもあります。
authconfig NIS or LDAP options --enablekrb5 --krb5realm EXAMPLE --krb5kdc kdc.example.com:88,server.example.com:88 --krb5adminserver server.example.com:749 --enablekrb5kdcdns --enablekrb5realmdns --update

13.1.4.6. ローカル認証設定の構成

また、認証設定ツールは、ホームディレクトリーの作成、パスワードハッシュアルゴリズムの設定、承認などのセキュリティーに関連するユーザー設定を制御することもできます。これらの設定は、アイデンティティー/ユーザーストア設定とは独立して行われます。
たとえば、ユーザーのホームディレクトリーを作成するには、次のコマンドを実行します。
authconfig --enablemkhomedir --update
ユーザーパスワードの暗号化に使用するハッシュアルゴリズムを設定または変更するには、以下を実行します。
authconfig --passalgo=sha512 --update

13.1.4.7. フィンガープリント認証の設定

フィンガープリントリーダーのサポートを有効にするオプションは 1 つあります。このオプションは、単独または他の authconfig 設定 (LDAP ユーザーストアなど) と併用できます。
~]# authconfig --enablefingerprint --update

13.1.4.8. スマートカード認証の設定

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

13.1.4.9. キックスタートファイルと設定ファイルの管理

--update オプションは、設定の変更ですべての設定ファイルを更新します。いくつかの代替オプションがあり、動作が若干異なります。
  • --kickstart は、更新された設定をキックスタートファイルに書き込みます。
  • --test は、全設定を標準出力(stdout)に変更しますが、設定ファイルは編集されません。
さらに、authconfig を使用して以前の設定をバックアップおよび復元できます。すべてのアーカイブは /var/lib/authconfig/ ディレクトリーの一意のサブディレクトリーに保存されます。たとえば、--savebackup オプションは、バックアップディレクトリーを 2011-07-01 として指定します。
~]# authconfig --savebackup=2011-07-01
これにより、/var/lib/authconfig/backup-2011-07-01 ディレクトリーの下にあるすべての認証設定ファイルのバックアップが作成されます。
保存されたバックアップは、--restorebackup オプションを使用して設定を復元し、手動で保存した設定の名前を指定します。
~]# authconfig --restorebackup=2011-07-01
また、authconfig は、 (--update オプションを使用して) 変更を適用する前に設定のバックアップを作成します。設定は、--restorelastbackup オプションを使用して完全バックアップを指定することなく、最新の自動バックアップから復元できます。

13.1.5. カスタムホームディレクトリーの使用

LDAP ユーザーが /home にないホームディレクトリーを持っていて、ユーザーが最初にログインしたときにホームディレクトリーを作成するようにシステムが構成されている場合、これらのディレクトリーは誤った権限で作成されます。
  1. /home ディレクトリーから、ローカルシステムで作成されたホームディレクトリーに、正しい SELinux コンテキストおよびパーミッションを適用します。以下に例を示します。
    ~]# semanage fcontext -a -e /home /home/locale
  2. システムに oddjob-mkhomedir パッケージをインストールします。
    このパッケージは、認証設定ツールがホームディレクトリーの作成に使用する pam_oddjob_mkhomedir.so ライブラリーを提供します。デフォルトの pam_mkhomedir.so ライブラリーとは異なり、pam_oddjob_mkhomedir.so ライブラリーでは、SELinux ラベルを作成できます。
    Authentication Configuration Tool は、利用可能な場合は pam_oddjob_mkhomedir.so ライブラリーを自動的に使用します。それ以外の場合、デフォルトでは pam_mkhomedir.so が使用されます。
  3. oddjobd サービスが実行中であることを確認します。
  4. 「代替認証機能の設定」 にあるように、Authentication Configuration Tool を再度実行し、ホームディレクトリーを有効にします。
ホームディレクトリーの設定を変更する前にホームディレクトリーが作成された場合は、パーミッションと SELinux コンテキストを修正します。以下に例を示します。
~]# semanage fcontext -a -e /home /home/locale
# restorecon -R -v /home/locale