====== セキュリティ機能 ======
{{indexmenu_n>70}}
[[ja:documentation:pandorafms:start|Pandora FMS ドキュメント一覧に戻る]]
===== サードパーティ認証システム =====
==== Pandora FMS ローカル ====
Pandora FMS 内部のデータベースを使用して実行するデフォルトの認証です。セキュリティのため、スーパー管理者タイプのユーザは常にこの方法で認証され、その他の認証タイプにはローカルバックアップ (フォールバック) オプションがあります。
==== Active Directory ====
* **リモートユーザの自動作成(Automatically create remote users):** リモートユーザーの自動作成を有効または無効にします。 このオプションを使用すると、Pandora FMS は LDAP ユーザを使ってログインした後に自動的にユーザを作成することができます。 次の3つのフィールドは、自動作成が有効の場合にのみ表示されます。
* **パスワードの保存(Save Password):** このオプションは、Pandora FMS バージョン 750 以降にあります。有効化すると、AD パスワードを Pandora FMS ローカルに保存できます。**プロファイルの自動作成(Automatically create profile)**
* **高度な AD 設定(Advanced Configuration AD):** このオプションを有効化すると、高度な AD 権限設定が利用されます。
* **高度な AD 権限(Advanced Permissions AD):** **新しい権限の追加** で追加された高度な権限を一覧表示します。
* **プロファイルの自動作成(Automatically create profile):** ユーザの自動作成が有効になっている場合、このフィールドを使用して、自動作成されたユーザに特定のプロファイル タイプを割り当てることができます。 デフォルトのプロファイルは、''Chief Operator'', ''Group Coordinator'', ''Operator (Read)'', ''Operator (Write)'' および ''Pandora Administrator'' です。**プロファイル → プロファイル管理** から、さまざまなプロファイルを確認できます。
* **プロファイルグループの自動作成(Automatically create profile group):** ユーザの自動作成を有効にすると、このフィールドでユーザをグループに割り当てることができます。 さまざまなグループは、**プロファイル(Profiles) → エージェントグループの管理(Manage agent groups)** で確認できます。
* **プロファイルタグの自動作成(Automatically create profile tags):** リモートユーザの自動作成が有効な場合、このフィールドを使用して目的のタグをグループに割り当てることができます。 利用可能なさまざまなグループは、**プロファイル(Profile)** → **モジュールタグ(Module tags)** で確認できます。
* **ブラックリストの自動作成(Autocreate blacklist):** 自動で作成したくないユーザのカンマ区切りの一覧です。
* **アクティブディレクトリサーバ(Active directory server)**: ここで、Active Directory サーバが配置されているパスを定義します。
* **アクティブディレクトリポート(Active directory port):** アクティブディレクトリサーバのポートです。(デフォルトは ''389'')
* **TLS の開始(Start TLS):** クライアントとサーバの間の通信で、Transport Layer Security (TLS) プロトコルの利用を ON/OFF します。
* **セカンダリ Active Directory の有効化(Enable secondary active directory)**: セカンダリ **Active Directory** サーバへの接続を有効化できます。プライマリサーバと同じフィールドがありますが、検索有効期限 (**AD 検索タイムアウト(AD search timeout)**) の設定もサポートされており、デフォルト値は 5 秒です。
* **二段階認証(Double authentication):** バージョン 6.0 以降、このオプションを有効にすると、ユーザが自身のアカウントで 2段階認証を有効にできるようになりました。ユーザアカウントで 2段階認証を有効にする方法についての詳細は、[[ja:documentation:pandorafms:management_and_operation:12_console_setup#二段階認証|こちらの章]] を参照してください。この機能を使用するには、サーバーとモバイル デバイスの日付と時刻が同期され、可能な限り正確である必要があります。
* ユーザのパスワードが変更された場合、MS Windows® では、Active Directory のデフォルトで 60 分間古いパスワードを使用できます。これは Windows の設定であるため、Pandora FMS ではまったく想定されていない動作です。変更したい場合は、[[https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/new-setting-modifies-ntlm-network-authentication|Microsoft]] のドキュメントを参照してください。
* **ドメイン(Domain)**: Active Directory が使用するドメインを定義します。
* 現時点では、ユーザのプライマリグループは AD 認証の高度なグループ設定ではサポートされていません。
* **高度な AD 設定(Advanced Configuration AD)** を使用している場合は、ドメインフィールド (**ドメイン(Domain)**) に必ずフルパスを設定してください。
* Active Directory のインストールが LDAP を使用している場合は、通常、サーバが配置されている LDAP パスをここで定義する必要があります。
ldap://addc.mydomain
==== LDAP ====
* このモードを使用するには、**OpenLDAP** の依存ファイルがインストールされている必要があります。
* 使用するオペレーティングシステムに応じて、次のようなコマンドを使用します:
yum install openldap*
または
apt install ldap-utils
重要なフィールド:
* **LDAP サーバ(LDAP server)** および **セカンダリ LDAP サーバ(Secondary LDAP server)**: 環境に応じて、ホストに対して直接アクセスする (''x.x.x.x.x'') ことも、URL でアクセスする (''ldap://x.x.x.x.x''、''ldaps://x.x.x.x.x'') こともできます。
* **ログインアトリビュート(Login attribute)** および **セカンダリログインアトリビュート(Secondary Login attribute)**: どちらのフィールドも大文字と小文字が区別されます。
* **ローカル認証にフォールバック(Fallback to local Authentication)**: このオプションを有効にすると、LDAPリモート認証が失敗した場合に、ローカル認証にフォールバックします。管理者ユーザは、リモート認証システムに障害が発生した場合でも Pandora FMS へのアクセスを失わないように、常にフォールバックが有効になります。
* **リモートユーザの自動作成(Autocreate remote users)**: リモートユーザの自動作成を有効化/無効化します。このオプションで、LDAP を使ってログインしたユーザを自動的に作成できます。
* **LDAP 機能(LDAP function)**: LDAP を検索するときに、PHP のネイティブ機能を使うか **ldapsearch** コマンドを使うかを選択できます。LDAP に多くの要素がある環境では、ローカルコマンドを利用することをお勧めします。
**高度な LDAP 設定**
* このオプションを有効にすると、保存されているすべての高度な権限のリストが表示されます。属性フィルターの横にあるプロファイル、グループ、タグを選択すると、新しい権限を追加できます。ユーザがこれらの属性のいずれか (特定の組織単位またはグループなど) を満たしている場合、ユーザが作成されます。
* このオプションが有効になっていない場合は、ユーザプロファイルを作成するためのシンプルなシステムが使用されます (**プロファイルを自動的に作成**、**プロファイルグループを自動的に作成**、**プロファイルタグを自動的に作成**、**階層なしで自動的に割り当て**)。
属性は次の形式である必要があります: **Attribute_Name = Attribute_Value**
* **セカンダリ LDAP の有効化(Enable secondary LDAP)**: セカンダリ LDAP サーバをバックアップとして有効にすると、プライマリ LDAP サーバのそれぞれのフィールドが表示されます。
* **二段階認証(Double authentication)**: ユーザは、[[:ja:documentation:pandorafms:management_and_operation:12_console_setup#二段階認証|自分のアカウントで 2 段階認証を有効にするかどうか]] を選択できます。この機能を使用するには、サーバとモバイルデバイスの日付と時刻が同期され、可能な限り正確である必要があります。
==== 二段階認証 ====
この機能を使用するには、管理者は Pandora FMS Web コンソールのグローバル設定の認証セクションで二段階認証を有効にする必要があります。
**管理(Management) → セットアップ(Settings) → システム設定(System Settings) → 認証(Authentication) → 二段階認証(Double authentication)**。
ユーザは、[[:ja:documentation:pandorafms:management_and_operation:11_managing_and_administration#ks1_1_1|ユーザの編集]] オプションにアクセスして、自分のアカウントで //二段階認証// を有効にするかどうかを選択できます。
この機能を使用するには、**PFMS サーバ** と [[:ja:documentation:pandorafms:technical_annexes:36_pfms_double_authentication_setup|モバイルデバイス]] の日付と時刻が正確に同期されている必要があります。
また、各ユーザが所有するモバイルデバイスにコードジェネレーターアプリケーションをインストールする必要があります。ダウンロード場所と方法については、以下をご覧ください。
[[https://support.google.com/accounts/answer/1066447|https://support.google.com/accounts/answer/1066447]]
PFMS通知システムを使用して、2FA が利用可能であること、およびこの個人オプションを有効にする方法をすべてのユーザに通知できます。これを行うには、メニュー**操作(Operation) → ワークスペース(Workspace) → メッセージ(Message) → 新規メッセージ(New message)**で、グループ ''All'' 宛てに次のようなメッセージを入力します。
{{ :wiki:pfms-management-settings-system_settings-authentication-2fa_enabled_notification.png }}
**すべてのユーザに対して二段階認証を強制する(Force 2FA for all users is enabled)**
このオプションを有効にすると、すべてのユーザが 2 段階認証を使用するよう強制されます。
グラフィカルインターフェイスを使用せずにこの機能を無効にするには、[[:ja:documentation:pandorafms:technical_reference:03_anexo_cli#disable_double_auth|管理者にて PFMS CLI を使用できます]]。
==== SAML ====
**SAML** は、オープンな XML ベースの認証標準です。**Pandora FMS** は、内部の SAML アイデンティティプロバイダを使用してサービスプロバイダとして動作できます。
管理者は常にローカルデータベースに対して認証を行います。
=== SimpleSAMLphp 2.0 のインストール ===
公式リポジトリから SimpleSAMLphp バージョン 2.3.2 をダウンロードします。
[[https://github.com/simplesamlphp/simplesamlphp/releases/tag/v2.3.2|https://github.com/simplesamlphp/simplesamlphp/releases/tag/v2.3.2]]
その後、Pandora FMS サーバにアップロードします。PFMS サーバがインターネットに接続でき、**wget** がインストールされている場合は、十分な容量と書き込み権限のあるディレクトリで以下のコマンドを直接実行できます。
wget https://github.com/simplesamlphp/simplesamlphp/releases/download/v2.3.2/simplesamlphp-2.3.2-full.tar.gz
ダウンロードしたファイルを次のように解凍します。
tar -xvf simplesamlphp-2.3.2-full.tar.gz
フォルダを最終的な場所に移動する必要があります。
mv simplesamlphp-2.3.2 /opt/simplesamlphp
Pandora FMS とアクセスを共有するために、次のシンボリックリンクを作成する必要があります。
ln -s /opt/simplesamlphp/public /var/www/html/simplesamlphp
**SimpleSAMLphp** は ''config.php'' ファイルにて設定を行います。上記の最終的な場所が決まったら、デフォルトのテンプレートの名前を変更する必要があります。
mv /opt/simplesamlphp/config/config.php.dist /opt/simplesamlphp/config/config.php
これにより、次の設定ファイルが用意されます。
/opt/simplesamlphp/config/config.php
以下の値は、お好みのテキストエディタを使用して編集する必要があります ("pandora.local" を PFMS Web コンソールの URL に変更し、行末のカンマは命令ブロックの一部であるため、そのままにしておく必要があることに注意してください)。
'baseurlpath' => 'https://pandora.local/simplesamlphp/',
'auth.adminpassword' => '123pandora',
* ''pandora.local'' は PFMS ウェブコンソールの URL に置き換えてください。行末のカンマは命令ブロックの一部であるため、そのままにしてください。
* IP アドレスではなく、常に URL を使用してください。''pandora.local'' の使用例に倣い、この "//URL//" をオペレーティングシステムの "/etc/hosts" ファイルに追加してください(注: テスト目的のみ)。
\\
ファイルへの変更を保存し、コマンドラインに戻ります。
キャッシュパーミッションエラーが表示された場合は、以下を適用してください。
mkdir /var/cache/simplesamlphp && chown apache:apache /var/cache/simplesamlphp
\\
これにより、**SimpleSAMLphp** が起動して実行され、URL ''https://pandora.local/simplesamlphp/'' のホームページが表示されます (''pandora.local'' を PFMS Web コンソールの URL に置き換えます)。
HTTPS ではなく HTTP 経由で接続すると、Apache Web サーバがセキュアポート ''443'' で //listen// するように設定されるまで認証は失敗します。
{{ wiki:pfms-saml-image_28.png }}
**SimpleSAMLphp** の管理にアクセスするには、まずファイルの名前を変更する必要があります。 ''authsources.php.dist'':
mv /opt/simplesamlphp/config/authsources.php.dist /opt/simplesamlphp/config/authsources.php
先ほどダウンロードした XML の内容をコピーし、貼り付けて処理します。これにより PHP の設定テキストが生成され、コピーされてファイル ''/opt/simplesamlphp/metadata/saml20-idp-remote.php'' に追加されます。追加内容を保存し、ファイルエディターを終了します。
URL ''https://pandora.local/simplesamlphp/admin/'' からアクセスできます (''pandora.local'' を PFMS Web コンソールの URL に置き換えます)。
{{ wiki:pfms-saml-image_30.png }}
=== SAML を利用する Pandora FMS 設定 ===
**管理(Management) → セットアップ(Setup) → セットアップ(Setup) → 認証(Authentication)** menu.
\\ \\ \\ \\ \\
以下の値は共通です。
{{ :wiki:pfms-saml-image_70.png }}
主なフィールド:
* **SAML グループ名属性(SAML group name attribute)**: グループ名を検索する SAML フィールド (リモートユーザの自動作成が有効な場合)。
* **SimpleSAML パス(SimpleSAML path)**: フォルダー ''simplesamlphp'' があるディレクトリ。
* **SAML ソース(SAML source)**: 名前「authsource」、例:「example-userpass」。
* **SAML メール属性(SAML email attribute)**: ユーザのメールアドレスを検索する SAML フィールド (リモートユーザの自動作成が有効な場合)
SAML を使用してサードパーティのサービスを設定する前に、**SimpleSAMLphp** のインストールを [[:ja:documentation:pandorafms:technical_annexes:45_simplesaml_2_local|ローカルでテストおよび検証]] することをお勧めします。
=== SAML を利用する Azure の設定 ===
Azure® サービスでは、**Extra ID** セクションにアクセスする必要があります。
{{ wiki:pfms-saml-image_40.png }}
次に**ビジネスアプリケーション**に移動します。
{{ wiki:pfms-saml-image_42.png }}
新しいアプリケーションが作成されます (または既存のアプリケーションが使用されます)。
{{ wiki:pfms-saml-image_44.png }}
シングルサインオンアクセス:
{{ wiki:pfms-saml-image_46.png }}
基本的な SAML 設定を編集します。
{{ wiki:pfms-saml-image_48.png }}
次のフィールドに、アプリケーションの ID、インストールされている **SimpleSAMLphp** のアドレス ("pandora.local" を PFMS Web コンソールの URL に置き換えます)、およびセッションが終了したときに Azure® がリダイレクトするアドレスを入力します。
{{ wiki:pfms-saml-image_50.png }}
後で使用するフェデレーションメタデータを含む XML ファイルをダウンロードします。
{{ wiki:pfms-saml-image_52.png }}
最後に、前の手順の ID と追加識別子の URL を保存します。
{{ wiki:pfms-saml-image_54.png }}
== SimpleSAMLphp の設定 ==
ファイル ''/opt/simplesamlphp/config/authsources.php'' を次の値で編集する必要があります。
{{ wiki:pfms-saml-image_56.png }}
SimpleSAMLphp Web サイトで、**Federation** メニューに移動し、**Tools** セクションに移動して XML を PHP に変換します。
{{ wiki:pfms-saml-image_58.png }}
名前 ''saml20-idp-remote.php.dist'' を次のように変更する必要があります。
mv /opt/simplesamlphp/metadata/saml20-idp-remote.php.dist /opt/simplesamlphp/metadata/saml20-idp-remote.php
先ほどダウンロードした XML ファイルの内容をコピーし、貼り付けて処理します。これにより PHP の設定テキストが生成されるので、それをコピーして ''/opt/simplesamlphp/config/authsources.php'' ファイルに貼り付け、**すべての内容を置き換えます**。
すべてが正しければ、テストの実行に進みます。
{{ wiki:pfms-saml-image_60.png }}
次の結果が得られます。
{{ wiki:pfms-saml-image_62.png }}
電子メールアドレスとユーザ ID は、上記で実行したテストで Azure® によって返された属性から取得できます。
{{ :wiki:pfms-saml-image_80.png }}
{{ :wiki:pfms-saml-image_90.png }}
高度な設定では、プロパティの //マッピング// をさらに詳しく調べたり、一致するものがない場合にはデフォルトのプロパティを選択したりできます。
{{ :wiki:pfms-saml-image_100.png }}
===== パスワード暗号化 =====
Pandora FMS はデータベース上のパスワードの暗号化に対応しています。
暗号化キーは、ユーザが用意するパスフレーズから生成され、(キーやパスフレーズも含め)データベースには保存されません。これにより、データベースのダンプからパスワードを再現することはできません。
ユーザがパスワードを設定すると、暗号化はユーザーに対して透過的に機能します。
ユーザが入力したパスワードが失われた場合、Pandora FMS データベースに保存されているパスワードを回復することはできません。安全な場所に保存するか、''config.php'' および ''pandora_server.conf'' ファイルのバックアップを作成してください。
==== 技術詳細 ====
パスワードは、128bit の Rijndael cipher の ECB モードを使って暗号化しています。パスフレーズの MD5 から、最初に 256bit のキーが生成されます。
==== 新規インストールの Pandora FMS での設定 ====
キー暗号化を有効にするには、**Pandora FMS サーバと Web コンソールの両方でパスワードを設定する必要があります**。
暗号化の手順は次の通りです。
* **コマンドセンター (メタコンソール)** と **ノード** の両方でサーバを停止します。
* ''/etc/pandora/pandora_server.conf'' 内の **encryption_passphrase** および、**ノード** および **コマンドセンター(メタコンソール)** 双方の ''/var/www/html/pandora_console/include/config.php'' を更新します。
$config["encryption_passphrase"]="passphrase";
* **ノード** および **コマンドセンター(メタコンソール)** 両方の暗号化スクリプトを起動します。
/usr/bin/pandora_encrypt_db /etc/pandora/pandora_server.conf
変更を加えてスクリプトを実行した後、Pandora FMS サーバを再起動する必要があります。
==== 暗号化パスワードの変更 ====
暗号化パスワードが漏洩した場合には、それを変更することができます。まず、データベースに保存されているパスワードを復号化する必要があります。
/usr/bin/pandora_encrypt_db -d /etc/pandora/pandora_server.conf
その後、暗号化パスワードを変更し([[#ks2_2|新規インストールでの設定]]のセクションで説明したように)、再度暗号化することができます。
/usr/bin/pandora_encrypt_db /etc/pandora/pandora_server.conf
7.0NG 739 以降には、[[:ja:documentation:pandorafms:management_and_operation:11_managing_and_administration#認証情報ストア|安全な認証管理]]が含まれています。**この処理を正しく完了するには、次の章を参照してください**。
**認証情報ストア:**
暗号化されたデータベースがある場合、データを失うことなく資格情報管理を引き続き使用するには、**tcredential_store** テーブルを除くすべてのデータを復号化します。
それには次のコマンドを実行します。
/usr/bin/pandora_encrypt_db -d -m /etc/pandora/pandora_server.conf
暗号化が解除されます。
暗号化を解除したら、再度暗号化を行います。
/usr/bin/pandora_encrypt_db /etc/pandora/pandora_server.conf
初回の暗号化では、最後のコマンドを実行します。
==== 暗号化パスワードの削除 ====
Pandora FMS に保存される **すべての** パスワードを暗号化しておくことをお勧めします。
* **コマンドセンター(メタコンソール)** と **ノード** 双方のサーバを停止します。
* **コマンドセンター(メタコンソール)** と **ノード** の両方で復号化スクリプトを起動します。
/usr/bin/pandora_encrypt_db -d /etc/pandora/pandora_server.conf
* **コマンドセンター (メタコンソール)** と **ノード** の両方で、''/etc/pandora/pandora_server.conf'' と ''/var/www/html/pandora_console/include/config.php'' の **encryption_passphrase** をコメントアウトします。
# $config["encryption_passphrase"]="your encryption passphrase";
変更を加えてスクリプトを実行した後は、Pandora FMS サーバを再起動することを忘れないでください。
===== ユーザパスワードポリシー =====
**管理(Management) → セットアップ(Setup) → セットアップ(Setup) → パスワードポリシー(Password policy)** {{:wiki:pfms-general_settings-password.png?nolink&21x21}} メニュー
\\ \\ \\ \\ \\
パスワード ポリシーを有効にするには、管理者プロファイル (**Pandora 管理者**) を持っているか、**[[:ja:documentation:pandorafms:introduction:03_glossary#スーパー管理者|スーパー管理者]]** である必要があります。
重要なフィールド:
* **パスワードポリシーの有効化(Enable password policy): ** パスワードポリシーを有効化/無効化します。デフォルトでは無効化されています。
* **最小パスワードサイズ(Min. size Password): ** パスワードの最小の長さです。デフォルトでは 4文字です。
* **パスワードの期限切れ(Password Expiration): ** パスワードが期限切れになるまでの期間です。デフォルトでは ''0'' です(期限切れになりません)。
* **パスワードには数値を含む必要があります(Password must have numbers): ** パスワードに数字を含む必要があるかどうかです。デフォルトでは無効化されています。
* **パスワードには記号を含む必要があります(Password must have symbols): ** パスワードに記号を含む必要があるかどうかです。デフォルトでは無効化されています。
* **初回ログイン時にパスワードを変更する(Force change password on first login): ** ユーザ作成後、初回ログイン時にパスワードを変更します。デフォルトでは無効化されています。
* **ログインに失敗するとユーザをブロック(Block user if login fails): ** 最大失敗回数パスワードを間違えた場合に、ユーザをブロックする時間(分)です。デフォルトは 5分です。
* **管理者ユーザへパスワードポリシーを適用(Apply password policy to admin users): ** 管理者ユーザにもパスワードポリシーを適用します。デフォルトでは無効化されています。
* **パスワード履歴の有効化(Enable password history)** と **以前のパスワードとの比較(Compare previous password): ** これらは連携して、ユーザがパスワードを重複して使用することを防ぎます。最初のトークンは有効にし、2番目のトークンは 0(デフォルトは ''3'' )より大きい値に設定する必要があります。これにより、ユーザの新しいパスワードは、同じユーザが以前に使用した ''3''(または指定された回数)と比較されます。
* **パスワードリセットの有効化(Activate reset password)**: デフォルトでは無効になっていますが、有効にすると、ユーザは忘れたパスワードを回復できるようになります。
* **パスワードの除外リスト(Exclusion list for passwords)**: Pandora FMS での使用を明示的に除外するパスワードのリストを追加できます。
===== 監査ログ =====
**管理(Management) → 管理ツール(Admin tools) → システム監査ログ(System Audit Log)** メニュー
\\ \\ \\ \\ \\
Pandora FMS は、Pandora FMS コンソールで行われたすべての重要な変更とアクションのログを保持します。ログには、コンソールのアクティビティ、ユーザ情報、アクションの種類、日付、登録されたイベントの簡単な説明など、一連のエントリが表示されます。
{{ :wiki:pfms-management-admin_tools-system_audit_tools_2.png }}
アクション、ユーザ、IPアドレスなど、様々な基準で表示するエントリをフィルタリングできます。テキスト検索を実行したり、検索対象とする最大時間を指定したりすることも可能です。フィルターを頻繁に使用する場合は、保存しておくこともできます。
右側のフィルタを使用して開始日と終了日を設定し、フィルタリングを実行する必要があります。
[[ja:documentation:pandorafms:start|Pandora FMS ドキュメント一覧に戻る]]