1 安全最佳实践

概述

本节包含以安全方式设置 Zabbix 的最佳实践。

本节中的实践并非 Zabbix 正常运行所必需,但建议采用以提高系统安全性。

UTF-8 编码

UTF-8 是 Zabbix 唯一支持的编码。 已知它可以在不存在任何安全漏洞的情况下正常工作。 用户应注意,若使用其他某些编码,已知会存在安全问题。

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 电子邮件之前,请确认宏已编码。