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

概要

このセクションでは、Zabbix を安全な方法で設定するためのベストプラクティスを紹介します。

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

UTF-8エンコーディング

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

Windowsインストーラーのパス

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

ユーザー定義のグローバルスクリプト内のマクロ

セキュリティを強化するため、ユーザー定義のグローバルscriptsでは、プレーンなマクロの代わりにmacro functionsを使用することを推奨します。マクロは自動的にエスケープされないためです。

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

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

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メールを送信する前に、マクロがエンコードされていることを確認してください。