第11章 認証の設定

認証 とは、ユーザーがシステムによって識別されて確認される手段です。認証プロセスはユーザー名とパスワードなど、なんらかの識別子と認証情報を必要とします。この認証情報はそれからシステムのデータストアに保存してある情報と比較されます。Red Hat Enterprise Linuxでは認証設定ツール (Authentication Configuration Tool) が、LDAP など、ユーザー認証情報に使用するデータストアの設定を手伝います。
利便性とシングルサインオンのために、Red Hat Enterprise Linux は中心となるデーモンを使用して多くの異なるデータストアのユーザー認証情報を保存することができます。System Security Services Daemon (システムセキュリティサービスデーモン) (SSSD) は、LDAP や Kerberos、外部のアプリケーショと対話して、ユーザー認証情報を確認できます。認証設定ツールは SSSD、NIS、Winbind、LDAP を設定し、認証プロセスとキャッシングを組み合わせることができます。

11.1. システム認証の設定

ユーザーが Red Hat Enterprise Linux システムにログインする時には、ユーザーはなんらかの 認証情報 を提示してユーザーの ID を確立します。システムはその認証情報を設定された認証サービスに照らし合わせてチェックします。認証情報が一致してユーザーのアカウントがアクティブだと、ユーザーは認証されます。 (ユーザーが認証されると、その情報はアクセス制御サービスに渡され、そのユーザーに何が許可されているかを確認します。これが、ユーザーがアクセスする 権限のある リソースです。)
ユーザーを確認するための情報はローカルシステム上に存在するか、ローカルシステムがリモートシステム上のユーザーデータベースを参照することもできます。
システムはユーザー認証をチェックする為に有効なアカウントデータベースの設定済み一覧を保有していなければなりません。Red Hat Enterprise Linuxでは、認証設定ツールが、どのようなユーザーデータベースストアでも設定するために GUI とコマンドラインの両方のオプションを保有しています。
ローカルシステムはユーザー情報に様々な異なるデータストアを使用することができます。それには Lightweight Directory Access Protocol (LDAP)、Network Information Service (NIS)、および Winbind が含まれます。さらに LDAP と NIS の両データストアは Kerberos を使ってユーザーを認証できます。

重要

インスト-ル中にまたはセキュリティレベル設定ツールの使用で中レベルまたは高レベルのセキュリティがセットされると、ファイヤーウォールは NIS 認証を妨げます。ファイヤーウォールの詳細については 『Security Guide (セキュリティガイド)』 の「ファイヤーウォール」セクションをご覧下さい。

11.1.1. 認証設定ツール UI の起動

  1. root でシステムにログインします。
  2. システム を開きます
  3. 管理 メニューを開きます
  4. 認証 項目を選択します
別の方法としては、system-config-authentication コマンドを実行します

重要

認証設定ツール UI を閉じると、すぐに変更が反映されます。
Authentication ダイアログボックスには2つの設定タブがあります:
  • 識別と認証、これは ID ストア (ユーザー ID と対応する認証情報が保存されているデータレポジトリ) として使用されるリソースを設定します。
  • 高度なオプション、これによりスマートカードや指紋などのパスワードや認証情報以外の認証方法が可能になります。

11.1.2. 認証目的での ID ストアの選択

識別と認証 のタブは、ユーザーに対する認証法をセットします。デフォルトではローカルシステムの認証を使用しますが、これはユーザーとそのパスワードがローカルシステムのアカウントに対してチェックされると言う意味です。Red Hat Enterprise Linux のマシンはユーザーと認証情報を含んだ LDAP、NIS、そして Winbind などの外部リソースを使用することも出来ます。
ローカル認証

図11.1 ローカル認証

11.1.2.1. LDAP 認証の設定

ユーザーデータベースの LDAP サーバー設定には、openldap-clients パッケージか sssd パッケージを使用します。両パッケージともデフォルトでインストールされています。
  1. 「認証設定ツール UI の起動 」 に説明してあるように、認証設定ツールを開きます。
  2. User Account Database (ユーザーアカウントデータベース) ドロップダウンメニューから LDAP を選択します。
  3. LDAP サーバーに接続するために必要となる情報をセットします。
    • LDAP Search Base DN (LDAP 検索データ DN) は root 接尾辞、またはユーザーディレクトリ用のdistinguished name (識別名) (DN) を与えてくれます。識別/認証に使用されるすべてのユーザーエントリは、この親エントリの下に存在します。例えば、ou=people,dc=example,dc=com
      このフィールドはオプションです。特定されない場合は、LDAP サーバーの設定エントリーにある namingContexts および defaultNamingContext 属性を使って System Security Services Daemon (SSSD) が検索ベースの検出を図ります。
    • LDAP Server は、LDAP サーバーの URL を提供します。これには通常、ldap://ldap.example.com:389 のように、LDAP サーバーのホスト名とポート番号の両方が必要になります。
      安全なプロトコルを ldaps:// に入力することで、CA 証明書をダウンロードする ボタンが有効になります。
    • TLS を使用して接続を暗号化する は、LDAP サーバーに対して接続を暗号化するために「Start TLS (TLS の開始)」を使用するかどうかをセットします。これにより、標準ポート上での安全な接続を可能にします。
      TLS を選択すると CA 証明書をダウンロードする ボタンを有効にするため、発行元の証明書権限から LDAP サーバー用の CA 証明書発行を取り込むようになります。CA 証明書は PEM (privacy enhanced mail プライバシー強化メール) 形式でなければなりません。

      重要

      サーバー URL が安全なプロトコル (ldaps) を使用する場合は、「TLS を使用して接続を暗号化する 」を選択しないでください。 このオプションは Start TLS を使用し、これは標準ポートへの安全な接続を開始します。つまり、安全なポートが指定されている場合、Start TLS ではなく、SSL のようなプロトコルを使用する必要があります。
  4. 認証のメソッドを選択します。LDAP は、単純なパスワード認証、あるいは Kerberos 認証を受け付けます。
    「LDAP または NIS 認証で Kerberos の使用」 に説明してあるようにして Kerberos の使用
    LDAP password オプションは、PAM アプリケーションを使用してLDAP 認証をします。このオプションは、LDAP サーバーに接続するために、安全な (ldaps://) URL か、または TLS オプションを必要とします。

11.1.2.2. NIS 認証の設定

  1. ypbind パッケージをインストールします。これは NIS サービスに必要なものですが、デフォルトではインストールされていません。
    [root@server ~]# yum install ypbind
    ypbind サービスがインストールされると、portmap サービスと ypbind サービスが開始され、起動時に開始できるようになります。
  2. 「認証設定ツール UI の起動 」 に説明してあるように、認証設定ツールを開きます。
  3. User Account Database (ユーザーアカウントデータベース) のドロップダウンメニュー内の NIS を選択します。
  4. NIS サーバーに接続するための情報として NIS ドメイン名とサーバーのホスト名を設定します。NIS サーバーが指定されていない場合は authconfig デーモンが、NIS サーバーを求めてスキャンします。
  5. 認証のメソッドを選択します。NIS は単純なパスワード認証、あるいは Kerberos 認証を受け付けます。
    「LDAP または NIS 認証で Kerberos の使用」 に説明してあるようにして Kerberos の使用
NIS の詳細については、『セキュリティガイド』 の 「Securing NIS (NIS の保護)」 のセクションを参照してください。

11.1.2.3. Winbind 認証の設定

  1. samba-winbind パッケージをインストールします。これは、Samba サービスの Windows 統合機能に必要なものですが、デフォルトではインストールされていません。
    [root@server ~]# yum install samba-winbind
  2. 「認証設定ツール UI の起動 」 に説明してあるように、認証設定ツールを開きます。
  3. User Account Database ドロップダウンメニュー内で Winbind を選択します。
  4. Microsoft Active Directory ドメインコントローラーへ接続するために必要な情報を設定します。
    • Winbind Domain (Winbind ドメイン) は接続先の Windows ドメインを提供します。
      これは、DOMAIN のような Windows 2000 形式にします。
    • セキュリティモデル は Samba クライアントを使用するセキュリティモデルを設定します。authconfig は 4 つのタイプのセキュリティモデルをサポートします。
      • ads は、Samba が Active Directory Server (ADS) レルムのドメインメンバーとして機能するよう設定します。このモードで操作を行うには、krb5-server パッケージがインストールされ、Kerberos が適切に設定されている必要があります。
      • domain は、Windows Server が行うのと同様の方法で、Windows のプライマリまたはバックアップドメインコントローラを通して認証を行うことで、Samba にユーザー名/パスワードの検証をさせます。
      • server は、別のサーバー (例えば Windows Server) を通して認証をすることでローカル Samba サーバーにユーザー名/パスワードの検証をさせます。サーバー認証に失敗した場合には、システムは代わりに user モードで認証を試みます。
      • user はクライアントが有効なユーザー名とパスワードでログインすることを要求します。このモードは暗号化したパスワードをサポートしています。
        ユーザー名の形式は、EXAMPLE\jsmith のように ドメイン\ユーザー とする必要があります。

        注記

        あるユーザーが Windows ドメイン内に存在することを検証する際は、常に Windows 2000 スタイルの形式を使い、バックスラッシュ文字 (\) をエスケープします。例えば、
        [root@server ~]# getent passwd domain\\user DOMAIN\user:*:16777216:16777216:Name Surname:/home/DOMAIN/user:/bin/bash
        これがデフォルトのオプションです。
    • Winbind ADS Realm Samba サーバーが参加する Active Directory レルムを提供します。これは ads セキュリティモデルと一緒でのみ使用されます。
    • Winbind ドメインコントローラ は使用するドメインコントローラを提供します。ドメインコントローラの詳細情報については 「ドメインコントローラー」 を参照して下さい。
    • テンプレートシェル Windows のユーザーアカウント設定用に使用するログインシェルを設定します。
    • オフラインログインを許可 は、ローカルキャッシュ内に認証情報が保存されるようにします。システムがオフラインの時にユーザーがシステムリソースの認証を試みるとキャッシュが参照されます。
winbindd サービスに関する詳細は 「Samba のデーモンと関連サービス」 を参照してください。

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

LDAP と NIS の認証ストアは両方とも Kerberos の認証メソッドをサポートします。Kerberos の利用にはいくつかの利便性があります:
  • 標準ポート上での接続を許可しながら、通信にセキュリティレイヤーを使用します。
  • オフラインログインを可能にする SSSD を使用した認証情報キャッシングを自動的に使用します。
Kerberos 認証の使用には、krb5-libskrb5-workstation の両パッケージが必要になります。
認証の方法 のドロップダウンメニューから Kerberos パスワード を選ぶと、自動的に Kerberos レルムへの接続に必要なフィールドが開きます。
Kerberos フィールド

図11.2 Kerberos フィールド

  • レルム Kerberos サーバー用のレルムに名前を与えます。レルムとは、1つまたはそれ以上の KDC と多数のクライアントで構成される、Kerberos を使用するネットワークのことです。
  • KDCs は、Kerberos チケットを発行するサーバーのコンマ区切りの一覧を提供します。
  • Admin Servers (管理サーバー) は、レルム内で kadmind プロセスを実行している管理サーバーの一覧を提供します。
  • オプションとして、DNS を使用してサーバーのホスト名を解決してレルム内で追加の KDC を見つけることができます。
Kerberos の詳細については、Red Hat Enterprise Linux 6 の 『Managing Single Sign-On and Smart Cards (シングルサインオンとスマートカード)』 ガイドにある「Using Kerberos (Kerberos の使用)」のセクションを参照して下さい。

11.1.3. 代替認証機能の設定

認証設定ツールも、ID ストアとは別に認証動作に関連したセッティングを設定します。これには、まったく異なる認証メソッド (指紋スキャンとスマートカード) やローカル認証ルールが含まれます。これらの認証オプションは、高度なオプション タブで設定します。
高度なオプション

図11.3 高度なオプション

11.1.3.1. 指紋認証の使用

適切なハードウェアが利用可能である場合は、他の認証情報に加えて 指紋読み取りサポートを有効にする オプションでローカルユーザーの認証に指紋スキャンが使用可能になります。

11.1.3.2. ローカル認証パラメータのセッティング

ローカルシステム上で認証動作を定義する Local Authentication Options (ローカル認証オプション) エリアには2つのオプションがあります:
  • Enable local access control (ローカルアクセス制御を有効にする) は、/etc/security/access.conf ファイルに対してローカルユーザー認証ルールをチェックするようの指示します。
  • Password Hashing Algorithm (パスワードハッシュアルゴリズム) は、ローカル保存のパスワードを暗号化するために使用するハッシュアルゴリズムをセットします。

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

適切なスマートカード読み取りが利用できる時には、システムは認証のために他のユーザー認証情報の代わりにスマートカード (または トークン) を受け付けることができます。
Enable smart card support (スマートカードサポートを有効にする) オプションが選択されると、スマートカード認証の動作を定義付けできます:
  • Card Removal Action (カード削除のアクション) はシステムに対してアクティブセッション中にカード読み取りからカードが取り出された時に対応の方法を伝えます。システムは、取り出しを無視して通常どおりにユーザーにリソースへのアクセスを与えるか、またはスマートカードが再供給されるまでシステムは直ちにロックするかのどちらかです。
  • Require smart card login (スマートカードログインを要求) は、スマートカードがログインで必要かどうか、または単にログインで許可されるかどうかをセットします。このオプションが選択されていると、認証に於ける他のメソッドはすべてすぐにブロックされます。

    警告

    スマートカードを使用してシステムに正しく認証をさせるまではこのオプションは選択しないで下さい。
スマートカードの使用には、pam_pkcs11 パスワードが必要になります。

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

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

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

authconfig コマンドラインツールは、スクリプトに渡されたセッティングに応じてシステム認証に必要な設定ファイルとサービスのすべてを更新します。UI を通じてセットできるすべての識別子と認証設定のオプションの認可に加えて、authconfig ツールはバックアップファイルとキックスタートファイルの作成にも使用できます。
authconfig オプションの総合一覧についてはヘルプの出力と man ページを参照してください。

11.1.4.1. authconfig の使用へのヒント

authconfig を実行する時点で覚えておくことがいくつかあります:
  • すべてのコマンドで --update--test のオプションを使用します。これらのオプションのいずれかがコマンドを正しく実行するために必要になります。--update を使用すると設定の変更を書き込みます。--test は標準出力への変更を表示しますが、設定への変更を適用しません。
  • それぞれの「enable」 オプションには対応する「disable」 オプションがあります。

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

LDAP 識別子ストアを使用するには、--enableldap を使用します。LDAP を認証ソースとして使用するには、--enableldapauth を使用して、それから LDAP サーバー名、ユーザー接尾辞用のベース DN、及び (オプションとして) TLS を使用するかどうか、などの必須となる接続情報を使用します。認証設定 UI 経由では利用できないユーザーエントリ用の RFC 2307bis スキーマに対して、authconfig コマンドはそれを有効/無効にするオプションも持っています。
確実に完全な形の LDAP URL を使用して下さい。プロトコル (ldap または ldaps) とポート番号を含みます。--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 認証の設定」 で説明してあります。

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

NIS 識別子ストアを使用するには、--enablenis を使います。Kerberos 認証 (「Kerberos 認証の設定」) を使用するように Kerberos パラメータが明示的にセットされていない限りは、これが自動的に NIS 認証を使用します。唯一のパラメータは NIS サーバーと NIS ドメインを識別することになります。これらが使用されない場合は、authconfig サービスが NIS サーバーを求めてネットワークをスキャンします。
authconfig --enablenis --nisdomain=EXAMPLE --nisserver=nis.example.com --update

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

Windows のドメインは数種の異なるセキュリティモデルを持っており、ドメインで使用されるセキュリティモデルがローカルシステムの認証設定を決定します。
ユーザーとサーバーのセキュリティモデルには、Winbind 設定はドメイン (またはワークグループ) の名前とドメインコントローラホスト名のみを必要とします。
authconfig --enablewinbind --enablewinbindauth --smbsecurity=user|server  --enablewinbindoffline --smbservers=ad.example.com --smbworkgroup=EXAMPLE --update

注記

ユーザー名の形式は、EXAMPLE\jsmith のように ドメイン\ユーザー とする必要があります。
あるユーザーが Windows ドメイン内に存在することを検証する際は、常に Windows 2000 スタイルの形式を使い、バックスラッシュ文字 (\) をエスケープします。例えば、
[root@server ~]# 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
名前形式、ドメイン名をユーザー名と一緒に要求するかどうか、及び UID の範囲など、Windows ベースの認証の設定と Windows ユーザーアカウントの情報のために他のオプションが数多く存在します。これらのオプションは authconfig ヘルプ内に一覧表示してあります。

11.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

11.1.4.6. ローカル認証セッティングの設定

認証設定ツールは、ホームディレクトリの作成やパスワードアルゴリズムのセッティングや認証などのセキュリティに関連したいくつかのユーザーセッティングも制御できます。これらのセッティングは、識別子/ユーザーストアのセッティングとは独立して実行されます。
例えば、ユーザーホームディレクトリを作成するには:
authconfig --enablemkhomedir --update
ユーザーパスワードを暗号化するために使用されているハッシュアルゴリズムをセット、または変更するには:
authconfig --passalgo=sha512 --update

11.1.4.7. 指紋認証の設定

指紋読み取りのサポートを有効にするオプションが1つあります。このオプションは単独でも使用できますが、LDAP ユーザーストアのような他の authconfig セッティングと一緒でも使用できます。
[root@server ~]# authconfig --enablefingerprint --update

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

システムでスマートカードを使用する際に必要なのは --enablesmartcard オプションのセットのみです。
[root@server ~]# authconfig --enablesmartcard --update
スマートカードには、デフォルトのスマートカードモジュールの変更、スマートカードが取り出された時のシステムの動作のセッティング、ログイン用にスマートカードの要求など、他の設定オプションがあります。
例えば以下のコマンドは、スマートカードが取り出された場合、システムに対してユーザーをすぐに締め出すように指示します (セッティングが 1 の場合は、スマートカードが取り出されても、これを無視します)。
[root@server ~]# authconfig --enablesmartcard --smartcardaction=0 --update
スマートカード認証が正常に設定され、テストが終わると、単純なパスワードベースの認証ではなく、スマートカード認証をユーザーに要求するようにシステムを設定することができます。
[root@server ~]# authconfig --enablerequiresmartcard --update

警告

スマートカードの使用でシステムへの認証が正しく終了するまで--enablerequiresmartcard オプションは使用しないで下さい。使用するとユーザーはシステムにログインできない可能性があります。

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

--update オプションは、設定に変更を受けたすべての設定ファイルを更新します。少しだけ異なる動作をする数種の代替オプションが存在します:
  • --kickstart は、更新した設定をキックスタートファイルに書き込みます。
  • --test は、変更後の設定全域を標準出力に表示しますが、設定ファイルはどれも編集しません。
更には、authconfig はバックアップと以前の設定の復元に使用できます。すべてのアーカイブは /var/lib/authconfig/ ディレクトリ内の特有のサブディレクトリに保存されます。例えば、--savebackup オプションはバックアップディレクトリを2011-07-01 などとして提供します:
[root@server ~]# authconfig --savebackup=2011-07-01
これが、/var/lib/authconfig/backup-2011-07-01 ディレクトリ以下の認証設定ファイルのすべてをバックアップします。
保存したバックアップはどれも --restorebackup オプションで手動保存した設定の名前を入力して、設定の復元に使用できます。
[root@server ~]# authconfig --restorebackup=2011-07-01
また、authconfig は、変更を (--update オプションで) 適用する前に、自動的に設定のバックアップを作成します。設定は、--restorelastbackup オプションを使用することで、正確なバックアップをしていせずに、最新の自動バックアップから復元できます。

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

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