OpenLDAP 服务端安装与配置以及原理
OpenLDAP 服务端安装与配置一、什么是LDAP目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关 系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生是用来查询的,就好象它的名字 一样 二、LDAP特点
三、LDAP组织数据结构
四、OpenLDAP 安装方式基于UNIX 发行操作系统环境下安装OpenLDAP 软件一般有两种方式:通过源码编译安装或是通过yum源直接安装rpm包。下面会笔者仅正对与yum的方式安装。这里就不在赘述安装方式,yum源可以使用阿里云源,安装OpenLDAP服务器需要提供守护进程和传统的OpenLDAP 管理配置工具,主要是slapd 和ldap-utils 套件。 前置条件
# 获取配置文件 cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf # 获取数据库配置文件 cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # 修改权限 chown -R ldap.ldap /etc/openldap chown -R ldap.ldap /var/lib/ldap 五、OpenLDAP 配置1、slapd.conf配置文件参数[root@ldap ~]# egrep -v "#|^$" /etc/openldap/slapd.conf # include 行代表当前OpenLDAP 服务包含的schema 文件 include /etc/openldap/schema/corba.schema include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/openldap.schema include /etc/openldap/schema/ppolicy.schema include /etc/openldap/schema/collective.schema include /etc/openldap/schema/sudo.schema include /etc/openldap/schema/openssh-lpk-openldap.schema # OpenLDAP 服务允许连接的客户端版本。 allow bind_v2 # OpenLDAP 进程启动时,pid 文件存放路径。 pidfile /var/run/openldap/slapd.pid # OpenLDAP 参数文件存放的路径。 argsfile /var/run/openldap/slapd.args # 传输加密的配置信息 TLSCACertificatePath /etc/openldap/certs TLSCertificateFile ""OpenLDAP Server"" TLSCertificateKeyFile /etc/openldap/certs/password database config access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none database monitor access to * by dn.exact="gidNumber=0+uidNumber=0,cn=auth" read by dn.exact="cn=root,dc=company,dc=com" read by * none # 指定OpenLDAP 数据库类型。 database bdb # 指定OpenLDAP 服务域名(DN) suffix "dc=company,dc=com" checkpoint 1024 15 # 指定OpenLDAP 服务管理员信息(可以理解为创建高级管理员root)。 rootdn "cn=root,dc=com" # 指定OpenLDAP 服务管理员密码,使用slappasswd -s your_password来获取加密密码 rootpw {SSHA}hjqcrGsPL6H58QAS0QHBvihVS7x2HHKG # 指定OpenLDAP 数据库文件的存放目录。 directory /var/lib/ldap # 创建OpenLDAP 索引。 index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,sub index nisMapName,nisMapEntry eq,sub 2、启动服务并查询启动ldap服务: service slapd start 查询LDAP的目录条目,首先我们介绍一下ldapsearch命令,具体可以使用man帮助手册查看。 查询,看看结果返回是否正常,我们可以看到No such object,因为我们什么数据也没有添加,所以查询的结果为零,到此我们的配置都是正常的。 [root@ldap ~]# ldapsearch -x -D "cn=root,dc=com" -h 10.0.40.21 -W Enter LDAP Password: # extended LDIF # # LDAPv3 # base <> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1 3、为ldap server添加数据为ldap添加用户数据,有四种方法,分别如下,我们选择第四种方法进行试验。
[root@ldap ~]# vim base.ldif #基本DN dn: dc=company,dc=com objectClass: organization objectClass: dcObject dc: company ou: company #用户 dn: ou=people,dc=com objectClass: top objectClass: organizationalUnit ou: people #群组 dn: ou=group,dc=com objectClass: top objectClass: organizationalUnit ou: group 通过ldapadd导入数据: [root@mldap ~]# ldapadd -x -D "cn=root,dc=com" -w password -h 10.0.40.21 -f base.ldif adding new entry "dc=company,dc=com" adding new entry "ou=people,dc=com" adding new entry "ou=group,dc=com" 回显反馈的结果添加成功,使用另一台机验证添加结果: [root@test01 ~]# ldapsearch -x -D "cn=root,dc=com" -w password -h 10.0.40.21 -b "dc=company,dc=com" -LLL dn: dc=company,dc=com objectClass: organization objectClass: dcObject dc: company o: company dn: ou=people,dc=com objectClass: top objectClass: organizationalUnit ou: people dn: ou=group,dc=com objectClass: top objectClass: organizationalUnit ou: group
[root@mldap ~]# cat user.ldif group.ldif dn: uid=test1,ou=people,dc=com objectClass: posixAccount objectClass: top objectClass: inetOrgPerson objectClass: shadowAccount gidNumber: 0 givenName: test1 sn: test1 uid: test1 homeDirectory: /home/test1 loginShell: /bin/bash shadowFlag: 0 shadowMin: 0 shadowMax: 99999 shadowWarning: 0 shadowInactive: 99999 shadowLastChange: 12011 shadowExpire: 99999 cn: test1 uidNumber: 24422 userPassword:: e1NIQX10RVNzQm1FL3lOWTNsYjZhMEw2dlZRRVpOcXc9 dn: cn=devops,ou=group,dc=com objectClass: posixGroup objectClass: top cn: DBA memberUid: test1 gidNumber: 10673
[root@ldap ~]# ldapadd -x -D "cn=root,dc=com" -w password -h 10.0.40.21 -f group.ldif adding new entry "cn=devops,dc=com" [root@ldap ~]# ldapadd -x -D "cn=root,dc=com" -w password -h 10.0.40.21 -f user.ldif adding new entry "uid=test1,dc=com"
ldapsearch -x -D "cn=root,dc=com" -LLL 六、集成图形界面phpldapadmin1.安装rpm包yum -y install phpldapadmin 2.修改http配置文件修改/etc/httpd/conf.d/phpldapadmin.conf # # Web-based tool for managing LDAP servers # Alias /phpldapadmin /usr/share/phpldapadmin/htdocs Alias /ldapadmin /usr/share/phpldapadmin/htdocs <Directory /usr/share/phpldapadmin/htdocs> <IfModule mod_authz_core.c> # Apache 2.4 Require local </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory> 3.修改登录用户变量vim /etc/phpldapadmin/config.php #找到用户名变量 $servers->setValue('login','attr','uid'); #修改为 $servers->setValue('login','dn'); 4.启动httpd服务器service httpd start 5.登录游览器验证
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |