• Centos 6.8环境下OpenLDAP安装与部署


    一、OpenLDAP介绍

    LDAP 全称轻量级目录访问协议(英文:Lightweight Directory Access Protocol),是一个运行在 TCP/IP 上的目录访问协议。LDAP实现提供被称为目录服务的信息服务,可以看做是一张特殊的数据库系统。可以有效的解决众多网络服务的用户账户问题,规定了统一的身份信息数据库、身份认证机制和接口,实现了资源和信息的统一管理,保证了数据的一致性和完整性。

    二、OpenLDAP Server 端部署

    1. 安装 OpenLDAP 服务

    yum -y install openldap openldap-*

    OpenLDAP 配置文件信息:

    • /etc/openldap/slapd.conf:OpenLDAP的主配置文件,记录根域信息,管理员名称,密码,日志,权限等
    • /etc/openldap/slapd.d/*:这下面是/etc/openldap/slapd.conf配置信息生成的文件,每修改一次配置信息,这里的东西就要重新生成
    • /etc/openldap/schema/*:OpenLDAP的schema存放的地方
    • /var/lib/ldap/*:OpenLDAP的数据文件
    • /usr/share/openldap-servers/slapd.conf.obsolete 模板配置文件
    • /usr/share/openldap-servers/DB_CONFIG.example 模板数据库配置文件

    2. 配置 OpenLDAP,包括准备DB_CONFIG和slapd.conf

    cd /etc/openldap/
    cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf
    cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

    3. 配置 OpenLDAP 管理员密码

    $ slappasswd -s 123456
    {SSHA}Ct24HfPbIOy7tqf++84CL1hfEFC6VYlk  (密码需保存,后面会用上)

    4. 修改slapd.conf,主要配置dc和rootpw,rootpw配置为上述步骤中的密码

    database        bdb
    suffix          "dc=kwang,dc=cn"
    checkpoint      1024 15
    rootdn          "cn=Manager,dc=kwang,dc=cn"
    rootpw       {SSHA}Ct24HfPbIOy7tqf++84CL1hfEFC6VYlk 

    5. 修改目录权限

    chown -R ldap:ldap /etc/openldap/  
    chown -R ldap:ldap /var/lib/ldap/

    6. 启动slapd服务

    $ /etc/init.d/slapd start
    Starting slapd:                                            [  OK  ]
    
    $ /etc/init.d/slapd status
    slapd (pid  20539) is running...
    $ chkconfig slapd on    # 设置开机启动
    
    $  lsof -i:389     #检测端口是否在监听
    COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
    slapd   20539 ldap    7u  IPv4 11741440      0t0  TCP *:ldap (LISTEN)

    7. 测试/etc/openldap/slapd.conf配置是否正确

    slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

    出现如下结果则表示配置文件已正确配置:

    config file testing succeeded

    三、OpenLDAP Server端安装migrationtools,创建根域目录

    1. 安装migrationtools工具

    migrationtools工具实现OpenLDAP用户及用户组的添加

    yum install migrationtools -y

    2. 编辑/usr/share/migrationtools/migrate_common.ph文件,生成基础组

    将 DEFAULT_MAIL_DOMAIN 和 DEFAULT_BASE 值和 slapd.conf 文件对应。

    # Default DNS domain
    $DEFAULT_MAIL_DOMAIN = "kwang.com";
    
    # Default base 
    $DEFAULT_BASE = "dc=kwang,dc=com";

    3. 创建 OpenLDAP 根域条目 base.ldif 文件

    对生成的 base.ldif 文件编辑,将不需要的条目删除。

    dn: dc=kwang,dc=com
    dc: kwang
    objectClass: top
    objectClass: domain
    
    dn: ou=People,dc=kwang,dc=com
    ou: People
    objectClass: top
    objectClass: organizationalUnit
    
    dn: ou=Group,dc=kwang,dc=com
    ou: Group
    objectClass: top
    objectClass: organizationalUnit

    4. 添加 base.ldif 到 ldap 中

    ldapadd -x -D "cn=Manager,dc=kwang,dc=com" -w 123456 -f base.ldif   

    5. 查询 ldap 中已添加的条目

    $ ldapsearch -x -b "dc=kwang,dc=com" 
    # extended LDIF
    #
    # LDAPv3
    # base <dc=kwang,dc=com> with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #
    
    # kwang.lan
    dn: dc=kwang,dc=com
    dc: kwang
    objectClass: top
    objectClass: domain
    
    # People, kwang.lan
    dn: ou=People,dc=kwang,dc=com
    ou: People
    objectClass: top
    objectClass: organizationalUnit
    
    # Group, kwang.lan
    dn: ou=Group,dc=kwang,dc=com
    ou: Group
    objectClass: top
    objectClass: organizationalUnit
    
    # search result
    search: 2
    result: 0 Success
    
    # numResponses: 4
    # numEntries: 3

    至此,OpenLDAP server端环境已部署。

    四、OpenLDAP client端部署

    客户端部署有两种方式 nslcd 和 SSSD,两种方式基本一致,SSSD相比更新,具有缓存功能,在LDAP server宕机时,依然能正常工作。因此本文主要介绍 SSSD 部署。

    4.1 通过配置文件部署

    1. 安装 SSSD

    yum install openldap-clients nss-pam-ldapd -y
    yum install authconfig sssd-ldap sssd -y 

    2. 编辑 /etc/openldap/ldap.conf文件

    # LDAP Defaults
    #
     
    # See ldap.conf(5) for details
    # This file should be world readable but not world writable.
     
    BASE    dc=kwang,dc=com
    URI     ldaps://<ldap-server-ip>:389/
     
    #SIZELIMIT      12
    #TIMELIMIT      15
    #DEREF          never
     
    TLS_CACERTDIR   /etc/openldap/certs

    3. 编辑/etc/sssd/sssd.conf文件

    [sssd]
    config_file_version = 2
    services = nss, pam
    domains = default
    debug_level = 5
       
    [nss]
    filter_users = root,ldap,named,avahi,haldaemon,dbus,radiusd,news,nscd
       
    [domain/default]
    id_provider = ldap
    auth_provider = ldap
    ldap_search_base = dc=kwang,dc=com
    ldap_tls_reqcert = never
    ldap_uri = ldaps://<ldap-server-ip>

    4. 编辑/etc/nsswitch.conf文件

    passwd:     files sss
    shadow:     files sss
    group:      files sss 

    #如果本地用户和ldap用户,但是希望以ldap用户为准,file为补充时,可以修改/etc/nsswitch.conf 

     passwd: sss files
     shadow: sss files
     group: sss files

    5. 编辑/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_sss.so use_first_pass
    auth        required      pam_deny.so
     
    account     required      pam_unix.so
    account     sufficient    pam_localuser.so
    account     sufficient    pam_succeed_if.so uid < 500 quiet
    account     [default=bad success=ok user_unknown=ignore] pam_sss.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_sss.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_sss.so
    session     optional      pam_mkhomedir.so

    6. 编辑/etc/pam.d/password-auth-ac 文件

    #%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_unix.so nullok try_first_pass
    #auth        requisite     pam_succeed_if.so uid >= 500 quiet  必须注释掉
    auth        sufficient    pam_sss.so use_first_pass
    auth        required      pam_deny.so
      
    account     required      pam_unix.so
    account     sufficient    pam_localuser.so
    account     sufficient    pam_succeed_if.so uid < 500 quiet
    account     [default=bad success=ok user_unknown=ignore] pam_sss.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_sss.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_sss.so
    session     optional      pam_mkhomedir.so 

    7. 启动服务

    chmod 600 /etc/sssd/sssd.conf
    /etc/init.d/sssd restart

    4.2 通过命令行部署

    #安装程序
    yum install openldap-clients nss-pam-ldapd -y
    yum install authconfig sssd-ldap sssd -y 
     
    #配置系统授权使用sss和ldap
    authconfig  --enablemkhomedir 
     --enableldaptls
     --enableldap
     --enableldapauth
     --ldapserver=ldaps://<ldap-server-ip>
     --ldapbasedn="dc=kwang,dc=com"
     --enableshadow
     --update
    
    #调整参数
    sed -i '/uid >= 500/s/^/#/' /etc/pam.d/system-auth-ac
    sed -i '/uid >= 500/s/^/#/' /etc/pam.d/password-auth-ac
    sed -i '/[domain/default]/aldap_tls_reqcert = never' /etc/sssd/sssd.conf
    /etc/init.d/sssd restart

    4.3 ldap 常用操作

    1. 验证连通性

    getent passwd kwang
    id kwang

    2. 缓存刷新

    #一般情况手动刷新缓存
    sss_cache -E
      
    #sssd会将缓存信息保存在本地,特殊情况下,缓存存在冲突的情况,可以删除本地缓存,重启服务
    rm -rf /var/lib/sss/db/*

    至此,OpenLDAP server端和client端均已部署完成。

    【参考资料】

    [1].  CentOS6.7 安装配置LDAP Server

    [2]. CentOS 6.9下OpenLDAP 的安装与配置

  • 相关阅读:
    Django之F和Q查询
    Django 调试models 输出的SQL语句 定位查看结果
    win10无法开启网络发现怎么办 如何启用网络发现
    关系型数据库和非关系数据库区别
    SSM项目——乐淘商城话述1.0
    微服务简历V1.0
    Spring cloud 项目———酷派手机商城 (话术)1.0
    第四轮面试
    第三轮面试
    02技能点面试题汇总
  • 原文地址:https://www.cnblogs.com/lemonu/p/11228429.html
Copyright © 2020-2023  润新知