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

概要

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

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

UTF-8 エンコーディング

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

Windowsインストーラーのパス

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

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

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

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

ZabbixセキュリティアドバイザリとCVEデータベースを参照してください。

HTML email templates

When creating or editing message templates used for HTML emails, always wrap every macro with the htmlencode() macro function. For example:

<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()}

Using htmlencode() ensures that any HTML characters in macro values are escaped and prevents injection of HTML into notifications (for example, an attacker inserting a malicious/phishing link into a notification).

Note: the default HTML email messages provided by Zabbix already apply htmlencode() to macros. This guidance applies when editing existing templates or creating new ones — verify that macros are encoded before using a template to send HTML email.