1 アクセス制御
概要
このセクションには、アクセス制御を安全に設定するためのベストプラクティスが含まれています。
最小権限の原則
ユーザーアカウントは、常に可能な限り少ない権限で実行する必要があります。
これは、Zabbix Webインターフェースのユーザーアカウント、データベースユーザー、または Zabbix サーバー/プロキシ/エージェント プロセス用のユーザーには、想定された機能を実行するために必要な権限のみを付与すべきであることを意味します。
'zabbix' ユーザーに追加の権限を与えると、設定ファイルにアクセスしたり、インフラストラクチャのセキュリティを損なう可能性のある操作を実行したりできるようになります。
ユーザーアカウントの権限を設定する際は、Zabbix の Webインターフェースのユーザータイプ を考慮してください。
Admin ユーザータイプは Super Admin ユーザータイプより権限が少ないものの、設定の管理やカスタムスクリプトの実行は引き続き可能です。
非特権ユーザーでも利用できる情報があります。
たとえば、Alerts → Scripts は Super Admin ユーザーのみが利用できますが、スクリプトは Zabbix API 経由でも取得できます。
この場合、スクリプトの権限を制限し、スクリプト内の機密情報(たとえばアクセス資格情報)を除外することで、グローバルスクリプトに含まれる機密情報の漏えいを防ぐのに役立ちます。
Zabbix エージェント用の安全なユーザー
デフォルトでは、Zabbix サーバー、プロキシ、およびエージェント(または agent 2)のプロセスは 1 つの zabbix ユーザーを共有します。
Zabbix エージェント/agent 2 が(サーバー/プロキシと同じマシン上で実行されている場合に)サーバー/プロキシの設定内にある機密情報(たとえばデータベース認証情報)へアクセスするのを防ぐには、エージェントを別のユーザーで実行する必要があります。
Zabbix エージェントの場合:
- 安全な グループとユーザー(例:
zabbix-agent)を作成します。 - エージェントの設定ファイルの User パラメーターに、このユーザーを設定します。
- エージェントを再起動 して、新しいユーザーに権限を切り替えます。
Zabbix agent 2 では、agent 2 の設定ファイル が User パラメーターをサポートしていないため、設定は service レベルで適用する必要があります。
例については、ZBX-26442 を参照してください。
SSL設定への書き込みアクセスを取り消す (Windows)
WindowsでZabbix エージェントをコンパイルしており、OpenSSL が保護されていないディレクトリ(例: C:\zabbix、c:\openssl-64bit、C:\OpenSSL-Win64-111-static、または C:\dev\openssl)に配置されている場合は、管理者以外のユーザーに対するこのディレクトリへの書き込みアクセスを必ず取り消してください。
そうしないと、エージェントは権限のないユーザーが変更可能なパスからSSL設定を読み込むため、潜在的なセキュリティ脆弱性につながる可能性があります。
Zabbixコンポーネントのセキュリティ強化
Zabbixコンポーネントのセキュリティを強化するために、一部の機能を無効化できます。
- Zabbixサーバーでのグローバルスクリプト実行は、サーバー設定で
EnableGlobalScripts=0を設定することで無効化できます。 - Zabbixプロキシでのグローバルスクリプト実行は、デフォルトで無効です(プロキシ設定で
EnableRemoteCommands=1を設定すると有効化できます)。 - Zabbixエージェントでのグローバルスクリプト実行は、デフォルトで無効です(エージェント設定で、許可する各コマンドに対して
AllowKey=system.run[<command>,*]パラメータを追加すると有効化できます)。 - ユーザーのHTTP認証設定へのアクセスはデフォルトで有効です。Webインターフェース設定ファイル(
zabbix.conf.php)で$ZBX_FEATURE_FLAGS['http_auth_enabled'] = falseを設定すると無効化できます。 - モジュール設定へのアクセスはデフォルトで有効です。Webインターフェース設定ファイル(
zabbix.conf.php)で$ZBX_FEATURE_FLAGS['modules_config_enabled'] = falseを設定すると無効化できます。 - 特定のメディアタイプの編集は、Webインターフェース設定ファイル(
zabbix.conf.php)で$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.get、perf_counter* などのアイテムで、UNC パス(\\server\share\file.txt のような SMB 共有)に従います。これは、状況によってはセキュリティリスクになる可能性があります。
Windows に UNC パスへのアクセスが要求されると、そのサーバーで認証を試みます。つまり、Zabbix エージェントへの悪意ある要求によって、NTLM ハッシュが要求元のサーバーに漏えいする可能性があります。必要に応じて、ユーザーは AllowKey および DenyKey の設定パラメータでこれを軽減できます。