アクセス制御

概要

このセクションでは、アクセス制御を安全に設定するためのベストプラクティスを説明します。

最小権限の原則

ユーザーアカウントは、常に可能な限り少ない権限で実行する必要があります。
これは、Zabbix Webインターフェースのユーザー、データベースユーザー、または Zabbix サーバー/プロキシ/エージェント プロセス用のユーザーには、想定された機能を実行するために必要な権限のみを付与すべきであることを意味します。

'zabbix' ユーザーに追加の権限を与えると、設定ファイルにアクセスしたり、インフラストラクチャのセキュリティを侵害し得る操作を実行したりできるようになります。

ユーザーアカウントの権限を設定する際は、Zabbix の Webインターフェースのユーザータイプ を考慮してください。
Admin ユーザータイプは Super Admin ユーザータイプより権限が少ないものの、設定の管理やカスタムスクリプトの実行は可能です。

一部の情報は、権限のないユーザーでも参照できます。
たとえば、AlertsScriptsSuper Admin ユーザーのみが利用できますが、スクリプト自体は Zabbix API から取得することもできます。
この場合、スクリプトの権限を制限し、スクリプト内の機密情報(たとえばアクセス資格情報)を除外することで、グローバルスクリプトで利用可能な機密情報の漏えいを防ぐのに役立ちます。

Zabbix agent 用の安全なユーザー

デフォルトでは、Zabbix サーバー、プロキシ、およびエージェント(または agent 2)のプロセスは 1 つの zabbix ユーザーを共有します。
Zabbix エージェント/agent 2(サーバー/プロキシと同じマシンで動作している)が、サーバー/プロキシの設定内にある機密情報(たとえばデータベース認証情報)へアクセスするのを防ぐには、エージェントを別のユーザーで実行する必要があります。

Zabbix エージェントの場合:

  1. 安全な グループとユーザー(例: zabbix-agent)を作成します。
  2. エージェントの設定ファイルの User パラメータにこのユーザーを設定します。
  3. エージェントを再起動 して、新しいユーザーに権限を切り替えます。

Zabbix agent 2 では、agent 2 の設定ファイルUser パラメータをサポートしていないため、設定は service レベルで適用する必要があります。
例については、ZBX-26442 を参照してください。

SSL設定への書き込みアクセスを取り消す(Windows)

WindowsでZabbix エージェントをコンパイルしており、OpenSSLが保護されていないディレクトリ(例: C:\zabbixc:\openssl-64bitC:\OpenSSL-Win64-111-static、または C:\dev\openssl)に配置されている場合は、このディレクトリに対する管理者以外のユーザーの書き込みアクセスを必ず取り消してください。
そうしないと、エージェントは権限のないユーザーによって変更可能なパスからSSL設定を読み込むため、潜在的なセキュリティ脆弱性につながる可能性があります。

Zabbixコンポーネントのセキュリティ強化

Zabbixコンポーネントのセキュリティを強化するため、一部の機能を無効にできます。

  • Zabbixサーバーでのグローバルスクリプト実行は、サーバー設定EnableGlobalScripts=0を設定すると無効にできます。
  • Zabbixプロキシでのグローバルスクリプト実行は、デフォルトで無効になっています(プロキシ設定EnableRemoteCommands=1を設定すると有効にできます)。
  • Zabbixエージェントでのグローバルスクリプト実行は、デフォルトで無効になっています(エージェント設定で、許可するコマンドごとにAllowKey=system.run[<command>,*]パラメータを追加すると有効にできます)。
  • ユーザーのHTTP認証設定へのアクセスは、デフォルトで有効になっています。Webインターフェースの設定$ZBX_FEATURE_FLAGS['http_auth_enabled'] = falseを設定すると無効にできます。
  • モジュール設定へのアクセスは、デフォルトで有効になっています。Webインターフェースの設定$ZBX_FEATURE_FLAGS['modules_config_enabled'] = falseを設定すると無効にできます。
  • 特定のメディアタイプの編集は、Webインターフェースの設定$ZBX_FEATURE_FLAGS['media_type_denylist'] = [<value1>, <value2>, ...]を設定すると制限できます。 指定可能な値は'email''script''sms''webhook'です。 1つ以上の値を指定できます。

zabbix.conf.php設定ファイルが存在する場合、setup.phpを実行してWebインターフェースを再インストールすることは制限されます。

Zabbix エージェントによる Windows での UNC パスアクセス

Windows 上の Zabbix エージェントは、vfs.file.*vfs.dir.*modbus.getperf_counter* などのアイテムで、UNC パス(\\server\share\file.txt のような SMB 共有)に従います。これは、状況によってはセキュリティリスクになる可能性があります。

Windows に UNC パスへのアクセスが要求されると、そのサーバーで認証を試みます。つまり、Zabbix エージェントへの悪意ある要求によって、NTLM ハッシュが要求元のサーバーに公開される可能性があります。必要に応じて、ユーザーは AllowKeyDenyKey の設定パラメータを使用して、このリスクを軽減できます。