セキュリティのベストプラクティス

概要

このセクションには、Zabbix を安全に設定するためのベストプラクティスが含まれています。

このセクションのプラクティスは、Zabbix の動作に必須ではありませんが、システムのセキュリティを向上させるために推奨されます。

UTF-8 エンコーディング

UTF-8 は、Zabbix でサポートされている唯一のエンコーディングです。 これは、セキュリティ上の欠陥なく動作することが確認されています。 他のエンコーディングの一部を使用する場合、既知のセキュリティ上の問題があることに注意してください。

Windowsインストーラのパス

Windowsインストーラを使用する場合は、インストーラが提供する既定のパスを使用することを推奨します。
適切な権限なしにカスタムパスを使用すると、インストールのセキュリティが損なわれる可能性があります。

ユーザー定義のグローバルスクリプトにおけるマクロ

セキュリティを強化するため、ユーザー定義のグローバルスクリプトでは、通常のマクロではなくマクロ関数を使用することを推奨します。マクロは自動的にエスケープされないためです。

Zabbix セキュリティアドバイザリと CVE データベース

Zabbix Security Advisories and CVE database を参照してください。

HTMLメールテンプレート

HTMLメールで使用するメッセージテンプレートを作成または編集する場合は、すべてのマクロを必ず htmlencode() マクロ関数で囲んでください。
たとえば、次のようにします。

<b>Problem started</b> at {{EVENT.TIME}.htmlencode()} on {{EVENT.DATE}.htmlencode()}<br><b>Problem name:</b>
{{EVENT.NAME}.htmlencode()}<br><b>Host:</b> {{HOST.NAME}.htmlencode()}
<br><b>Severity:</b>
{{EVENT.SEVERITY}.htmlencode()}<br><b>Operational
data:</b> {{EVENT.OPDATA}.htmlencode()}<br><b>Original problem ID:</b> {{EVENT.ID}.htmlencode()}<br>{{TRIGGER.URL}.htmlencode()}

htmlencode() を使用すると、マクロ値内のHTML文字がエスケープされ、通知へのHTMLの挿入を防げます(たとえば、攻撃者が悪意のある/フィッシング用リンクを通知に挿入することを防止できます)。

注意: Zabbix が提供する既定のHTMLメールメッセージでは、すでにマクロに htmlencode() が適用されています。
このガイドラインは、既存のテンプレートを編集する場合や新しいテンプレートを作成する場合に適用されます。HTMLメールの送信にテンプレートを使用する前に、マクロがエンコードされていることを確認してください。