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