docker部署openldap

2022年4月12日11:51:53docker部署openldap已关闭评论
  1. 获取docker镜像

    docker pull osixia/openldap

    github: https://github.com/osixia/docker-openldap

  2. 配置目录

    /var/lib/ldap 目录保存数据

    /etc/ldap/slapd.d 目录保存配置

  3. 部署容器

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
  1. 生成管理员密码
docker exec -it openldap slappasswd
New password:
Re-enter new password:
{SSHA}fWPaPVIJwlCj0HDGclSn5hR18N8NlsxG
  1. 修改管理员密码

    在/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
  1. 在 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
  1. 添加基础的 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/下,根据需要添加,重复添加可能会报错

  1. 备份数据
docker exec -it openldap slapcat -v > /data/openldap/data/ldapdbak.ldif
  1. 数据恢复
docker exec -it openldap slapcat -v > /data/openldap/data/ldapdbak.ldif
  1. 部署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
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin