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の場合、エージェント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.get、perf_counter*のようなアイテムで、UNCパス(\\server\share\file.txtのようなSMB共有)をたどります。これは、状況によってはセキュリティリスクとなる可能性があります。
WindowsがUNCパスへのアクセスを要求されると、そのサーバーで認証を試みます。つまり、Zabbixエージェントへの悪意のあるリクエストによって、NTLMハッシュがリクエスターのサーバーに漏洩する可能性があります。必要に応じて、AllowKey、DenyKeyの設定パラメータでこれを緩和できます。