-
获取docker镜像
docker pull osixia/openldap
-
配置目录
/var/lib/ldap 目录保存数据
/etc/ldap/slapd.d 目录保存配置
-
部署容器
LDAP_ORGANISATION="" #ldap的机构组织
LDAP_DOMAIN="" #配置LDAP域
LDAP_ADMIN_PASSWORD="" #配置LDAP管理员(admin)的密码
docker run -d --restart=always -p 389:389 -p 636:636 --env LDAP_TLS=false -v /data/openldap/data:/var/lib/ldap -v /data/openldap/slapd.d:/etc/ldap/slapd.d --env LDAP_ORGANISATION=$LDAP_ORGANISATION --env LDAP_DOMAIN=$LDAP_DOMAIN --env LDAP_ADMIN_PASSWORD=$LDAP_ADMIN_PASSWORD --name openldap osixia/openldap:1.5.0
- 生成管理员密码
docker exec -it openldap slappasswd
New password:
Re-enter new password:
{SSHA}fWPaPVIJwlCj0HDGclSn5hR18N8NlsxG
-
修改管理员密码
在/data/openldap/data 下创建一个文件chrootpw.ldif,最后一行为刚才生成的加密串
dn: olcDatabase={0}config,cn=config
changetype: modify
replace:olcRootPW
olcRootPW: {SSHA}fWPaPVIJwlCj0HDGclSn5hR18N8NlsxG
- 执行chrootpw.ldif
docker exec -it openldap ldapadd -Y EXTERNAL -H ldapi:/// -f /data/openldap/data/chrootpw.ldif
-
在 LDAP 数据库中设置根域和数据库超级管理员
在/data/openldap/data/下创建一个文件domain-dbadmin.ldif
domain修改为配置的域名
olcRootDN是管理员
olcRootPW是管理员密码,也需要添入加密串,可以相同或重新生成
olcRootDN 和 olcSuffix 需要修改成相应的域地址
olcAccess 格式保持一致,最好不要使用tab
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=domain,dc=com
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=domain,dc=com
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}fWPaPVIJwlCj0HDGclSn5hR18N8NlsxG
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: to *
by self read
by users none
by dn.base="cn=Manager,dc=domain,dc=com" write
by anonymous auth
- 执行domain-dbadmin.ldif文件
docker exec -it openldap ldapmodify -Y EXTERNAL -H ldapi:/// -f /data/openldap/data/domain-dbadmin.ldif
-
添加基础的 Schema
在/data/openldap/data 下创建一个文件domain-base.ldif,domain修改为配置的域名
dn: dc=domain,dc=com
objectClass: organization
objectClass: dcObject
dc: domain
o: domain
dn: cn=Manager,dc=domain,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=domain-ou,dc=domain,dc=com
objectClass: organizationalUnit
ou: People
dn: sambaDomainName=domain-smb,dc=domain,dc=com
sambaDomainName: domain-smb
sambaSID: S-1-5-21-1484080235-4174778414-377160770
sambaAlgorithmicRidBase: 1000
objectClass: sambaDomain
sambaNextUserRid: 1000
sambaMinPwdLength: 5
sambaPwdHistoryLength: 0
sambaLogonToChgPwd: 0
sambaMaxPwdAge: -1
sambaMinPwdAge: 0
sambaLockoutDuration: 30
sambaLockoutObservationWindow: 30
sambaLockoutThreshold: 0
sambaForceLogoff: -1
sambaRefuseMachinePwdChange: 0
sambaNextRid: 1002
sambaAlgorithmicRidBase: 1000
-
执行 domain-base.ldif 文件
docker exec -it openldap ldapadd -Y EXTERNAL -H ldapi:/// -f /data/openldap/data/domain-base.ldif
基础的Schema在容器目录/etc/ldap/schema/下,根据需要添加,重复添加可能会报错
- 备份数据
docker exec -it openldap slapcat -v > /data/openldap/data/ldapdbak.ldif
- 数据恢复
docker exec -it openldap slapcat -v > /data/openldap/data/ldapdbak.ldif
- 部署phpldapadmin
docker run -d --restart=always --privileged -p 80:80 --link openldap --env PHPLDAPADMIN_HTTPS=false --env PHPLDAPADMIN_LDAP_HOSTS=openldap --name phpldapadmin osixia/phpldapadmin
本文地址:http://81uyu.com/uyu/1149.html docker部署openldap - 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫