精华内容
下载资源
问答
  • CentOS7 下 ldap 部署
    2020-07-29 08:13:56

    环境准备

    # 关闭防火墙以及selinux,生产环境中,以实际需求为准
    [root@localhost ~]# hostnamectl --static set-hostname ldap-server
    [root@ldap-server ~]# cat /etc/redhat-release
    CentOS Linux release 7.6.1810 (Core)
    [root@ldap-server ~]# sestatus
    SELinux status:                 disabled
    [root@ldap-server ~]# systemctl status firewalld.service
    ● firewalld.service - firewalld - dynamic firewall daemon
       Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
       Active: inactive (dead)
         Docs: man:firewalld(1)
    [root@ldap-server ~]# iptables -nL
    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    

    安装ldap

    [root@ldap-server ~]# yum -y install epel-release.noarch   # ldap需要epel源
    [root@ldap-server ~]# yum -y install openldap openldap-clients openldap-servers migrationtools openldap-devel compat-openldap
    [root@ldap-server ~]# slapd -VV   # 查看ldap版本
    @(#) $OpenLDAP: slapd 2.4.44 (Jan 29 2019 17:42:45) $
            mockbuild@x86-01.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd
    [root@ldap-server ~]# systemctl enable slapd --now
    Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /usr/lib/systemd/system/slapd.service.
    [root@ldap-server ~]# ss -nltp | grep slapd   # 默认监听389端口
    LISTEN     0      128          *:389                      *:*                   users:(("slapd",pid=31016,fd=8))
    LISTEN     0      128         :::389                     :::*                   users:(("slapd",pid=31016,fd=9))
    

    配置ldap

    [root@ldap-server ~]# slappasswd    # 设置ldap管理员的密码
    New password:
    Re-enter new password:
    {SSHA}Olf7XPVza58E4frXUqY5FNxALAG7LiiV   # 这一串字符需要保留,后面需要加入到配置文件中
    
    [root@ldap-server ~]# cd /etc/openldap/
    [root@ldap-server openldap]# ls
    certs  check_password.conf  ldap.conf  schema  slapd.d
    [root@ldap-server openldap]# vim check_password.conf   # 配置check_password.conf文件
    [root@ldap-server openldap]# egrep -v "^$|#" check_password.conf
    dn: olcDatabase={0}config,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}Olf7XPVza58E4frXUqY5FNxALAG7LiiV
    
    # 导入基本Schema模式
    [root@ldap-server openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=cosine,cn=schema,cn=config"
    
    [root@ldap-server openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=nis,cn=schema,cn=config"
    
    [root@ldap-server openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=inetorgperson,cn=schema,cn=config"
    
    # 可以有选择的导入下面的Schema模式,根据实际需求导入
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/collective.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/corba.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/core.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/duaconf.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/dyngroup.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/inetorgperson.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/java.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/misc.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/openldap.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/pmi.ldif 
    ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/ppolicy.ldif
    

    ldap设置域名

    [root@ldap-server openldap]# slappasswd
    New password:
    Re-enter new password:
    {SSHA}EX0d7WX74+oV1Z2a6fdcmgTMMbV3PTmQ
    
    # 导入chdomain.ldif文件,这里我使用的域名是test.com
    [root@ldap-server openldap]# cd slapd.d/
    [root@ldap-server slapd.d]# vim chdomain.ldif
    dn: olcDatabase={1}monitor,cn=config
    changetype: modify
    replace: olcAccess
    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
      read by dn.base="cn=Manager,dc=test,dc=com" read by * none
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=test,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=Manager,dc=test,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootPW
    olcRootPW: {SSHA}EX0d7WX74+oV1Z2a6fdcmgTMMbV3PTmQ
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcAccess
    olcAccess: {0}to attrs=userPassword,shadowLastChange by
      dn="cn=Manager,dc=test,dc=com" write by anonymous auth by self write by * none
    olcAccess: {1}to dn.base="" by * read
    olcAccess: {2}to * by dn="cn=Manager,dc=test,dc=com" write by * read
    
    [root@ldap-server openldap]# cd ..
    [root@ldap-server openldap]# chown -R ldap.ldap slapd.d/
    [root@ldap-server openldap]# cd slapd.d/
    [root@ldap-server slapd.d]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    modifying entry "olcDatabase={1}monitor,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    # 导入basedomain.ldif文件
    [root@ldap-server slapd.d]# vim basedomain.ldif
    dn: dc=test,dc=com
    objectClass: top
    objectClass: dcObject
    objectclass: organization
    o: Server Com
    dc: Test
    
    dn: cn=Manager,dc=test,dc=com
    objectClass: organizationalRole
    cn: Manager
    description: Directory Manager
    
    dn: ou=People,dc=test,dc=com
    objectClass: organizationalUnit
    ou: People
    
    dn: ou=Group,dc=test,dc=com
    objectClass: organizationalUnit
    ou: Group
    
    [root@ldap-server openldap]# cd ..
    [root@ldap-server openldap]# chown -R ldap.ldap slapd.d/
    [root@ldap-server openldap]# cd slapd.d/
    [root@ldap-server slapd.d]# ldapadd -x -D cn=Manager,dc=test,dc=com -W -f basedomain.ldif
    Enter LDAP Password:    # 密码是导入chdomain.ldif文件前设置的密码
    adding new entry "dc=test,dc=com"
    
    adding new entry "cn=Manager,dc=test,dc=com"
    
    adding new entry "ou=People,dc=test,dc=com"
    
    adding new entry "ou=Group,dc=test,dc=com"
    
    

    添加用户

    [root@ldap-server slapd.d]# slappasswd
    New password:
    Re-enter new password:
    {SSHA}iMIxY8++WGdaZef4sJrIesBkm+uc+HTO
    
    [root@ldap-server slapd.d]# vim ldapuser.ldif
    dn: uid=kevin,ou=People,dc=test,dc=com
    objectClass: inetOrgPerson
    objectClass: posixAccount
    objectClass: shadowAccount
    cn: Kevin
    sn: Linux
    userPassword: {SSHA}iMIxY8++WGdaZef4sJrIesBkm+uc+HTO
    loginShell: /bin/bash
    uidNumber: 1000
    gidNumber: 1000
    homeDirectory: /home/kevin
    
    dn: cn=kevin,ou=Group,dc=test,dc=com
    objectClass: posixGroup
    cn: Kevin
    gidNumber: 1000
    memberUid: kevin
    
    [root@ldap-server slapd.d]# cd ..
    [root@ldap-server openldap]# chown -R ldap.ldap slapd.d/
    [root@ldap-server openldap]# cd slapd.d/
    [root@ldap-server slapd.d]# ldapadd -x -D cn=Manager,dc=test,dc=com -W -f ldapuser.ldif
    Enter LDAP Password:
    adding new entry "uid=kevin,ou=People,dc=test,dc=com"
    
    adding new entry "cn=kevin,ou=Group,dc=test,dc=com"
    
    

    添加本机的系统用户和群组到ldap目录

    [root@ldap-server slapd.d]# vim ldapuser.sh
    #!/bin/env bash
    
    SUFFIX='dc=test,dc=com'
    LDIF='ldapuser.ldif'
    
    echo -n > $LDIF
    GROUP_IDS=()
    grep "x:[1-9][0-9][0-9][0-9]:" /etc/passwd | (while read TARGET_USER
    do
        USER_ID="$(echo "$TARGET_USER" | cut -d':' -f1)"
    
        USER_NAME="$(echo "$TARGET_USER" | cut -d':' -f5 | cut -d' ' -f1,2)"
        [ ! "$USER_NAME" ] && USER_NAME="$USER_ID"
    
        LDAP_SN="$(echo "$USER_NAME" | cut -d' ' -f2)"
        [ ! "$LDAP_SN" ] && LDAP_SN="$USER_NAME"
    
        LASTCHANGE_FLAG="$(grep "${USER_ID}:" /etc/shadow | cut -d':' -f3)"
        [ ! "$LASTCHANGE_FLAG" ] && LASTCHANGE_FLAG="0"
    
        SHADOW_FLAG="$(grep "${USER_ID}:" /etc/shadow | cut -d':' -f9)"
        [ ! "$SHADOW_FLAG" ] && SHADOW_FLAG="0"
    
        GROUP_ID="$(echo "$TARGET_USER" | cut -d':' -f4)"
        [ ! "$(echo "${GROUP_IDS[@]}" | grep "$GROUP_ID")" ] && GROUP_IDS=("${GROUP_IDS[@]}" "$GROUP_ID")
    
        echo "dn: uid=$USER_ID,ou=People,$SUFFIX" >> $LDIF
        echo "objectClass: inetOrgPerson" >> $LDIF
        echo "objectClass: posixAccount" >> $LDIF
        echo "objectClass: shadowAccount" >> $LDIF
        echo "sn: $LDAP_SN" >> $LDIF
        echo "givenName: $(echo "$USER_NAME" | awk '{print $1}')" >> $LDIF
        echo "cn: $USER_NAME" >> $LDIF
        echo "displayName: $USER_NAME" >> $LDIF
        echo "uidNumber: $(echo "$TARGET_USER" | cut -d':' -f3)" >> $LDIF
        echo "gidNumber: $(echo "$TARGET_USER" | cut -d':' -f4)" >> $LDIF
        echo "userPassword: {crypt}$(grep "${USER_ID}:" /etc/shadow | cut -d':' -f2)" >> $LDIF
        echo "gecos: $USER_NAME" >> $LDIF
        echo "loginShell: $(echo "$TARGET_USER" | cut -d':' -f7)" >> $LDIF
        echo "homeDirectory: $(echo "$TARGET_USER" | cut -d':' -f6)" >> $LDIF
        echo "shadowExpire: $(passwd -S "$USER_ID" | awk '{print $7}')" >> $LDIF
        echo "shadowFlag: $SHADOW_FLAG" >> $LDIF
        echo "shadowWarning: $(passwd -S "$USER_ID" | awk '{print $6}')" >> $LDIF
        echo "shadowMin: $(passwd -S "$USER_ID" | awk '{print $4}')" >> $LDIF
        echo "shadowMax: $(passwd -S "$USER_ID" | awk '{print $5}')" >> $LDIF
        echo "shadowLastChange: $LASTCHANGE_FLAG" >> $LDIF
        echo >> $LDIF
    done
    
    for TARGET_GROUP_ID in "${GROUP_IDS[@]}"
    do
        LDAP_CN="$(grep ":${TARGET_GROUP_ID}:" /etc/group | cut -d':' -f1)"
    
        echo "dn: cn=$LDAP_CN,ou=Group,$SUFFIX" >> $LDIF
        echo "objectClass: posixGroup" >> $LDIF
        echo "cn: $LDAP_CN" >> $LDIF
        echo "gidNumber: $TARGET_GROUP_ID" >> $LDIF
    
        for MEMBER_UID in $(grep ":${TARGET_GROUP_ID}:" /etc/passwd | cut -d':' -f1,3)
        do
            UID_NUM=$(echo "$MEMBER_UID" | cut -d':' -f2)
            [ $UID_NUM -ge 1000 -a $UID_NUM -le 9999 ] && echo "memberUid: $(echo "$MEMBER_UID" | cut -d':' -f1)" >> $LDIF
        done
        echo >> $LDIF
    done
    )
    [root@ldap-server slapd.d]# chmod 755 ldapuser.sh
    [root@ldap-server slapd.d]# vim ldapuser.sh
    [root@ldap-server slapd.d]# sh ldapuser.sh
    [root@ldap-server slapd.d]# ldapadd -x -D cn=Manager,dc=test,dc=com -W -f ldapuser.ldif
    Enter LDAP Password:
    adding new entry "uid=admin,ou=People,dc=test,dc=com"
    
    adding new entry "uid=test1,ou=People,dc=test,dc=com"
    
    adding new entry "cn=admin,ou=Group,dc=test,dc=com"
    
    adding new entry "cn=test1,ou=Group,dc=test,dc=com"
    
    

    安装phpLDAPadmin

    [root@ldap-server ~]# yum -y install httpd
    [root@ldap-server ~]# rm -f /etc/httpd/conf.d/welcome.conf
    [root@ldap-server ~]# cp /etc/httpd/conf/httpd.conf{,.bak}
    [root@ldap-server ~]# vim /etc/httpd/conf/httpd.conf         # 修改下面几行内容
    ServerName www.example.com:80                                 # 第95行
    AllowOverride All                                             # 第151行
    DirectoryIndex index.html index.cgi index.php                 # 第164行
    # add follows to the end                                      # 添加这几行
    # server's response header
    ServerTokens Prod
    # keepalive is ON
    KeepAlive On
    [root@ldap-server ~]# systemctl enable httpd.service --now
    # 浏览器访问http://192.168.131.133
    

    安装php

    [root@ldap-server ~]# yum -y install php php-mbstring php-pear
    [root@ldap-server ~]# cp /etc/php.ini{,.bak}
    [root@ldap-server ~]# vim /etc/php.ini
    date.timezone = "Asia/Shanghai"    # 第878行
    [root@ldap-server ~]# systemctl restart httpd.service
    [root@ldap-server ~]# vim /var/www/html/index.php
    <?php
    phpinfo();
    ?>
    # 浏览器访问http://192.168.131.133/index.php
    

    安装phpldap

    [root@ldap-server ~]# yum --enablerepo=epel -y install phpldapadmin
    [root@ldap-server ~]# cp /etc/phpldapadmin/config.php{,.bak}
    [root@ldap-server ~]# vim /etc/phpldapadmin/config.php
    $servers->setValue('login','attr','dn');         # 397行打开注释,启用用户名密码的方式登录
    // $servers->setValue('login','attr','uid');     # 398行注释,禁用uid的方式登录
    [root@ldap-server ~]# cp /etc/httpd/conf.d/phpldapadmin.conf{,.bak}
    [root@ldap-server ~]# vim /etc/httpd/conf.d/phpldapadmin.conf
    Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
    Alias /ldapadmin /usr/share/phpldapadmin/htdocs
    
    <Directory /usr/share/phpldapadmin/htdocs>
      <IfModule mod_authz_core.c>
        # Apache 2.4
        Require ip 192.168.131.0/24      # 修改访问权限,改为服务器所在ip的网段
      </IfModule>
      <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
      </IfModule>
    </Directory>
    [root@ldap-server ~]# systemctl restart httpd.service
    [root@ldap-server ~]# ps -ef | grep [ht]tp
    root      34438      1  0 11:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    34439  34438  0 11:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    34440  34438  0 11:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    34441  34438  0 11:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    34442  34438  0 11:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    apache    34443  34438  0 11:06 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
    [root@ldap-server ~]# chown -R apache.apache /usr/share/phpldapadmin
    # 浏览器访问http://192.168.131.133/ldapadmin/
    # 登陆用户名:cn=Manager,dc=test,dc=com     
    # 密码是上面设置的
    
    更多相关内容
  • ldap部署

    2020-07-19 17:10:43
    安装相关的包 [root@openldap-server ~]# yum -y install openldap openldap-clients openldap-servers 复制指定配置文件到指定目录下 [root@openldap-server ~]# ...[root@openldap-server ~]# chown -R ldap.ldap /

    安装相关的包

    [root@openldap-server ~]# yum -y install openldap openldap-clients openldap-servers
    

    复制指定配置文件到指定目录下

    [root@openldap-server ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    

    授权

    [root@openldap-server ~]# chown -R ldap.ldap /var/lib/ldap/DB_CONFIG
    

    启动服务

    [root@openldap-server ~]# systemctl start slapd
    [root@openldap-server ~]# systemctl enable  slapd
    Created symlink from /etc/systemd/system/multi-user.target.wants/slapd.service to /usr/lib/systemd/system/slapd.service.
    

    查看服务状态

    [root@openldap-server ~]# systemctl status slapd
    ● slapd.service - OpenLDAP Server Daemon
       Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)
       Active: active (running) since Sun 2020-07-19 12:53:24 CST; 22s ago
         Docs: man:slapd
               man:slapd-config
               man:slapd-hdb
               man:slapd-mdb
               file:///usr/share/doc/openldap-servers/guide.html
     Main PID: 1276 (slapd)
       CGroup: /system.slice/slapd.service
               └─1276 /usr/sbin/slapd -u ldap -h ldapi:/// ldap:///
    
    Jul 19 12:53:24 openldap-server systemd[1]: Starting OpenLDAP Server Daemon...
    Jul 19 12:53:24 openldap-server runuser[1263]: pam_unix(runuser:session): session opened for user ldap by (uid=0)
    Jul 19 12:53:24 openldap-server slapd[1274]: @(#) $OpenLDAP: slapd 2.4.44 (Jan 29 2019 17:42:45) $
                                                         mockbuild@x86-01.bsys.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd
    Jul 19 12:53:24 openldap-server slapd[1274]: tlsmc_get_pin: INFO: Please note the extracted key file will not be protected with a PIN any more, h...missions.
    Jul 19 12:53:24 openldap-server slapd[1276]: slapd starting
    Jul 19 12:53:24 openldap-server systemd[1]: Started OpenLDAP Server Daemon.
    Hint: Some lines were ellipsized, use -l to show in full.
    

    这里就是重点中的重点了,从openldap2.4.23版本开始,所有配置都保存在/etc/openldap/slapd.d目录下的cn=config文件夹内,不再使用slapd.conf作为配置文件。配置文件的后缀为 ldif,且每个配置文件都是通过命令自动生成的,任意打开一个配置文件,在开头都会有一行注释,说明此为自动生成的文件,请勿编辑,使用ldapmodify命令进行修改

    # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
    

    安装openldap后,会有三个命令用于修改配置文件,分别为ldapadd, ldapmodify, ldapdelete,顾名思义就是添加,修改和删除。而需要修改或增加配置时,则需要先写一个ldif后缀的配置文件,然后通过命令将写的配置更新到slapd.d目录下的配置文件中去,完整的配置过程如下,跟着我做就可以了
    生成管理员密码

    [root@openldap-server ~]# slappasswd -s 123456
    {SSHA}hi++Byop0ErTUKIM+kI4oOt7qLAK6YBG
    # 生成管理员密码,记录下这个密码,后面需要用到
    # 新增修改密码文件,ldif为后缀,文件名随意,不要在/etc/openldap/slapd.d/目录下创建类似文件
    # 生成的文件为需要通过命令去动态修改ldap现有配置,如下,我在家目录下,创建文件
    [root@openldap-server ~]# vim changepwd.ldif
    dn: olcDatabase={0}config,cn=config
    changetype: modify
    add: olcRootPW
    olcRootPW: {SSHA}hi++Byop0ErTUKIM+kI4oOt7qLAK6YBG
    # 这里解释一下这个文件的内容:
    # 第一行执行配置文件,这里就表示指定为 cn=config/olcDatabase={0}config 文件。你到/etc/openldap/slapd.d/目录下就能找到此文件
    # 第二行 changetype 指定类型为修改
    # 第三行 add 表示添加 olcRootPW 配置项
    # 第四行指定 olcRootPW 配置项的值
    # 在执行下面的命令前,你可以先查看原本的olcDatabase={0}config文件,里面是没有olcRootPW这个项的,执行命令后,你再看就会新增了olcRootPW项,而且内容是我们文件中指定的值加密后的字符串
     
    # 执行命令,修改ldap配置,通过-f执行文件
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f changepwd.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    modifying entry "olcDatabase={0}config,cn=config"
    # 查看olcDatabase={0}config内容,新增了一个olcRootPW项
    [root@openldap-server ~]# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif 
    # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
    # CRC32 22f64da6
    dn: olcDatabase={0}config
    objectClass: olcDatabaseConfig
    olcDatabase: {0}config
    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
     al,cn=auth" manage by * none
    structuralObjectClass: olcDatabaseConfig
    entryUUID: 36470320-5dc7-103a-87de-d34f62792559
    creatorsName: cn=config
    createTimestamp: 20200719045111Z
    olcRootPW:: e1NTSEF9aGkrK0J5b3AwRXJUVUtJTStrSTRvT3Q3cUxBSzZZQkc=
    entryCSN: 20200719051413.020917Z#000000#000#000000
    modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    modifyTimestamp: 20200719051413Z
    
    

    上面的是完整的配置过程,切记不能修改/etc/openldap/slapd.d/目录下的配置

    # 我们需要向LDAP 中导入一些基本的Schema。这些Schema文件位于/etc/openldap/schema/ 目录中,schema目录中schma控制着条目拥有的那些对象类和属性可以自行选择需要的进行导入
    [root@openldap-server ~]# ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
    或者一条一条添加
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=cosine,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=nis,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=inetorgperson,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=collective,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/corba.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=corba,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=duaconf,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=dyngroup,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/java.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=java,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=misc,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=openldap,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=pmi,cn=schema,cn=config"
    
    [root@openldap-server ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=ppolicy,cn=schema,cn=config"
    

    修改笔记,新增changedomin.ldif,这里定义的域名为yaobili.com 管理员账户admin

    [root@openldap-server ~]# cat changedomain.ldif 
    dn: olcDatabase={1}monitor,cn=config
    changetype: modify
    replace: olcAccess
    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=yaobili,dc=com" read by * none
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=yaobili,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=admin,dc=yaobili,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootPW
    olcRootPW: {SSHA}hi++Byop0ErTUKIM+kI4oOt7qLAK6YBG
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    add: olcAccess
    olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=yaobili,dc=com" write by anonymous auth by self write by * none
    olcAccess: {1}to dn.base="" by * read
    olcAccess: {2}to * by dn="cn=admin,dc=yaobili,dc=com" write by * read
    

    如果报错注意空格 :set list

    [root@openldap-server ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f changedomain.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    ldapmodify: wrong attributeType at line 5, entry "olcDatabase={1}monitor,cn=config"
    
    

    正确的输出

    [root@openldap-server ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f changedomain.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    modifying entry "olcDatabase={1}monitor,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    

    启用membrof功能

    # 新增add-memberof.ldif, #开启memberof支持并新增用户支持memberof配置
    [root@openldap-server ~]# vim add-memberof.ldif
    dn: cn=module{0},cn=config
    cn: modulle{0}
    objectClass: olcModuleList
    objectclass: top
    olcModuleload: memberof.la
    olcModulePath: /usr/lib64/openldap
    
    dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
    objectClass: olcConfig
    objectClass: olcMemberOf
    objectClass: olcOverlayConfig
    objectClass: top
    olcOverlay: memberof
    olcMemberOfDangling: ignore
    olcMemberOfRefInt: TRUE
    olcMemberOfGroupOC: groupOfUniqueNames
    olcMemberOfMemberAD: uniqueMember
    olcMemberOfMemberOfAD: memberOf
    # 新增refint1.ldif
    [root@openldap-server ~]# vim refint1.ldif
    dn: cn=module{0},cn=config
    add: olcmoduleload
    olcmoduleload: refint
    
    新增regint2.ldif
    [root@openldap-server ~]# vim refint2.ldif
    dn: olcOverlay=refint,olcDatabase={2}hdb,cn=config
    objectClass: olcConfig
    objectClass: olcOverlayConfig
    objectClass: olcRefintConfig
    objectClass: top
    olcOverlay: refint
    olcRefintAttribute: memberof uniqueMember  manager owner
    

    依次执行下面的命令顺序不能错

    [root@openldap-server ~]# ldapadd  -Q -Y EXTERNAL -H ldapi:/// -f add-memberof.ldif 
    adding new entry "cn=module{0},cn=config"
    adding new entry "olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config"
    [root@openldap-server ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif
    modifying entry "cn=module{0},cn=config"
    [root@openldap-server ~]# ldapadd  -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif 
    adding new entry "olcOverlay=refint,olcDatabase={2}hdb,cn=config"
    ldap_add: Invalid syntax (21)
    	additional info: objectClass: value #2 invalid per syntax
    

    到此,配置修改完了,在上述基础上,我们来创建一个叫做 yuelvhui company 的组织,并在其下创建一个 admin 的组织角色(该组织角色内的用户具有管理整个 LDAP 的权限)和 People 和 Group 两个组织单元

    [root@openldap-server ~]# cat base.ldif 
    dn: dc=yaobili,dc=com
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    o: Yaobili Company
    dc: yaobili
    
    dn: cn=admin,dc=yaobili,dc=com
    objectClass: organizationalRole
    cn: admin
    
    dn: ou=People,dc=yaobili,dc=com
    objectClass: organizationalUnit
    ou: People
    
    dn: ou=Group,dc=yaobili,dc=com
    objectClass: organizationalRole
    cn: Group
    
    # 执行命令,添加配置, 这里要注意修改域名为自己配置的域名,然后需要输入上面我们生成的密码
    [root@openldap-server ~]# ldapadd -x -D cn=admin,dc=yaobili,dc=com -W -f base.ldif 
    Enter LDAP Password: 
    adding new entry "dc=yaobili,dc=com"
    
    adding new entry "cn=admin,dc=yaobili,dc=com"
    
    adding new entry "ou=People,dc=yaobili,dc=com"
    
    adding new entry "ou=Group,dc=yaobili,dc=com"
    
    

    通过以上的所有步骤,我们就设置好了一个 LDAP 目录树:其中基准 dc=yaobili,dc=com 是该树的根节点,其下有一个管理域 cn=admin,dc=yaobili,dc=com 和两个组织单元 ou=People,dc=yaobili,dc=com 及 ou=Group,dc=yaobili,dc=com。

    安装phpldapadmin
        ldap装好后,下面安装web界面phpldapadmin。
    [root@openldap-server ~]# yum -y install phpldapadmin
    # yum安装时,会自动安装apache和php的依赖。
    # 注意: phpldapadmin很多没更新了,只支持php5,如果你服务器的环境是php7,则会有问题,页面会有各种报错
     
    # 修改apache的phpldapadmin配置文件
    # 修改如下内容,放开外网访问,这里只改了2.4版本的配置,因为centos7 默认安装的apache为2.4版本。所以只需要改2.4版本的配置就可以了
    [root@openldap-server ~]# vim /etc/httpd/conf.d/phpldapadmin.conf
    #
    #  Web-based tool for managing LDAP servers
    #
    
    Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
    Alias /ldapadmin /usr/share/phpldapadmin/htdocs
    
    <Directory /usr/share/phpldapadmin/htdocs>
      <IfModule mod_authz_core.c>
        # Apache 2.4
        Require all granted
    
      </IfModule>
      <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
      </IfModule>
    </Directory>
    
    [root@openldap-server ~]#vim /etc/phpldapadmin/config.php
    -----------------------------------------------------------------
    # 398行,默认是使用uid进行登录,我这里改为cn,也就是用户名
    $servers->setValue('login','attr','cn');
     
    # 460行,关闭匿名登录,否则任何人都可以直接匿名登录查看所有人的信息
    $servers->setValue('login','anon_bind',false);
     
    # 519行,设置用户属性的唯一性,这里我将cn,sn加上了,以确保用户名的唯一性
    $servers->setValue('unique','attrs',array('mail','uid','uidNumber','cn','sn'));
    -----------------------------------------------------------------
    

    重启apache

    [root@openldap-server ~]# systemctl restart httpd
    [root@openldap-server ~]# systemctl enable httpd 
    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
    

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • LDAP部署文档

    千次阅读 2020-03-17 21:05:56
    一、部署OpenLDAP 1、安装openLDAP [root@ldapserver ~]# yum install -y openldap-servers openldap-clients migrationtools [root@ldapserver ~]# slapd -VV #查看版本 @(#) $OpenLDAP: slapd 2.4.44 (Jan 29 20...

    环境centos7

    一、部署OpenLDAP

    1、安装openLDAP

    [root@ldapserver ~]# yum install -y openldap-servers openldap-clients migrationtools
    
    [root@ldapserver ~]# slapd -VV  #查看版本
    
    @(#) $OpenLDAP: slapd 2.4.44 (Jan 29 2019 17:42:45) $ 
    

    2、设置openldap管理员密码

    [root@ldapserver ~]# slappasswd
    
    New password: 123456
    
    Re-enter new password: 123456
    
    {SSHA}WtkaNTdtu/F/6c7UzRDKEoU+t/Jwd8wx #返回加密的密码字符串,保存这个字符串
    

    3、更改openldap配置

    注意:从OpenLDAP 2.4.x下已废弃slapd.conf文件,而配置文件被目录slapd.d所取代 。slapd.d目录内包含的ldif文件中的内容,就是slapd.conf中的内容转化成ldif格式,以构成一棵根为cn=config的目录树,这棵树包含了许多结点,如:cn=include, cn=schema, olcBackend=hdb……。所有配置信息就是这些结点的属性。

    [root@ldapserver ~]# vim /etc/openldap/slapd.d/cn\=config\/olcDatabase\={2}hdb.ldif
    
    olcSuffix: dc=mypaas,dc=com     #找到olcSuffix,修改为你的dc
    
    olcRootDN: cn=Manager,dc=mypaas,dc=com  #找到olcRootDN, 修改为你的用户名
    
    olcRootPW: {SSHA}WtkaNTdtu/F/6c7UzRDKEoU+t/Jwd8wx  #在文件末尾添加此行,设置是刚才的密码
    

    4、更改监控认证配置

    [root@ldapserver ~]# vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
    
    修改 olcAccess 行中的dn.base=”cn=xxxxxxx”这行为刚才设置的用户名,
    
    如:dn.base=”cn=Manager,dc=mypaas,dc=com”
    

    5、设置DB Cache

    [root@ldapserver ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    
    [root@ldapserver ~]# chown -R ldap:ldap /var/lib/ldap/
    

    6、测试配置文件

    [root@ldapserver ~]# slaptest -u
    
    5dee3c65 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
    
    5dee3c65 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
    
    config file testing succeeded   #说明成功了
    

    7、启动OpenLDAP和开机启动

    systemctl start slapd.service
    
    systemctl enable slapd.service
    
    ss -tanlp |grep 389
    

    二、部署LDAP管理工具PHPldapadmin

    1、 安装httpd服务器

    [root@ldapserver ~]# yum install httpd -y
    

    2、修改配置文件httpd.conf

    [root@ldapserver ~]# vim /etc/httpd/conf/httpd.conf
    
    102 <Directory /phpldapadmin>
    
    103     Options Indexes FollowSymLinks
    
    104     AllowOverride None
    
    105 </Directory>
    

    3、安装phpldapadmin:

    [root@ldapserver ~]# yum -y install epel-release
    
    [root@ldapserver ~]# yum --enablerepo=epel -y install phpldapadmin
    

    4、修改配置文件

    [root@ldapserver ~]# vim /etc/phpldapadmin/config.php
    
    找到并取消下面几行的注释:
    
    298 $servers->setValue('server','host','127.0.0.1');
    
    301 $servers->setValue('server','port',389);
    
    305 $servers->setValue('server','base',array('dc=mypaas,dc=com'));  #array里加上openldap配置文件中设置的olcSuffix
    
    323 $servers->setValue('login','auth_type','session');
    
    397 $servers->setValue('login','attr','dn');
    
    398 //$servers->setValue('login','attr','uid');  #把此行注释掉
    

    5、修改phpldapadmin访问配置文件

    [root@ldapserver ~]# vim /etc/httpd/conf.d/phpldapadmin.conf
    
    9   <IfModule mod_authz_core.c>
    
     10     # Apache 2.4
    
     11     # Require local
    
     12   </IfModule>
    

    6、创建基础目录

    在/etc/openldap目录下新建base.ldif文件,并添加如下内容

    [root@ldapserver ~]# cat /etc/openldap/base.ldif
    
    dn: dc=mypaas,dc=com
    
    o: ldap
    
    objectclass: dcObject
    
    objectclass: organization
    
    dc: mypaas
    

    7、访问web管理端

    systemctl start httpd.service
    

    访问 http://ip/phpldapadmin
    登陆用户名:cn=Manager,dc=mypaas,dc=com

    在这里插入图片描述

    参考:https://www.cnblogs.com/chuangcc/p/12013571.html

    展开全文
  • Ubuntu下LDAP 部署文档

    千次阅读 2020-09-29 17:01:58
    LDAP 部署文档 环境准备 # cat /etc/issue Ubuntu 16.04.6 LTS \n \l # uname -r 4.4.0-142-generic # slapd -VV @(#) $OpenLDAP: slapd (Ubuntu) (Apr 10 2019 13:01:36) $ buildd@lgw01-amd64-031:/build/...

    LDAP 基本概念

    在这里插入图片描述

    LDAP 部署文档

    环境准备

    # cat /etc/issue
    Ubuntu 16.04.6 LTS \n \l
    # uname -r
    4.4.0-142-generic
    # slapd -VV
    @(#) $OpenLDAP: slapd  
    展开全文
  • 这是一个演示如何自动执行简单(和单个)LDAP服务器部署以及如何将另一个实例集成为客户端的演示。 该手册可用于在裸机和基于云的实例(例如Nova Instances(Openstack)和EC2实例(AWS))上进行部署。 2.安装...
  • 本文档详细介绍了如何在linux系统下安装ldap、gerrit、gitweb的安装流程。还包括gerrit的ldap认证配置,gerrit+gitweb集成化安装部署流程。
  • 网上部署ldap的资料比较杂,大多数都不详细而且什么版本都有,经过自己的好几天瞎研究,终于整理出较详细的步骤和原理。 虚拟机系统 redhat7 首先清楚Ldap是一个协议 有不同的实现方法,我用openldap软件。 LDAP功能...
  • linux下ldap部署详解

    千次阅读 2016-09-09 11:45:55
    linux下ldap部署详解1.ldap服务器安装[root@ldap ldap]# vim /etc/hosts #本地解析域名1.1.1.13 willow.com安装LDAP相关软件:openldap、openldap-servers、openldap-clients[root@ldap ~]# yum install -y openldap...
  • 本套系统旨在 ” 带领大家搭建起公司内部的一套高可用支持TLS/SSL加密的统一账号管理系统OpenLDAP” ,但同样也如实告诉大家一点:这个教程并没有特深入的讲解 OpenLDAP 的理论知识,更加深入的学习,任重而道远,让...
  • CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理
  • LDAP Docker部署

    2022-01-17 18:40:17
    1、docker 部署LDAP 拉取最新版本 ldap镜像 docker pull osixia/openldap 部署 docker run #端口(不加密的) -p 389:389 #容器名 --name my_ldap #网络 桥接 --network bridge #机器名 --hostname ldap-host #...
  • 在Ubuntu 14.04上对主-主复制LDAP进行Ansible部署 描述 这是双重复制,对其中一台服务器的写入将被复制到另一台服务器。 双方都是主从。 要创建无业游民: Vagrant使用“ hostmanager”插件。 在运行之前,请使用...
  • LDAP 服务部署

    2020-12-15 11:44:48
    LDAP 服务部署 1、实验环境: [root@ldapserver01 ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) [root@ldapserver01 ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ...
  • 部署openLDAP 2.4.44 (centOS 7.X 直接yum 安装的版本),之前在网上查找过教程,大多数openLDAP 2.3.X 初始配置已经有了很大变化。说直接改/etc/openldap/slapd.conf 没有就新建,或者修改/etc/openldap/slapd.d/下的...
  • ldap部署和用户创建

    2018-10-26 18:45:03
    轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。OpenLDAP是轻型目录访问协议...
  • LDAP部署和用户创建

    2019-10-09 06:27:03
    轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。 OpenLDAP是轻型目录访问协议...
  • Open Ldap安装部署

    2021-03-08 16:18:44
    一、LDAP服务安装 1.yum 安装相关包 yum install -y openldap openldap-clients openldap-servers 2.复制一个默认配置到指定目录下,并授权,这一步一定要做,然后再启动服务,不然生产密码时会报错 cp /usr/share/...
  • LDAP 部署CentOS7服务器

    2018-06-29 09:55:27
    chown -R ldap:ldap /var/lib/ldap/ 6、测试配置文件 slaptest -u   末尾出现configfile testing successed 说明成功了 7、启动OpenLDAP和开机启动 systemctl start slapd.service   systemctl enable slapd....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,558
精华内容 9,823
关键字:

ldap部署