パート III. セキュアなアプリケーション
10.4. PAM サービスのドメイン制限
重要 重要
この機能を使用するには、システムで SSSD を実行している必要があります。
SSSD は、PAM サービスがアクセス可能なドメインを制限することができます。SSSD は、特定の
PAM サービスの実行ユーザーをもとに、PAM サービスからの認証要求を評価します。PAM サービス
が SSSD ドメインにアクセスできるかどうかは、PAM サービスのユーザーがそのドメインにアクセス
できるかどうかにより左右されます。
ユースケースの 1 つとして、外部ユーザーが FTPサーバーに認証可能となっている環境が挙げられま す。FTP サーバーは権限のない別のユーザーが実行しており、社内のアカウントと分けられた、特定の
SSSD ドメインにのみ認証可能であるべきです。この機能を使うと、管理者は FTP ユーザーが FTP
PAM 設定ファイルに指定されている特定のドメインのみに認証できるようにすることができます。
注記 注記
この機能は、PAM モジュールのパラメーターとして別の設定ファイルを使用できた pam_ldap などのレガシー PAM モジュールに似ています。
ドメインへのアクセス制御オプション ドメインへのアクセス制御オプション
以下のオプションを使用して、特定のドメインのみにアクセスを制限することができます。
/etc/sssd/sssd.conf のの pam_trusted_users
このオプションは、SSSD デーモンが信頼する PAM サービスを表す数字の UID またはユーザー名の リストを受け入れます。デフォルトの設定は all で、すべてのユーザーを信頼し、どのドメインにも アクセスできるという意味です。
/etc/sssd/sssd.conf のの pam_public_domains
このオプションは、パブリックの SSSD ドメインの一覧を受け入れます。パブリックドメインは、
信頼されていない PAM サービスユーザーでもアクセス可能なドメインです。また、このオプション
は all と none の値も受け入れます。デフォルト値は none で、どのドメインもパブリックではない
ので、信頼されていないサービスユーザーはどのドメインにもアクセスできません。
PAM 設定ファイルの設定ファイルのdomains
このオプションは、PAM サービスが認証可能なドメイン一覧を指定します。ドメインを指定せずに
domains を使用すると、PAM サービスはどのドメインにも認証できません。以下に例を示します。
auth required pam_sss.so domains=
PAM 設定ファイルで domains を使用しない場合は、PAM サービスは、信頼済みのユーザーでサー ビスが実行されているという条件下であれば、すべてのドメインに対する認証を通過できます。
SSSD 設定ファイル (/etc/sssd/sssd.conf) の domains オプションでは、SSSD が認証を試行する ドメイン一覧を指定します。PAM 設定ファイルの domains オプションは、sssd.conf のドメイン 一覧を拡張できず、もう少し短い一覧を指定して sssd.conf のドメイン一覧を制限することができ ます。そのため、ドメインが PAM ファイルで指定されているが sssd.conf で指定されていない場合 には、PAM サービスはそのドメインに対して認証できなくなります。
デフォルト設定の pam_trusted_users = all および pam_public_domains = none は、すべての PAM サービスユーザーが信頼されており、どのドメインにもアクセスできることを指定します。PAM 設定 ファイルのdomains オプションは、アクセス可能なドメインを制限するような状況で使用できます。
sssd.conf に pam_public_domains が含まれているが、PAM 設定ファイルの domains を使用してド メインを指定する場合は、pam_public_domains のドメインも指定する必要がでてくる可能性があり ます。pam_public_domains を使用するが、必要なドメインが含まれていない場合には、PAM サービ スは、信頼されていないユーザーで実行されている場合はドメインへの認証が正常に実行できません。
注記 注記
PAM 設定ファイルで定義したドメインの制限は、ユーザー検索ではなく、認証アクショ ンにのみ適用されます。
pam_trusted_users と pam_public_domains オプションに関する詳細情報は sssd.conf(5) の man ページを参照してください。PAM 設定ファイルで使用する domains オプションに関する詳細情報は pam_sss(8) の man ページを参照してください。
例
例10.2 PAM サービスのドメイン制限サービスのドメイン制限
PAM サービスが認証可能なドメインを制限するには以下を行います。
1. SSSD が必要なドメインにアクセスするように設定されていることを確認します。SSSD が
認証可能なドメインは、/etc/sssd/sssd.conf ファイルの domains オプションで定義されま す。
[sssd]
domains = domain1, domain2, domain3
2. PAM サービスが認証可能なドメインを指定します。これには、以下のように PAM 設定ファ
イルの domains オプションを設定します。
auth sufficient pam_sss.so forward_pass domains=domain1 account [default=bad success=ok user_unknown=ignore] pam_sss.so password sufficient pam_sss.so use_authtok
PAM サービスは domain1 に対してのみ認証可能です。
[2] 設定可能な制御フラグには複雑なものもあります。これらは、属性属性=値値のペアで設定します。属性の完全な一 覧は、pam.dの man ページで確認できます。
第 11 章 KERBEROS の使用
ネットワーク内でのシステムのセキュリティーと整合性の維持は非常に重要であり、これはネットワー クインフラストラクチャー内のすべてのユーザー、アプリケーション、サービスおよびサーバーに及び ます。この維持には、ネットワーク上で実行中のすべてサービスやそれらがどのように使用されている かを理解していることが必要です。このセキュリティー維持の中心的なタスクは、アプリケーションや サービスへのアクセスアクセスの維持と、そのアクセスの実施になります。
Kerberos は通常のパスワードベースの認証よりもはるかに安全です。Kerberos では、他のマシン上の
サービスにアクセスする場合でも、パスワードが送信されないからです。
Kerberos は、ユーザーとマシンの両方がネットワークに対して自らを識別し、管理者が設定した領域と
サービスへの定義済みかつ制限されたアクセスをユーザーとマシンが受けられるようにするメカニズム を提供します。Kerberos はエンティティーの ID を検証してそれらを認証認証するほか、この認証情報デー タを保護することで、外部の人間によるこのデータへのアクセス、使用または改ざんを防ぎます。
11.1. KERBEROS について
Kerberos は対称鍵暗号[3]を用いてネットワークサービスに対してユーザーを認証します。つまり、パ
スワードがネットワーク経由で送信されることは決してありません。
そのため、ユーザーが Kerberos を使用してネットワークサービスに対して認証を行う際に、ネット ワークトラフィックを監視してパスワードの収集を図っている不正なユーザーを効果的に阻止すること ができます。
11.1.1. Kerberos の基本的な仕組み
従来のほとんどのネットワークサービスではパスワードベースの認証スキームを使用しており、その場 合はユーザーが特定のネットワークサーバーにアクセスするためにパスワードを提供します。ただし、
多くのサービスにおける認証情報は暗号化されずに送信されています。このようなスキームをセキュア にするには、ネットワークを外部からアクセス不可とし、ネットワーク上のすべてのコンピューターと ユーザーは信頼できるものであり、信頼されているものでなければなりません。
シンプルなパスワードベースの認証を使う際には、インターネットに接続されているネットワークが安 全であるとは想定できません。ネットワークにアクセスする攻撃者は誰でもパケットアナライザーもし くはパケットスニファーパケットスニファーを使用してユーザー名とパスワードを傍受し、ユーザーアカウントの安全性 を脅かすことができるので、セキュリティーインフラストラクチャー全体の整合性が脅かされます。
Kerberos はネットワーク経由で暗号化されていないパスワード送信をなくし、攻撃者がネットワークを
傍受する潜在的脅威を取り除きます。
シンプルなパスワード認証で個別のユーザーが個別のネットワークサービスに対して認証を行うのでは なく、Kerberos は対称暗号と信頼できるサードパーティー (キー配布センターキー配布センター KDC) を用いてユーザー をネットワークサービスのスイートに対して認証します。その KDC とセカンダリー KDC が管理するコ ンピューターがレルムレルムを構成します。
ユーザーが KDC に対して認証を行うと、KDC はそのセッションに特定した認証情報のセット (チケッチケッ ト
ト) をユーザーのマシンに送り返します。Kerberos 対応のサービスでは、ユーザーがパスワードを使用 して認証する必要はなく、サービスすべてがユーザーのマシン上でこのチケットを探します。
図11.1「Kerberos 認証の場合」にあるように、各ユーザーは一意の ID で KDC に識別されます。この ID はプリンシパルプリンシパルと呼ばれます。Kerberos 対応ネットワーク上でユーザーがワークステーションにログ インすると、このユーザーのプリンシパルが認証サーバーから ticket-granting ticket (または TGT) の
リクエストの一部として KDC に送信されます。このリクエストは、ユーザーが処理を意識しなくても よいようにログインプログラムによって送信するか、ユーザーがログイン後に手動で kinit プログラム を用いて送信することができます。
すると KDC はデータベース内でプリンシパルを確認します。プリンシパルが見つかると、KDC は TGT
を作成し、ユーザーの鍵を使ってこれを暗号化し、TGT をそのユーザーに送信します。
図
図11.1 Kerberos 認証の場合認証の場合
次にクライアント上のログインもしくは kinit プログラムがユーザーの鍵を使って TGT を暗号解除しま す。ユーザーの鍵は、ログインもしくは kinit プログラムがユーザーのパスワードから計算します。
ユーザーの鍵はクライアントマシン上でのみ使用され、ネットワーク経由では送信されませんされません。KDC が送信したチケット (または認証情報) はローカルストアである認証情報キャッシュ認証情報キャッシュ (ccache) に保存さ
れます。Kerberos 対応サービスはこのキャッシュをチェックすることができます。Red Hat
Enterprise Linux 7 では、以下のタイプの認証情報キャッシュに対応しています。
永続的な KEYRING ccache タイプ (Red Hat Enterprise Linux 7 のデフォルトキャッシュ) System Security Services Daemon (SSSD) の Kerberos Credential Manager (KCM) (Red Hat Enterprise Linux 7.4 以降の代替オプション)
FILE DIR MEMORY
SSSD KCMでは、Kerberos のキャッシュは、パッシブストアに格納されませんが、デーモンにより管
理されます。この設定では、kinit などのアプリケーションで通常使用されている Kerberos ライブラ リーは、KCM クライアントであり、デーモンは KCM サーバと呼ばれています。
SSSD KCM デーモンにより管理される Kerberos 資格情報のキャッシュを使用することは、利点がいく
つかあります。