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

概要

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

Zabbixの機能には必須ではありませんが、システムのセキュリティを向上させるために推奨されます。

UTF-8 エンコーディング

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

Windowsインストーラーのパス

Windows インストーラーを使用する場合は、インストーラーによって提供されるデフォルトのパスを使用することをお勧めします。 適切なアクセス許可なしでカスタムパスを使用すると、インストールのセキュリティが損なわれる可能性があります。

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

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

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