OpenLDAP 标准建设:正确创建业务管理员账号(彻底区分底层Root超级账号与业务管理员账号)
OpenLDAP 标准建设正确创建业务管理员账号彻底区分底层Root超级账号与业务管理员账号适用环境银河麒麟V10 SP3、OpenLDAP 2.4.50、OLC动态配置、MDB数据库标签#OpenLDAP #LDAP规范架构 #业务管理员 #信创运维 #账号权限分离系列专栏银河麒麟V10 OpenLDAP 从零部署实战系列越简单越容易翻车好多小伙伴喜欢用老的CentOS安装方式和麒麟比较认为都是通用的结果高高兴兴去安装慌慌张张去还原。其实OpenLDAP没有变而是使用习惯发生了变化早期ldap简单所以没有必要分业务账号和超级账号现在业务复杂了不分不行了才发现OpenLDAP本身就有这个功能于是乎一顿炒作猛如虎一进目录都没有怎么办呀跑了三年的用户数据都没了黑客攻击了外星人劫持了没给娃买鸡捞面紧张美食全部涌入大脑。不必惊慌解法如下一、前言为什么必须单独建业务管理员绝大多数新手部署 OpenLDAP 存在一个致命不规范直接使用 olcRootDN 超级账号cnadmin,dcxx做日常业务管理、系统对接、用户增删改。这在生产环境是严重违规、高危操作存在以下巨大风险超级账号权限过大可直接篡改 LDAP 底层配置、删除整库业务系统、运维脚本直接绑定超级账号一旦泄露后果毁灭性无法做权限最小化管控不符合等保权限分离要求所有操作日志都是超级账号无法审计具体业务操作行为企业生产标准规范底层超级账号只用来维护服务日常运维、用户管理、系统对接一律使用「业务管理员账号」。二、OpenLDAP 两种管理员身份终极说明核心重点2.1 底层超级管理员olcRootDN该账号写死在cnconfig配置中属于数据库级超级权限不属于业务目录树条目。默认示例cnadmin,dcmynewldap,dclocal权限不受ACL限制、拥有全库所有权限用途仅用于修改LDAP底层配置、模块加载、故障应急禁止业务登录、系统对接、日常用户管理2.2 业务管理员本文重点业务管理员是业务目录树内的普通实体账号受ACL权限控制权限可大可小完全可控。用途日常新增用户、修改用户、删除用户、密码重置、业务系统绑定权限仅管理业务用户目录无法修改 LDAP 底层 config 配置安全即使泄露无法破坏底层服务架构符合最小权限原则三、市面上两种业务管理员架构对比深度分析目前网络上存在两种业务管理员搭建方案很多人混淆本文一次性讲透优劣。3.1 方案一业务管理员放在根域传统方案DN示例cnadmin,dcmynewldap,dclocal优点全网通用、教程最多、适配所有开源系统配置简单无需复杂ACL适配致命缺点管理员账号游离在用户OU之外目录结构混乱无法统一做子树权限控制、审计规则不统一不符合企业组织架构分层思想3.2 方案二业务管理员归入 users 业务OU生产规范方案·推荐DN示例uidadmin,ouusers,dcmynewldap,dclocal核心优势生产环境首选结构绝对规范所有业务账号管理员普通用户统一在 ouusers 下权限统一可控只需对 ouusers 子树配置ACL即可统一管控所有业务账号审计干净统一所有业务操作DN都在同一分支日志筛选、行为追溯零混乱完全权限分离底层超级账号、业务管理员彻底割裂可扩展极强后期可扩展多部门OU、分级管理员唯一小缺点部分老旧系统默认根域admin需要手动修改绑定DN。四、生产最终规范结论信创生产、等保环境、企业规范化建设强制使用uidadmin,ouusers,dcmynewldap,dclocal作为唯一业务管理员olcRootDN 超级账号全程封存不用于日常操作五、规范搭建完整实操OU 业务管理员 权限5.1 第一步创建标准业务用户OU必须先创建所有业务账号统一归属该目录杜绝散乱账号。vim create_ou_users.ldif# create_ou_users.ldif dn: ouusers,dcmynewldap,dclocal objectClass: top objectClass: organizationalUnit ou: users description: 统一业务用户目录包含普通用户、业务管理员ldapadd -x -D cnadmin,dcmynewldap,dclocal -w 123456 -f create_ou_users.ldif5.2 第二步创建标准业务管理员账号先生成加密密码禁止明文slappasswd -s Aa123456复制{SSHA}xxxx密文替换下方文件。假如生成密码是{SSHA}JA8DlmNOwunhpaCbcmjYzSEFkc7GnaaZvim business_admin.ldif# business_admin.ldif dn: uidadmin,ouusers,dcmynewldap,dclocal objectClass: top objectClass: inetOrgPerson cn: 业务管理员 sn: Admin uid: admin #userPassword: {SSHA}此处替换为你的密文 userPassword: {SSHA}JA8DlmNOwunhpaCbcmjYzSEFkc7GnaaZ description: 标准业务管理员负责用户增删改查、业务系统对接无底层配置权限ldapadd -x -D cnadmin,dcmynewldap,dclocal -w 123456 -f business_admin.ldif5.3 第三步配置ACL权限授予业务管理员管理全站用户权限默认新建的业务管理员没有任何权限必须配置ACL策略赋予管理权限。vim acl_business_admin.ldifdn: olcDatabase{2}mdb,cnconfig changetype: modify add: olcAccess olcAccess: to dn.subtreeouusers,dcmynewldap,dclocal by dnuidadmin,ouusers,dcmynewldap,dclocal write by self write by * readldapmodify -Y EXTERNAL -H ldapi:/// -f acl_business_admin.ldif六、权限策略说明业务管理员对ouusers所有用户拥有增删改写权限普通用户可修改自身信息、密码匿名/其他主体仅可读不可修改业务管理员无法修改 cnconfig 底层配置权限完全隔离七、验证业务管理员权限使用业务管理员账号登录查询用户ldapsearch -x -D uidadmin,ouusers,dcmynewldap,dclocal -w Aa123456 -b ouusers,dcmynewldap,dclocal可正常查询、新增、修改、删除用户即为配置成功。就是能看到自己的userPassword就对了。也可以使用第三方软件查看八、生产环境最终运维规范必看olcRootDN 超级账号全程封存只用于改配置、排错、应急日常运维、所有用户增删改、系统对接一律使用业务管理员所有普通用户统一放置在ouusers禁止根域创建用户权限分层、账号分层、日志分层完全满足等保合规后续批量用户管理、密码策略、审计日志全部基于该规范架构九、架构总结本文彻底解决了 OpenLDAP 新手最核心的架构不规范问题超级账号与业务账号混用。通过「独立OU 业务管理员下沉用户目录 ACL精准授权」搭建出企业级标准LDAP身份架构为后续批量用户管理、权限分级、日志审计、等保测评、业务系统对接打下绝对规范的基础。 点赞收藏后续更新LDAP批量用户管理、分级管理员、密码安全策略、完整等保加固