openldap学习笔记

    xiaoxiao2021-12-03  13

    官方介绍文档:http://www.openldap.org/doc/admin24/intro.html

    中文资料:http://learn.hnvs.cy.edu.tw/course/view.php?id=72

     LDIF文件格式例子:

    1: dn:dc=dlw,dc=com 2: objectclass:top 3: objectclass:dcobject 4: objectclass:organization 5: dc:dlw 6: o:dlw,Inc. 7: 8: dn:ou=managers, dc=dlw, dc=com 9: ou:managers 10: objectclass:organizationalUnit 11: 12: dn:cn=dlw,ou=managers,dc=dlw,dc=com 13: cn:dlw 14: sn:dongliwei 15: objectclass:person 16: 17: dn:cn=test,ou=managers,dc=dlw,dc=com 18: cn:test 19: sn:Test User 20: objectclass:person

     官方文档:http://www.openldap.org/doc/admin24/

     

    一:LDAP-master安装和配置

    ----------------------------------

    1.LDAP安装:

        yum install openldap openldap-*

        yum install nscd nss-pam-ldapd nss-* pcre pcre-*

        rpm -qa |grep openldap    安装完成后查看下有5个以上包

    2.复制配置文件到目录:

        cd /etc/openldap/

        cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf  (这是2.3的老办法,还可以用)

    3.生成密码:

       slappasswd -s wmj    #生成密码,密码为wmj

       slappasswd -s wmj |sed -e "s#{SSHA}#rootpw\t{SSHA}#g" >>slapd.conf  (生成root密码写入配置文件)

    4.编辑配置文件:

       cp slapd.conf slapd.conf.ori  (先备份)

      vim /etc/openldap/slapd.conf

    database bdb #checkpoint 1024 15 suffix "dc=wmj,dc=com" rootdn "cn=admin,dc=wmj,dc=com" (管理员dc)

    5.配置rsyslog来记录ldap的日志:

       echo "local4.*                                                /var/log/ldap.log" >>/etc/rsyslog.conf

       /etc/init.d/rsyslog restart

    6.配置ldap数据库路径:

       grep "directory" slapd.conf      (可以修改数据库默认路径)

       cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG (复制默认数据库)

       chown ldap:ldap /var/lib/ldap/DB_CONFIG

       chmod 700 /var/lib/ldap/DB_CONFIG

       slaptest -u     (检查配置文件命令)

    7.启动ldap服务:

       /etc/init.d/slapd start

    8.查询ldap所有条目:

       ldapsearch -LLL -W -x -H ldap://127.0.0.1 -D "cn=admin,dc=wmj,dc=com" -b "dc=wmj,dc=com" "(uid=*)"

       

    如果报错:ldap_bind: Invalid credentials (49) 说明其他配置正确了。 这是因为2.4和2.3配置文件兼容问题。 参考:http://www.openldap.org/doc/admin24/appendix-common-errors.html 需要先删除默认的配置文件,根据2.3的配置文件重新生成一份。

       rm -rf /etc/openldap/slapd.d/*

     

       slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d    (重新生成配置文件)

       chown -R ldap:ldap /etc/openldap/slapd.d/

       /etc/init.d/slapd restart       (再重启下服务)

    9.修改后以后再查询一遍:

    ldapsearch -LLL -W -x -H ldap://127.0.0.1 -D "cn=admin,dc=wmj,dc=com" -b "dc=wmj,dc=com" "(uid=*)" No such object (32) (出现这个说明正确了)

     

    10.安装ldap的web管理服务:

       yum install httpd php php-ldap php-gd

       https://www.ldap-account-manager.org/     (通过官网下载3.9版本的客户端)

       ldap-account-manager-3.9.tar.gz

       mv ldap-account-manager-3.9 /var/www/html/ldap  (解压以后移动到php默认目录,必须改名成ldap)

    11.配置ldap-account-manager服务:

       cd /var/www/html/ldap/config

       cp config.cfg_sample config.cfg

       cp lam.conf_sample lam.conf

       vim lam.conf  

    admins: cn=admin,dc=wmj,dc=com types: suffix_user: ou=People,dc=wmj,dc=com types: suffix_group: ou=group,dc=wmj,dc=com types: suffix_host: ou=machines,dc=wmj,dc=com types: suffix_smbDomain: dc=wmj,dc=com

       chown -R apache:apache /var/www/html/ldap/

    12.启动ldap-web服务:

       /etc/init.d/httpd restart

       http://172.16.1.210/ldap/       (访问地址)

    13.ldap-web的使用:

       进入web以后,点击右上角的 LAM configuration

       输入默认密码“lam” 

       点击,,在最下面配置下密码就可以了,

       回到首页,输入之前生成的ldap的admin密码,我这里是“wmj”进入web页面。

       第一次进入会要建立初始化数据,点建立就可以。

     

    14.数据导出备份: 

    ldapsearch -LLL -w wmj -x -H ldap://127.0.0.1 -D "cn=admin,dc=wmj,dc=com" -b "dc=wmj,dc=com" >/tmp/bak-ldap.ldif -w:后面是ldap的密码 -W:交互式输入密码

    15.备份数据导入:

    ldapadd -x -H ldap://127.0.0.1 -D "cn=admin,dc=wmj,dc=com" -W -f /tmp/bak-ldap.ldif

     

    二:LDAP-client安装和配置

    --------------------------------------

    1.安装相关服务:

    yum install openldap-clients openldap nss nscd nss-pam-ldapd nss_ldap

     

    2.修改配置:

       一:交互式图形化配置办法,

    使用setup,选择“Authentication configuration”,勾选下面三项“Use LDAP”,“Use LDAP Authentication”,“Local authorization is sufficient”,下一步输入ldap地址。

    二. 命令行配置:

    authconfig --enablemd5 --enablemkhomedir --enableldap --enableldapauth --enablelocauthorize \ --ldapserver=ldap://172.16.1.210 --ldapbasedn="dc=wmj,dc=com" --update --enablemkhomedir:会在ldap首次登陆后自动创建家目录

     

    三.手动修改配置文件:

    vim /tmp/nsswitch.conf

    passwd: files ldap shadow: files ldap group: files ldap netgroup: files ldap automount: files ldap

     vim /etc/sysconfig/authconfig

    USELDAPAUTH=yes USELDAP=yes USELOCAUTHORIZE=yes

     vim /etc/pam.d/system-auth

    #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_fprintd.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 500 quiet auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so account required pam_unix.so broken_shadow account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account [default=bad success=ok user_unknown=ignore] pam_ldap.so account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 type= password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password sufficient pam_ldap.so use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_ldap.so

     vim /etc/openldap/ldap.conf

    TLS_CACERTDIR /etc/openldap/cacerts URI ldap://172.16.1.210/ BASE dc=wmj,dc=com

     vim /etc/pam_ldap.conf

    #host 127.0.0.1 base dc=wmj,dc=com ----------底部加上------------ uri ldap://172.16.1.210/ ssl no tls_cacertdir /etc/openldap/cacerts pam_password md5

     4.测试:

       直接输入id wmj04 就可以看到用户了

       getent passwd       #这条命令可以看到所有ldap用户

     5.ldap用户可以直接使用visudo 来配置。

     6.只允许某些LDAP用户组登陆主机:

    vim /etc/nslcd.conf

    filter passwd (|(gidNumber=10002)(gidNumber=10001)) 限制gid为10001,10002的ldap用户才能登陆主机。(配置文件底部追加)

     /etc/init.d/nslcd restart

     

     

    三:LDAP-slave主从同步配置

    ---------------------------------------------

    一。主服务器

    1. 增加修改配置用户

    vim /etc/ldap/slapd.d/cn=config/olcDatabase\=\{0\}config.ldif (底部添加)

    olcRootDN: cn=admin,cn=config olcRootPW: 123456

    2. vim mod_syncprov.ldif  (增加同步模块)

    dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: /usr/lib/ldap olcModuleLoad: syncprov.la

     

    导入配置 :ldapadd -x -D "cn=admin,cn=config" -x -w 123456 -H ldapi:/// -f mod_syncprov.ldif

    3.  vim syncprov.ldif

    dn: olcOverlay=syncprov,olcDatabase={1}hdb,cn=config objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov olcSpSessionLog: 100

    导入:  ldapadd -x -D "cn=admin,cn=config" -x -w 123456 -H ldapi:/// -f syncprov.ldif

    二。从服务器

    vim syncrepl.ldif 

    dn: olcDatabase={1}hdb,cn=config changetype: modify add: olcSyncRepl olcSyncRepl: rid=123 provider=ldap://54.222.173.22:389/ bindmethod=simple binddn="cn=admin,dc=webull,dc=com" credentials=123456 searchbase="dc=webull,dc=com" scope=sub schemachecking=on type=refreshAndPersist retry="30 5 300 3" interval=00:00:03:00

    导入:ldapmodify -Y EXTERNAL  -H ldapi:/// -f syncrepl.ldif

    导入完成后会自动开启同步,服务不需要重启。

    四:允许用户自行修改密码

    ---------------------------------------------

    vim /etc/openldap/slapd.conf

     

    修改配置文件,在database config前添加如下内容(注意格式!)

    access to attrs=userPassword

        by self write

        by anonymous auth

        by * none

     

    access to * by * read

     

     

    大小: 156.3 KB 大小: 618.9 KB 查看图片附件
    转载请注明原文地址: https://ju.6miu.com/read-680154.html

    最新回复(0)