openldap安装配置使用教程

文章目录

      • 一、初始化环境
      • 二、安装OpenLDAP
      • 三、配置openldap
        • 3.1 配置OpenLDAP管理员密码
        • 3.2 修改olcDatabase={2}hdb.ldif文件
        • 3.3 修改olcDatabase={1}monitor.ldif文件
        • 3.4 验证OpenLDAP的基本配置及启动openldap
        • 3.5 配置_OpenLDAP数据库
        • 4.7 修改migrate_common.ph文件
        • 4.8 配置openldap基础数据
      • 四、开启OpenLDAP日志访问功能
      • 五、使用phpldapadmin工具管理OpenLDAP
      • 六、查询OpenLDAP相关信息
      • 七、修改OpenLDAP 默认监听端口为1389
      • 八、Openldap禁止匿名登录
      • 九、 CentOS主机使用ldap用户认证配置
      • 十、 Ubuntu主机使用ldap用户认证配置
      • 十一、 LDAP数据的备份与恢复

PS:系统CentOS 7.7、slapd 2.4.44

一、初始化环境

  • 主机时间同步、关闭selinux以及firewalld
yum install  ntp* -y 
systemctl start ntpd    &&  systemctl enable ntpd 
setenforce 0
systemctl disable firewalld.service && systemctl stop firewalld.service

二、安装OpenLDAP

  • 使用yum 安装
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools

三、配置openldap

注意:从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,建议不再使用slapd.conf作为配置文件

3.1 配置OpenLDAP管理员密码

  • 使用slappasswd 命令生成一串加密后的密码、后面配置文件中需要使用
    slappasswd -s 123456
    {SSHA}+SwVrC910PpWz58wjvaOe0u+tKdHamVp

3.2 修改olcDatabase={2}hdb.ldif文件

文件路径:/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

  • 修改olcDatabase={2}hdb.ldif文件,对于该文件增加一行
    olcRootPW: {SSHA}+SwVrC910PpWz58wjvaOe0u+tKdHamVp
  • 然后修改域信息:
    olcSuffix: dc=neoclub,dc=cn
    olcRootDN: cn=admin,dc=neoclub,dc=cn

3.3 修改olcDatabase={1}monitor.ldif文件

文件路径: /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif

  • 修改中的dn.base是修改OpenLDAP的管理员的相关信息的
    olcAccess: {0}to * by dn.base=“gidNumber=0+uidNumber=0,cn=peercred,cn=extern
    al,cn=auth” read by dn.base=“cn=admin,dc=neoclub,dc=cn” read by * none

3.4 验证OpenLDAP的基本配置及启动openldap

  • 验证配置命令:
    slaptest -u 最后一行出现config file testing succeeded 就说明配置文件无问题
  • 启动OpenLDAP服务
systemctl enable slapd
systemctl start slapd 
systemctl status slapd

3.5 配置_OpenLDAP数据库

  • OpenLDAP默认使用的数据库是BerkeleyDB,/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径,开始配置OpenLDAP数据库,使用如下命令:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap

3.6 导入基本的Schema

  • 导入基本Schema,使用如下命令:
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

4.7 修改migrate_common.ph文件

  • migrate_common.ph文件主要是用于生成ldif文件使用,修改migrate_common.ph文件
vim /usr/share/migrationtools/migrate_common.ph +71
$DEFAULT_MAIL_DOMAIN = "neoclub.cn";
$DEFAULT_BASE = "dc=neoclub,dc=cn";
$EXTENDED_SCHEMA = 1;

4.8 配置openldap基础数据

  • 使用migrate_base.pl 生产base.ldif
/usr/share/migrationtools/migrate_base.pl   > /tmp/base.ldif
cat  /tmp/base.ldif  (可以只保留最上面这个行)
dn: dc=neoclub,dc=cn
dc: neoclub
objectClass: top
objectClass: domain
导入数据基
ldapadd -x -D "cn=admin,dc=neoclub,dc=cn"  -h  172.16.11.10:389  -W -f /tmp/base.ldif
若无此步,则不能创建组织、组、用户通过web 管理页面会报错

四、开启OpenLDAP日志访问功能

  • 默认情况下OpenLDAP是没有启用日志记录功能的,但是在实际使用过程中,我们为了定位问题需要使用到OpenLDAP日志。
cat > /tmp/loglevel.ldif << EOF
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
EOF
  • 导入到OpenLDAP中,并重启OpenLDAP服务,如下:
    ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/loglevel.ldif
    systemctl restart slapd
  • 修改rsyslog配置文件,并重启rsyslog服务,如下:
    cat >> /etc/rsyslog.conf << “EOF”
    local4.* /var/log/slapd.log
    EOF
  • 查看OpenLDAP日志,如下
    tail -f /var/log/slapd.log

五、使用phpldapadmin工具管理OpenLDAP

  • 使用docker 安装phpldapadmin
docker run  --restart=always -d --privileged  \
-p 80:80 --name ldapadmin  \
--env PHPLDAPADMIN_HTTPS=false   \
--env PHPLDAPADMIN_LDAP_HOSTS="#PYTHON2BASH:[{'172.16.11.10': [{'server': [{'tls': False}]},{'login': [{'bind_id': 'cn=admin,dc=neoclub,dc=cn'},{'bind_pass': '123456'}]}]}, ]" \ 
--detach osixia/phpldapadmin:stable
  • 浏览器访问:http://172.16.11.10 登录后,可以根据自己需求创建组织、组、用户等等

六、查询OpenLDAP相关信息

  • 查询OpenLDAP全部信息,使用如下命令:
    ldapsearch -x -b “dc=neoclub,dc=cn” -H ldap://172.16.11.10
  • 查询某一个特定用户test的信息
    ldapsearch -LLL -x -D “cn=admin,dc=neoclub,dc=cn” -w “123456” -b “dc=neoclub,dc=cn” ‘uid=test’
  • 查询某一个特定用户组test的信息
    ldapsearch -LLL -x -D “cn=admin,dc=neoclub,dc=cn” -w “123456” -b “dc=neoclub,dc=cn”
    ‘cn=test’

七、修改OpenLDAP 默认监听端口为1389

  • 修改/etc/sysconfig/slapd文件
    SLAPD_URLS=”ldapi://0.0.0.0:1389/ ldap://0.0.0.0:1389/”
    重启slapd 服务即可。

八、Openldap禁止匿名登录

  • 修改如下
/etc/openldap/cn=config/cn=config.ldif
添加:
olcDisallows: bind_anon
olcRequires: authc
/etc/openldap/cn=config/olcDatabase={-1}frontend.ldif
添加:
olcRequires: authc

重启slapd 服务即可。

九、 CentOS主机使用ldap用户认证配置

  • 安装nss-pam-ldapd 客户端认证使用模块
    yum install -y nss-pam-ldapd
  • 可以使用图形化界面配置
    执行authconfig-tui -->选择ldap 认证–> next --> 填写ldap 的地址和域信息–>保存
  • 修改/etc/nslcd.conf 文件,解决匿名不能登录认证
    binddn cn=admin,dc=neoclub,dc=cn
    bindpw 123456
    重启nslcd 服务:systemctl restart nslcd
  • 解决ldap用户登录后不能创建家目录报错
    authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=ldap://172.16.11.10:389 --ldapbasedn=“dc=neoclub,dc=cn” --update

十、 Ubuntu主机使用ldap用户认证配置

  • 软件安装:
    apt-get install ldap-utils libpam-ldap libnss-ldap nslcd -y
    安装过程中提示填写ldap相关信息:ldap server 地址,base dc等,信息保存在/etc/ldap.conf中,可通过dpkg-reconfigure ldap-auth-config重新配置
  • 认证方式中添加ldap:
    root@ldapclient:~# auth-client-config -t nss -p lac_ldap
  • 使认证通过后自动创建用户家目录:
    vi /etc/pam.d/common-session,追加内容:
    session required pam_mkhomedir.so skel=/etc/skel umask=0077
  • 配置开启ldap认证方式
    root@ldapclient:~# pam-auth-update
  • 配置可在本机通过passwd更改用户密码:
    vi /etc/pam.d/common-password,除去其中的use_authtok参数(第26行)
  • 重启相关服务:
    systemctl restart nslcd

十一、 LDAP数据的备份与恢复

  • 数据备份
    • 通过slapcat备份,slapcat命令只能在openldap服务器上执行
      slapcat -n 2 -l   /root/ldapbackup_neoclub_cn.ldif
      
    • 通过ldapsearch备份,可以在服务器端也可以在客户端执行
      dapsearch -x -D "cn=admin,dc=neoclub,dc=cn" -w "123456" -b 'dc=neoclub,dc=cn' -LLL -H ldap://172.16.11.10 > /root/ldapbackup_neoclub_cn.ldif
      
  • 数据恢复
    • openldap的数据恢复,就是通过slapadd命令实现的
    systemctl stop slapd
    rm -fr /var/lib/ldap/*
    slapadd -l  /root/ldapbackup_neoclub_cn.ldif
    cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    chown ldap:ldap -R /var/lib/ldap/
    systemctl start slapd
    systemctl status slapd
    

你可能感兴趣的:(Linux,openldap)