1 アクセス制御

概要

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

最小権限の原則

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

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

ユーザーアカウントの権限を設定するときは、Zabbix Webインターフェースのユーザータイプを考慮する必要があります。 Adminユーザータイプは、Super Adminユーザータイプより権限が少ないにもかかわらず、設定を管理し、カスタムスクリプトを実行できることに注意してください。

一部の情報は、権限を持たないユーザーでも利用できます。 たとえば、アラートスクリプトSuper Adminユーザーのみが利用できますが、スクリプトはZabbix APIを通じて取得することもできます。 この場合、スクリプトのアクセス許可を制限し、スクリプトから機密情報 (アクセス資格情報など) を除外すると、グローバルスクリプトで利用可能な機密情報の公開を避けることができます。

Zabbixエージェント用の安全なユーザー

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

Zabbixエージェントの場合:

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

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

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

ZabbixエージェントをWindows上でコンパイルし、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認証は、フロントエンド設定ファイル (zabbix.conf.php) で$ALLOW_HTTP_AUTH=falseを設定することで無効にできます。フロントエンドを再インストールすると (setup.php を実行すると)、このパラメータが削除されることに注意してください。

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

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

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