美文网首页
OpenLDAP 服务端配置(一): 基本配置

OpenLDAP 服务端配置(一): 基本配置

作者: 木木小刀 | 来源:发表于2020-03-04 00:22 被阅读0次

    本文基于 OpenLDAP 的安装后整理。

    基本服务安装


    1. 安装相关软件及依赖
    yum install -y  ntpdate openldap-servers openldap-devel \
          openldap openldap-servers-sql openldap-clients 
    
    1. 同步系统时间, 并加入定时任务
    ntpdate 0.cn.pool.ntp.org
    echo '0 2 * * * /usr/sbin/ntpdate 0.cn.pool.ntp.org && /sbin/hwclock -w > /dev/null 2>&1' >> /var/spool/cron/root
    
    1. 配置 slapd 服务开机自启动
    chkconfig slapd on
    
    1. 配置防火墙及 Selinux
      需要将iptables关闭或者开放对应的 389及636端口。
    service iptables stop
    chkconfig iptables off
    setenforce 0
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    
    1. 配置 slapd.conf 文件
    • 拷贝默认配置文件并修改权限
    cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
    chown -R ldap: /etc/openldap/*
    chown -R ldap: /var/lib/ldap/*
    
    • 生成配置文件中 rootpw 项的密码
    [root@localhost openldap]# slappasswd -s 123456qwerty
    {SSHA}AKJA2xxw9SIs126ks2Eb7Gb/dQxAwV14
    
    • 修改配置文件 /etc/openldap/slapd.conf 并按如下说明修改相应的配置项
    #  指定OpenLDAP默认数据库引擎为 BerkeleyDB 
    database        bdb
    # 指定OpenLDAP的服务域名(DN) 
    suffix          "dc=domain,dc=com"
    # 指定OpenLDAP的服务管理员信息
    rootdn          "cn=admin,dc=domain,dc=com"
    # 指定OpenLDAP的服务管理员密码, 前面用命令生成
    rootpw         {SSHA}AKJA2xxw9SIs126ks2Eb7Gb/dQxAwV14
    
    • 配置完成后生成数据库
    slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/ 
    chown -R ldap: /etc/openldap/*
    chown -R ldap: /var/lib/ldap/*
    service slapd restart
    

    需要注意的是, 在 slaptest 命令生成的文件为 root用户所有 , 需要用 chown 命令修改其属主, 然后再重启 slapd 服务

    用户添加及整合


    可以借助开源工具 migrationtools 将已有的 用户、密码以及用户组添加到openldap中。具体方式如下:

    1. 安装 migrationtools 工具

    先安装工具

    yum install -y migrationtools
    

    根据实际域名,修改 /usr/share/migrationtools/migrate_common.ph 配置文件中的如下字段

    # Default DNS domain
    $DEFAULT_MAIL_DOMAIN = "domain.com";
    
    # Default base
    $DEFAULT_BASE = "dc=domain,dc=com";
    
    1. 创建 OpenLDAP 的根域条目

    使用工具 migrate_base.pl 生成根域条目并导入到OpenLDAP中:

    /usr/share/migrationtools/migrate_base.pl > base.ldif
    ldapadd -x -W -D 'cn=admin, dc=domain, dc=com' -f base.ldif
    

    输入前面设置的 admin 密码即可将根域条目导入。

    1. 使用该工具将已有的用户,密码及用户组添加到 ldap 中, 假定我们添加pass文件中的后5行记录
    tail -n 5 /etc/group > group.list
    tail -n 5 /etc/passwd > user.list
    /usr/share/migrationtools/migrate_passwd.pl user.list > user.ldif
    /usr/share/migrationtools/migrate_group.pl group.list > group.ldif
    ldapadd -x -W -D 'cn=admin, dc=domain, dc=com' -f group.ldif
    ldapadd -x -W -D 'cn=admin, dc=domain, dc=com' -f user.ldif
    

    加密传输设置


    默认情况下, OpenLDAP 服务端与客户端之间使用明文进行验证、查询等操作。 由于互联网上数据传输存在不安全的因素, 所以需要配置OpenLDAP来支持加密传输数据。

    1. 自建 CA证书

    自己创建 CA 证书的基本步骤如下:

    • 安装 openssl 软件
    yum install -y openssl openssl-devel
    
    • CA中心生成自身的密钥
    cd /etc/pki/CA/
    (umask 077 ; openssl genrsa -out private/cakey.pem 2048 )
    

    为了保证密钥安全, 需要将其权限设置为 700, 所以用 umask 077 修改mask值

    • CA 签发自身公钥
    openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 36500
    

    -days 36500 设置证书的有效期时长, 这里设置100年, 证书到期会导致服务不可用,所以时间尽量的长一些。

    其中以下字段需要根据实际情况填写:

    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:Shanghai
    Locality Name (eg, city) [Default City]:Shanghai
    Organization Name (eg, company) [Default Company Ltd]:domain.com
    Organizational Unit Name (eg, section) []:Tech
    Common Name (eg, your name or your server's hostname) []:ldap.domain.com
    Email Address []:ldap@domain.com
    
    • 创建数据库文件及证书序列文件
    touch serial index.txt
    echo '01' > serial
    

    以上操作都是在路径 /etc/pki/CA 下进行

    2. 生成 OpenLDAP 证书

    • 创建 OpenLDAP key 存放路径
    mkdir -p /etc/openldap/cacerts
    cd /etc/openldap/cacerts
    

    并在该路径下生成以下密钥

    • OpenLDAP 服务端密钥生成
    umask 077; openssl genrsa -out ldapkey.pem 1024
    
    • OpenLDAP 服务端向CA申请签署请求
    openssl req -new -key ldapkey.pem -out ldap.csr -days 36500
    

    根据前面 CA 签发自身密钥的输入信息,填入下面的字段

    Country Name (2 letter code) [XX]:CN
    State or Province Name (full name) []:Shanghai
    Locality Name (eg, city) [Default City]:Shanghai
    Organization Name (eg, company) [Default Company Ltd]:domain.com
    Organizational Unit Name (eg, section) []:Tech
    Common Name (eg, your name or your server's hostname) []:ldap.domain.com
    Email Address []:ldap@domain.com
    

    除 Common Name 、 Email Address 外,其他值必须和CA前面的信息保持一致, 否则无法得到验证。

    • CA核实并签发证书
    openssl ca -in ldap.csr -out ldapcert.pem -days 36500
    
    • 复制 cacert.pem 到该目录
    cp /etc/pki/CA/cacert.pem /etc/openldap/cacerts/
    

    3. OpenLDAP TLS/SASL 部署

    • 修改证书及目录权限
    chown -R ldap: /etc/openldap/cacerts/
    chmod -R 400  /etc/openldap/cacerts/*
    
    • 修改 OpenLDAP 配置文件, 添加证书配置

    修改配置文件 /etc/openldap/slapd.conf 中的下列配置项

    TLSCACertificateFile /etc/openldap/cacerts/cacert.pem
    TLSCertificateFile /etc/openldap/cacerts/ldapcert.pem
    TLSCertificateKeyFile /etc/openldap/cacerts/ldapkey.pem
    TLSVerifyClient never
    
    • 开启 OpenLDAP SSL功能
      修改配置文件 /etc/sysconfig/ldap 中的下列配置项
    SLAPD_LDAPS=yes
    
    • 加载slapd数据库文件
    rm -rf /etc/openldap/slapd.d/*
    slaptest -u
    slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/   # 生成配置文件
    chown -R ldap:ldap /etc/openldap/slapd.d/
    service slapd restart
    

    4. 验证配置

    • 确认当前套接字是否通过CA 验证
    openssl s_client -connect localhost:636 -showcerts -state \
        -CAfile /etc/openldap/ssl/cacert.pem
    
    ldapsearch -x -H ldaps://192.192.152.2: -b dc=domain,dc=com \
        -D "cn=admin,dc=domain,dc=com" -W
    # 根据提示输入admin密码
    

    相关文章

      网友评论

          本文标题:OpenLDAP 服务端配置(一): 基本配置

          本文链接:https://www.haomeiwen.com/subject/yucdlhtx.html