System Security Services Daemon (SSSD) は、リモート ID および認証プロバイダーへのアクセスを提供します。プロバイダーはバックエンドとして構成され、SSSD はローカル クライアントと構成済みのバックエンド プロバイダーの間の仲介役として機能します。ローカルクライアントが SSSD に接続すると、SSSD がプロバイダーに接続します。 SSSD の利点は次のとおりです。
- 負荷の軽減 :クライアントは識別/認証サーバーに直接接続する必要はありません。 SSSD のみに連絡する必要があります。
- オフライン認証 :SSSD は、必要に応じて、ユーザー ID と資格情報のキャッシュを保持し、ユーザーがオフラインで認証できるようにすることができます。
- シングル ユーザー アカウント :SSSD はネットワーク資格情報を維持し、ユーザーがローカル マシンでローカル ユーザー名を使用して認証することにより、ネットワーク リソースに接続できるようにします。
SSSD のインストール
次の SSSD パッケージをインストールします:
# yum install sssd sssd-client
システムの起動時に SSSD を起動するには、次のいずれかを入力します:
# systemctl enable sssd # authconfig --enablesssd --update
SSSD サービスの構成
SSSD の主な設定ファイルは /etc/sssd/sssd.conf です . SSSD サービスとドメインは、このファイルの個別のセクションで設定され、それぞれが角括弧で囲まれたセクションの名前で始まります。以下に例を示します:
[sssd] [nss] [pam]
[sssd] セクション
SSSD 機能は、SSSD と一緒に実行される特殊なサービスによって提供されます。これらの特殊なサービスは、「モニター」と呼ばれる特別なサービスによって開始および再開されます。監視オプションと ID ドメインは、/etc/sssd/sssd.conf の [sssd] セクションで構成されます。以下に例を示します:
[sssd] domains = LDAP services = nss, pam
domain ディレクティブは、複数のドメインを定義できます。照会したい順序で入力してください。 services ディレクティブは、sssd 自体の開始時に開始されるサービスを一覧表示します。
サービス セクション
SSSD と一緒に実行される特殊なサービスはそれぞれ、/etc/sssd/sssd.conf の個別のセクションで構成されます。たとえば、[nss] セクションは Name Service Switch (NSS) サービスを構成するために使用されます。 [pam] セクションは、PAM サービスの構成に使用されます。
1. NSS サービスの構成
sssd パッケージに含まれている NSS モジュール sssd_nss は、SSSD を使用してユーザー情報を取得するようにシステムに指示します。これは、/etc/sssd/sssd.conf の [nss] セクションで構成されます。以下は、構成可能なディレクティブの部分的なリストのみを含む例です:
[nss] filter_groups = root filter_users = root reconnection_retries = 3 entry_cache_timeout = 300
filter_users および filter_groups ディレクティブは、特定のユーザーとグループが NSS データベースからフェッチされないように SSSD に指示します。 reconnection_retries ディレクティブは、データ プロバイダーがクラッシュした場合に再接続を試行する回数を指定します。 enum_cache_timeout ディレクティブは、sssd_nss がすべてのユーザーに関する情報を要求する時間を秒単位で指定します。
2. PAM サービスの構成
sssd パッケージは、/etc/sssd/sssd.conf の [pam] セクションで構成される PAM モジュール sssd_pam も提供します。以下は、構成可能なディレクティブの部分的なリストのみを含む例です:
[pam] reconnection_retries = 3 offline_credentials_expiration = 2 offline_failed_login_attempts = 3 offline_failed_login_delay = 5
– offline_credentials_expiration ディレクティブは、認証プロバイダーがオフラインの場合にキャッシュされたログインを許可する期間を日数で指定します。
– offline_failed_login_attempts ディレクティブは、認証プロバイダーがオフラインの場合に許容されるログイン試行の失敗回数を指定します。
すべての SSSD モジュールを参照するように PAM 構成を更新するには、次のように authconfig コマンドを使用して、システム認証用に SSSD を有効にします。
# authconfig --update --enablesssd --enablesssdauth
このコマンドは、必要な pam_sss.so エントリを含む PAM 構成ファイルを自動生成します。
SSSD ドメインの設定
SSSD ドメインは、ID プロバイダーと認証方法の組み合わせです。 SSSD は、LDAP ID プロバイダー (OpenLDAP、Red Hat Directory Server、および Microsoft Active Directory を含む) と連携し、ネイティブ LDAP 認証または Kerberos 認証を使用できます。ドメインを構成するときは、ユーザー情報の保存場所と、それらのユーザーがシステムに対して認証を許可される方法の両方を定義します。
SSSD サービスと同様に、SSSD ドメインも /etc/sssd/sssd.conf ファイルの個別のセクションで構成されます。サービスとドメインは [sssd] セクションで識別されます。例:
[sssd] domains = LDAP services = nss, pam
この例では、LDAP ドメインを指定します。構成のドメイン セクションは、次のヘッダーで始まります:
[domain/LDAP]
ドメイン構成セクションでは、ID プロバイダー、認証プロバイダー、およびそれらのプロバイダーの情報にアクセスするための特定の構成を指定します。
以下は、ドメイン セクションの例です:
[domain/LDAP] id_provider = ldap ldap_uri = ldap://ldap.example.com ldap_search_base = dc=example,dc=com auth_provider = krb5 krb5_server = kerberos.example.com krb5_realm = EXAMPLE.COM min_id = 10000 max_id = 20000
ID プロバイダー
id_provider は、このドメインに使用するデータ プロバイダー ID バックエンドを指定します。サポートされているバックエンドは次のとおりです:
- プロキシ :従来の NSS プロバイダをサポート
- ローカル :SSSD 内部ローカル プロバイダー
- ldap :LDAP プロバイダー
– ldap_uri ディレクティブは、SSSD が接続する LDAP サーバーの URI (Universal Resource Identifiers) のコンマ区切りリストを優先順に提供します。
– ldap_search_base ディレクティブは、LDAP ユーザー操作の実行に使用するベース DN を提供します。
認証プロバイダー
auth_provider ディレクティブは、ドメインに使用される認証プロバイダーを指定します。指定しない場合、id_provider が使用されます。サポートされている認証プロバイダーは次のとおりです:
- ldap :ネイティブ LDAP 認証
- krb5 :ケルベロス認証
- プロキシ :認証を他の PAM ターゲットにリレーします
- なし :認証を明示的に無効にします
– krb5_server ディレクティブは、SSSD が接続する Kerberos サーバーのコンマ区切りリストを優先順に提供します。
– krb5_realm ディレクティブは、Simple Authentication and Security Layer (SASL)/Generic Security Services API (GSS-API) 認証に使用する Kerberos レルムを指定します。 SSSD が Kerberos を使用して LDAP サーバーに接続するには、GSS-API を使用した SASL 接続の構成が必要です。
– 最後の 2 つのディレクティブ min_id と max_id は、あらゆるタイプのドメインで使用できるグローバル属性の例です。その他の属性には、キャッシュとタイムアウトの設定が含まれます。これら 2 つのディレクティブは、ドメインの UID と GID の制限を指定します。ドメインにこれらの制限外のエントリが含まれている場合、それは無視されます。
ドメインまたはサービスの構成を変更した後、sssd サービスを開始または再起動します。
# systemctl start sssd