环境:
centos6.6
zabbix3.0.3
域控服务器:windows-active server 2008
需求:
公司越来越大,人越来越多,配置人员的账号密码很麻烦。
为了集中管理,整合公司的用户密码,所以把zabbix系统也通过域认证登录。
描述:
LDAP 的作用:通过LDAP验证,将zabbix 和windows 域控联系在一起,只有域控中有的用户才能登录zabbix
依赖:
zabbix配置ldap认证需要zabbix server这个服务器的php安装ldap插件。
服务器执行命令:
php -m|grep ldap
如果有输出 说明安装了,否则需要单独安装。
如果需要细节,可以先看方法一配置。
#
方法一可以帮助你理解zabbix的ldap认证过程。
建议实际配置的时候看方法二进行配置。
###################################################################################################################
方法一:通过zabbix管理员配置,需要知道域控的同名Admin账号的账号密码,如果没有该账号还需要创建账号,很不方便。
###################################################################################################################
方法一:
系统管理员直接配置
通过Admin用户登录zabbix的web页面,点击Administrator,点击Authentication,点击LDAP
然后填写相关配置信息
配置界面:
注意:
LDAP host
:域控ip #例10.12.3.30
Port
:端口 # 默认不要动,你可以telnet 域控ip 这个端口是否通
Base DN
:OU=信息技术中心,OU=神秘公司,DC=corp,DC=shenmigongsi,DC=com,DC=cn #这里就是base域,定义域控的范围
Search attribute
: sAMAccountName #域控服务器里面有该字段
Bind DN
: CN=张三,OU=运维技术部,OU=信息技术中心,OU=神秘公司,DC=corp,DC=shenmigongsi,DC=com,DC=cn #此处 “张三” 为一个域账号(你在配置的时候用任意域控账号都可以,我是直接用自己的域账号,因为我叫张三,哈哈)
Bind password
:张三对应的域账号密码 #我的图 显示change password ,是因为我已经验证通过
Login
:Admin #这里显示的帐号是当前浏览器登录zabbix的用户,我是用Admin用户在配置,所以这里显示的是Admin用户,如果你也是通过Admin用户添加的,则你的域控服务器中需要有同名的Admin这个域账号,否则会配置失败。
#此处建议你把你自己的域账号“张三”也设置成超级管理员,然后登录“张三”配置ldap认证,这样就不用在域控中添加Admin用户了,因为此时Login显示的就是张三这个用户了。
User password:
这里填写的是Login处的这个账号对应的域控中的这个账号的密码 #在域控中Admin用户 的密码
然后Test 就可以看到 测试成功的返回信息
然后点击Update 就设置完毕了。
这里有一个至关重要的一个说明,如果你想域控中已有的帐号登录zabbix ,就必须手动在zabbix 新建一个域里面的同名帐号
建议通过数据库的方式直接导入域控账号。
##################################################################################################################
方法2:
简单靠谱的方式配置:
准备工作:
1.公司里面我的域控账号叫张三,有权限访问域控
2.在zabbix平台添加了该同名账号,而且设置为了超级管理员。
3.通过超级管理员张三配置域控登录。(注意如果php服务没有安装ldap扩展是会配置失败的,开始卡了很久就是不知道是这个问题)
注意:
LDAP host
:10.12.3.30
Port
:389
Base DN
:OU=信息技术中心,OU=神秘公司,DC=corp,DC=shenmigongsi,DC=com,DC=cn
Search attribute
: sAMAccountName
Bind DN
: CN=张三,OU=运维技术部,OU=信息技术中心,OU=神秘公司,DC=corp,DC=shenmigongsi,DC=com,DC=cn
Bind password
:张三的域账号密码
Login
:张三 #这里显示的帐号是当前浏览器登录zabbix的用户,我是用“张三”用户在配置,所以这里显示的是张三
User password:
张三的域账号密码
然后Test 就可以看到 测试成功的返回信息
然后点击Update 就设置完毕了。
这里有一个至关重要的一个说明,如果你想域控中已有的帐号登录zabbix ,就必须手动在zabbix 新建一个域里面的同名帐号。
###########################################################################################################
建议通过数据库的方式直接导入域控账号。
插入用户的SQL如下:
insert into users(userid,name,alias) values ('%s','%s','%s');" % (n,$name,$name)
需要用到组管理的话,可以组的映射信息
插入关联用户组的SQL:
"insert into users_groups (id,usrgrpid,userid) values ('%s','%s','%s');" % (n,grouplist[group_name],userlist[name])
users 用户表
users_groups 用户组的表
usrgrp 用户-组,映射关系表
#ldap查询命令,获取用户的用户名,和组名
# 先从ldap服务器把用户数据导入文件
ldapsearch -x -LLL -D "CN=张三,OU=运维技术部,OU=信息技术中心,OU=神秘公司,DC=corp,DC=shenmi,DC=com,DC=cn" -b "OU=运维技术部,OU=信息技术中心,OU=神秘公司,DC=corp,DC=shenmi,DC=com,DC=cn" givenName -H ldap://10.12.3.30:389 -w asdfasdfa sAMAccountName | egrep -v '^$|givenName'