千家信息网

openldap的安装与配置

发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,今天小编给大家分享的是openldap安装与配置的详细介绍,相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧。openldap的介绍与安装传统账户管理存在的
千家信息网最后更新 2024年11月11日openldap的安装与配置

今天小编给大家分享的是openldap安装与配置的详细介绍,相信大部分人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,话不多说,一起往下看吧。

openldap的介绍与安装

传统账户管理存在的问题

  • 系统账号无法集中管理
  • 系统账号权限无法集中控制
  • 系统账号授权无法集中管理
  • 系统账号审计无法集中管理
  • 系统账号密码策略无法集中控制

简介

  • OpenLDAP是一款轻量级目录访问协议(Lightweight Directory Access Protocol)
    • 目前有两个家标准
    • X.500:openldap
    • LDAP:
  • 支持TCP/IP协议: 用户读取和搜索比较方便
  • 目录结构的信息是按照树形结构组织的
  • DN:区别名属性,相当于数据库中的字段概念

优点

  • 基于X.500标准协议
  • 提供静态数据查询搜索
  • 基于推拉的机智进行节点间数据的同步(复制),提供TLS,SASL的安全认证机制
  • 基于第三方开源负载均衡软件进行高可用方案解决
  • 元素才赢简单的文本字符串,而非特殊字符,便于维护目录树条目
  • 集中认证管理
  • 默认使用TCP/ZP协议传输条目数据,通过查找操作实现对目录条目信息的读写操作
  • 费用低,配置简单,功能强大,管理容易
  • 基于ACL控制用户访问数据的权限,从而保证数据的安全性
  • 支持Nginx,HTTP,SAMBA,SVN,JENKINS等平台的账户管理

功能

  • 查询
  • 更新
  • 同步
  • 认证和管理

openLDAP的目录架构

目前的架构分为如下两种:

  • 互联网命名组织架构

    • 树根: 一般定义国家(c=CN)或者域名(dc=com)
    • 一个或者多个组织单元:组织(o),组织单元(ou)
    • 一个组织单元可以包含员工,设备等信息
  • 企业级命名组织架构

openLDAP的工作模型

流程:

  • 客户端向服务端发起验证请求
  • 服务器端接收到请求之后,并通过slapd进程向后端的数据库进行查询
  • slapd将查询结果返回给客户端即可

schema介绍与用途

  • 是一个标准,定义了openLDAP目录树对象和属性存取方式
  • 主要用于控制目录中各种条目所拥有的对象类以及各种属性的定义
  • 通过自身规范来避免不合法数据存在于目录中
  • 保证目录树信息的完整性,唯一性

OpenLDAP目录条目概述

  • objectClass分为如下几类

    • structural: 结构型
    • auxiliary:辅助型
    • abstract: 抽象型
  • 属性概述
    • dn: 唯一标识名
    • rdn: 相对标识名

OpenLDAP安装配置

YUM安装

  • 环境与软件版本
    • centos7.5+
    • openldap2.4.44版本,hdb
~]# yum -y install wget curl git~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo~]# yum -y install epel-release~]# yum -y install openldap openldap-servers openldap-clients compat-openladp openldap-devel migrationtools
初始化配置
~]# cd /etc/openldap/~]# mv slapd.d/ slapd.d.bak~]# mkdir slapd.d && slappasswd    #生成密钥New password: Re-enter new password: {SSHA}CYZ2put971vDLOeZVvbG7W9E3aOjantN~]# cp /usr/share/openldap-servers/slapd.ldif /etc/openldap/#### 配置schema加载~]# vim /etc/openldap/slapd.ldif cn: schemainclude: file:///etc/openldap/schema/core.ldifinclude: file:///etc/openldap/schema/collective.ldifinclude: file:///etc/openldap/schema/corba.ldifinclude: file:///etc/openldap/schema/cosine.ldifinclude: file:///etc/openldap/schema/duaconf.ldifinclude: file:///etc/openldap/schema/dyngroup.ldifinclude: file:///etc/openldap/schema/inetorgperson.ldifinclude: file:///etc/openldap/schema/java.ldifinclude: file:///etc/openldap/schema/misc.ldifinclude: file:///etc/openldap/schema/nis.ldifinclude: file:///etc/openldap/schema/openldap.ldifinclude: file:///etc/openldap/schema/pmi.ldifinclude: file:///etc/openldap/schema/ppolicy.ldifolcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,c n=auth" read by dn.base="cn=admin,dc=neuvision,dc=ai" read by * noneolcSuffix: dc=neuvision,dc=aiolcRootDN: cn=admin,dc=neuvision,dc=aiolcRootPW: {SSHA}WslU/LDXGf/WTLLYGafxBzmT6y1CDabz~ ]# slapadd -n 0 -F /etc/openldap/slapd.d -l slapd.ldif      #生成配置~]# chown -R ldap.ldap /etc/openldap/slapd.d~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG   #拷贝数据库配置文件~]# chown ldap.ldap -R /var/lib/ldap/~]# systemctl start slapd && systemctl enable slapd   #服务启动~]# vim /usr/share/migrationtools/migrate_common.ph    #导入数据脚本配置# Default DNS domain$DEFAULT_MAIL_DOMAIN = "51cto.com";# Default base $DEFAULT_BASE = "dc=51cto,dc=com";# such as person.$EXTENDED_SCHEMA = 1;~ ]# /usr/share/migrationtools/migrate_base.pl > /etc/openldap/basedomain.ldif  #生成domain(域)文件~ ]# ldapadd -x -D cn=admin,dc=51cto,dc=com -W -f /etc/openldap/basedomain.ldif    #添加条目
自定义组织
~]# mkdir /root/ldif && cd /root/ldif~]# vim config_init.ldifdn: dc=51cto,dc=comobjectClass: dcObjectobjectClass: organizationo: wanghuidc: neuvision~]# ldapadd -x -D "cn=admin,dc=51cto,dc=com" -W -f config_init.ldif ~]# ldapsearch -x -b 'dc=51cto,dc=com' '(objectClass=*)'    #查询记录~]# ldapsearch -H ldapi:/// -Y EXTERNAL -b "cn=config" -LLL -Q   #ladpi查询

OpenLDAP配置管理

客户端配置文件

系统文件: /etc/openldap/ldap.conf用户文件:$HOME/ldaprc     $HOME/.ldaprc

配置文件参数

  • BASE: 指定的DN
  • URI: LDAP服务器地址
  • SIZELIMIT: 限制返回条目大小
  • TIMELIMIT:指定搜索持续时间
  • TIMEOUT: 操作多久无返回就超时
ldapsearch -x -W -D 'cn=admin,dc=51cto,dc=com' -H ldaps://10.18.99.41   #连接ldap

server全局配置文件介绍

ldif配置语法

主配置文件布局如下:

dn: cn=configdn: cn=module,cn=configdn: cn=schema,cn=configdn: olcDatabase=config,cn=config

初始化域,用户&组

~ ]# /usr/share/migrationtools/migrate_base.pl > /etc/openldap/basedomain.ldif  #生成domain(域)文件# 需要创建好一些用户和组,并且将用户添加到组,groupadd DEV,useradd wanghui -g DEV~]# tail -3 /etc/group  > system_groupDEV:x:1003:OPS:x:1004:QA:x:1005:~]# tail -4 /etc/passwd > system_userzhangsan:x:1000:1004::/home/zhansan:/bin/bashlisi:x:1001:1003::/home/lisi:/bin/bashwangwu:x:1002:1003::/home/wangwu:/bin/bashmazi:x:1003:1005::/home/mazi:/bin/bash~]#ldapadd -x -W -D "cn=admin,dc=51cto,dc=com" -f base.ldif ~]# ldapadd -x -W -D "cn=admin,dc=51cto,dc=com" -f group.ldif      # 添加组到ldap~]# ldapadd -x -W -D "cn=admin,dc=51cto,dc=com" -f user.ldif 

openldap的日志配置

~]# mkdir /data/logs/slapd~]# touch /data/logs/slapd/slapd.log~]# chown ldap:ldap /data/logs/slapd/ -R----- 创建日志ldif~]#  vim log.ldifdn: cn=configchangetype: modifyadd: olcLogLevelolcLogLevel: stats~]# ldapadd -Y EXTERNAL -H ldapi:/// -f log.ldif    #加载配置~]# cat /etc/openldap/slapd.d/cn\=config.ldif   #检查是否加载成功olcLogLevel: stats~]# vim /etc/rsyslog.conf     #配置日志local7.* /var/log/boot.loglocal4.* /data/logs/slapd/slapd.log~ ]# systemctl restart rsyslog~]# systemctl restart slapd

日志切割

~]# vim /etc/logrotate.d/slapd/data/logs/slapd/slapd.log {    daily    rotate 5    copytruncate    dateext    missingok}~]# systemctl restart rsyslog~]# logrotate -f /etc/logrotate.d/slapd    #测试日志切割~]# ldapsearch -x -LLL uid=wanghui   #查询用户。然后看日志是否正常

openldap图形管理

  • phpLDAPadmin: apache,php调用ldap,使用简单,功能支持不是特别好http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page
  • LADP AccountManager: https://www.ldap-account-manager.org/static/doc/manual/index.html
  • LADP Admin: windows,界面不友好

phpLDAPadmin的安装与配置

~]# yum -y install phpldapadmin ~]# vim /etc/httpd/conf.d/phpldapadmin.conf ServerName ldap.51cto.comAlias /phpldapadmin /usr/share/phpldapadmin/htdocsAlias /ldapadmin /usr/share/phpldapadmin/htdocs      # Apache 2.4    Require all granted    Require local        # Apache 2.2    Order Deny,Allow    Deny from all    Allow from 127.0.0.1    Allow from ::1  ~]# vim /etc/phpldapadmin/config.php$servers->setValue('login','attr','dn');~ ]# systemctl start httpd && systemctl enable httpd

phpldapadmin使用

  • 登陆使用(cn=admin,dc=51cto,dc=com)密码:xxx
  • 登陆之后删除dc,然后手动创建dc
~]# cat config_init.ldif dn: dc=51cto,dc=comobjectClass: dcObjectobjectClass: organizationo: wanghuidc: neuvision~]# ldapadd -x -D 'cn=admin,dc=neuvision,dc=ai' -W -f config_init.ldif 
  • 创建Group和People两个OU
 Generic: Organisational Unit
  • 在Group中添加Posix Group
  • 在People中创建UserAccount
密码类型是ssha选择对应的GID选择对应的loginshell----------返回终端查询下创建的用户~]# ldapsearch -x -LL -b '51cto,dc=com' '(uid=whui)'~]# ldapsearch -x -LL uid=whui
去除登出登陆的警告信息

~#] vim /etc/phpldapadmin/config.php

$config->custom->appearance['hide_template_warning'] = true;~#]systemctl restart httpd

以上就是openldap安装与配置的详细内容了,看完之后是否有所收获呢?如果想了解更多相关内容,欢迎关注行业资讯!

0