Zabbix默认认证方式为本地内部认证,也就是在zabbix前端创建的用户。Zabbix默认有四种认证方式,分别是内部、http、LDAP、SAML(SSO单点登录认证)。其中http利用了web服务本身所提供的认证,就不细说了。
正文
本文环境
- Zabbix 6.0 LTS RC2
- Windows 2019
- 域控版本 2016
AD 部分
安装部分
这里不做过多探讨,具体可以参考互联网相关资源
配置 OU 和用户
这步对于很多企业不太需要,环境具备这步请忽略
1、 Win + R 打开运行,输入 mmc,打开控制台,点击文件选项
2、找到添加/删除管理单元
3、选择 Active Diretory 用户和计算机,点击添加,最后确定即可
4、找到根域,如下图,右键点击根域,在弹出菜单选择新建 –> 组织单位
填写好名字,本文为zabbix
5、 点击刚刚创建的 OU,并在右边空白处右键或者右键 OU,在弹出菜单选择新建 –> 用户,在密码选项里,这里很多公司的安全要求是不允许出现密码永不过期的策略,所以具体情况具体分析,这里方便演示,选择用户不更改与密码永不过期。
填写用户信息
6、至此 AD 部分已经完成
Zabbix 部分
LDAP认证设置入口
路径为 管理 –> 认证 –> LDAP设置
先决条件
由于 Zabbix LDAP 认证方式并不是将账户同步到本地,而是在本地创建 AD 用户,然后认证时推送至 AD 进行鉴权,所以我们需要创建相关用户。
1、创建 LADP 认证组
入口路径为: 管理 –> 用户群组 –> 创建用户群组
2、创建前端访问为 LDAP 的用户组
3、在权限里,需要注意的是有两个添加,第一个添加是主机组赋权,第二个是添加用户组,一定要注意,如果需要针对某个主机群组赋权,需要先点击红框里的添加,而不是下面的添加。
效果图
最终效果图
4、完成用户群组创建后进入创建用户阶段
入口路径为:管理 –> 用户 –> 创建用户
5、填写用户信息需要注意的是,用户名称和 AD 里的要一一对应,选择刚才的用户群组,权限根据自身的需求调整(本文演示给的 Admin role)。
LDAP 配置设置
首先来看看该页面的参数介绍
- LDAP 主机格式为 ldap://AD域控的ip或者AD域控的域名
- 端口一般默认为389,根据自身环境调整
- 基准 DN(这里翻译有问题),就是根域,一般格式是 DC=example,DC=com,根据自身环境实际调整
- 搜索属性是固定的,AD 为 sAMAccountName
- 绑定 DN 为该用户的路径,本文为 cn=zabbix,ou=zabbix,dc=kasarit,dc=cn
- 绑定密码为 AD 用户的密码
- 登录和用户密码一定也是本地存在的 AD 用户和对应的密码,而不是本地账户,这里千万要记住,否则会出现下面的报错。
登录用户名为zabbix,测试通过
前端登录测试
登录成功用户信息
相应的权限正常
通过Admin查看相应登录记录正常
低版本操作
由于 6.0 支持多种认证方式,相比之前一旦采用某一种认证,所有用户只能采用这种方式登录,一旦绑定 AD 用户的密码发生改变就导致无法登录,此时可以采用数据库修改方式。该信息是存放在 Zabbix 数据库的 config 表里,字段为 authentication_type ,0 代表本地认证,1 代表 LDAP 认证,2 代表 SAML 认证,修改为 0 即可恢复本地认证。我这里为 6.0 版本,支持多认证方式,所以就不演示了(PG环境也一样。)
mysql -uroot -p
use zabbix;
select authentication_type from config;
update config set authentication_type = 0 ;
写在最后
采用LDAP认证的唯一好处,就是不需要维护用户密码的信息,符合安全审计要求,但需要管理员充分规划账号,在本地创建,其实也并没有那么便捷,但是也有好处,针对 AD 架构环境比较混乱的企业,这种方式相对比较方便,可以过滤一些未授权的用户登录。认证篇还有两节,一节是针对 openldap,一节是针对 SAML(单点登录),敬请关注哦。