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