ldap本人感觉挺有技术含量的,需要多多联系,对了声明一下本人在uplooking中学习过,所有出现uplooking字眼不要惊讶,知识都是我一点一点总结,写出来的,没有做任何抄袭。



ldap 清凉级别访问协议 用户集中管理

用户集中管理的软件

openldap nis网络信息服务 他是CS结构 比较麻烦 one dinectory windows的AD


-------------------------------------------------

open l dap 是一个协议 只要程序支持这个协议就都可以用 (里面的数据支持在AD里导入)

他的前身是dap 有一个致命的弱点 不支持tcp/ip协议


ldap的优势

1 他是一个协议

2 可以跨平台只要支持这个协议

3 只限于读多 写少 (读的比较快)



ldap仅仅限制于身份验证


ldap的数据存储结构 是树形结构根据域名来设计

com

uplooking

| |

中国 美国

| |

北京 州


ldp有自己的名词 比如:


dc----------(地里位置 域组件)

ou---------- (组织单元比作一个容器可以存放东西) 放的是对象

dn -----------(区别名称 )

属性----对象的属性

所有的属性 在一块成为属性类

所有的对象 在一块成为对象类

属性类是用来描述 对象类



生活环境中什么使用要用

1 客户端要登录的生活需要服务器验证 的 有: 网吧,大学的校园网络


ldap -------- 客户端



2 三个服务 ftp maill sshd 都需要身份验证, 可以在公共的一台服务器上验证他的三个身份验证



———— ftp

ldap ———— maill、

———— sshd


--------------------------------------------

配置openldop



[root@xu chroot]# yum install openldap openldap-servers


openldap 协议包

openldap-servers 服务器端



[root@xu chroot]# ls /etc/openldap/ -----------配置文件

cacerts/ ldap.conf slapd.conf

DB_CONFIG.example schema/



ldap.conf -------------如果你作为客户端 这是客户端的配置文件

slapd.conf -------------这个是serVer 端的配置文件

schema/ -------------- 这个文件夹里都是架构模板文件 他可以帮我们生存对象类和属性类

里面有个nis.schema 可以满足我们的所有需求


vim nis.schema


定义属性 天书目录结构 描述信息

49 attributetype ( 1.3.6.1.1.1.1.2 NAME 'gecos'

50 DESC 'The GECOS field; the common name'

51 EQUALITY caseIgnoreIA5Match

52 SUBSTR caseIgnoreIA5SubstringsMatch

53 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )



161 objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount'

162 DESC 'Abstraction of an account with POSIX attributes'

163 SUP top AUXILIARY

164 MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )---------------我用这些属性来描述 posixAccount' 对象

165 MAY ( userPassword $ loginShell $ gecos $ description ) )

166




[root@www openldap]# cd /etc/openldap/

[root@xu openldap]# vim slapd.conf



5 include /etc/openldap/schema/core.schema ------------定义模板

6 include /etc/openldap/schema/cosine.schema

7 include /etc/openldap/schema/inetorgperson.schema

8 include /etc/openldap/schema/nis.schema



85 database bdb ----波克力 开发的数据库的意思

86 suffix dc=bj,dc=uplooking,dc=com" ----------------定义 dc区域

87 rootdn(区别名称) "cn=admin,dc=bj,dc=uplooking,bc=com"

rootpw 123--------------------(设置密码用俩个tab分割)



dn 就是区别这个的

张三 cn=张三 ou=it dc=bj dc=uplooking

cn=张三 ou=ka dc=bj dc= uplooking



97 directory /var/lib/ldap-------------ldap的数据库都在这里

100 index objectClass eq,pres -----------------索引 这些是用来作ldap 优化的

101 index ou,cn,mail,surname,givenname eq,pres,sub

102 index uidNumber,gidNumber,loginShell eq,pres

103 index uid,memberUid eq,pres,sub

104 index nisMapName,nisMapEntry eq,pres,sub




[root@xu openldap]# cp DB_CONFIG.example /var/lib/ldap/DB_CONFIG

[root@xu openldap]# ls /var/lib/ldap/ ------重启服后会在这里生成数据库 必须有DB_CONFIG这个文件

[root@localhost ~]# chown ldap /var/lib/ldap/DB_CONFIG ------必须要该

[root@xu openldap]# service ldap restart 重启服务



生成数据文件


useradd ldap1 设置密码

useradd ldap2 设置密码

useradd ldap3 设置密码



[root@xu openldap]# grep ldap[1-3] /etc/passwd > /tmp/users.txt --------------提取出用户和组信息

[root@xu openldap]# grep ldap[1-3] /etc/group > /tmp/groups.txt --------------提取出用户和组信息


[root@xu migration]# cd /usr/share/openldap/migration/ ------------这里的的东西可以帮我们声称数据库文件



vim migrate_common.ph


71 $DEFAULT_MAIL_DOMAIN = "bj.uplooking.com"; ------这里改成和服务器上一样的

72

73 # Default base

74 $DEFAULT_BASE = "dc=bj,dc=uplooking,dc=com";

75




[root@xu migration]# ./migrate_base.pl > /tmp/uplooling.ldif ----------------- ld i信息 f 格式 声称了ou 生成ldap主文件


里面就是ldap的格式


第一部分是最重要的 定级域

1 dn: dc=bj,dc=uplooking,dc=com

2 dc: bj

3 objectClass: top

4 objectClass: domain

5

36 dn: ou=People,dc=bj,dc=uplooking,dc=com

37 ou: People

38 objectClass: top

39 objectClass: organizationalUnit

40

41 dn: ou=Group,dc=bj,dc=uplooking,dc=com

42 ou: Group

43 objectClass: top

44 objectClass: organizationalUnit

45




有了ou 有对象了 里面的数值没有还


用导出的文件生成数据库数据


[root@xu migration]# ./migrate_passwd.pl /tmp/users.txt > /tmp/users.ldif ------------这里的所有内容只是一个用户的信息

[root@xu migration]# ./migrate_group.pl /tmp/groups.txt > /tmp/groups.ldif -----------------------------这里是组的信息



导入到数据库去

这的密码是admin的密码

ldapadd -x -D "cn=admin,dc=bj,dc=uplooking,dc=com" -w 123 -f /tmp/uplooling.ldif ------导入域进去

ldapadd -x -D "cn=admin,dc=bj,dc=uplooking,dc=com" -w 123 -f /tmp/groups.ldif ----------导入用户信息

ldapadd -x -D "cn=admin,dc=bj,dc=uplooking,dc=com" -w 123 -f /tmp/users.ldif ---------导入用户信息

u

信息的文件,注 uplooking.ldif 必须最先导入。

-x 简单验证

-D 指定身份

-W 提示输入口令

ldapsearch -x -w 123 -h 127.0.0.1 -D "cn=admin,dc=bj,dc=uplooking,dc=com" -b "dc=bj,dc=uplooking,dc=com" -----检查




ssh 192.168.1.113 -X 不加X只能悄命令 加X 可以开启图形

客户端 用 系统-- 管理-- 验证 用户信息 设置ldap

[root@xu migration]# system-config-authentication ----配置ldap



登录 测试 su - test1



------------------------------------------------------------

每次添加 转换方法


[root@xu openldap]# cd /usr/share/openldap/migration/


用 ldapadd

ldappsearch 太麻烦



用 用户管理工具

WEB

phpLDAPadmin

LAM




---------------------------

phpLDAPadmin


yum install php-ldap -----------ldap和php连接的包

[root@xu Desktop]# tar -xvf phpldapadmin-1.2.0.4.tgz ----解压

[root@xu ldap]# mv phpldapadmin-1.2.0.4 /var/www/html/ldap

[root@xu ldap]# service httpd restart`



登录

firefox http://localhost/ldap


[root@xu ldap]# cd /var/www/html/ldap/config/

[root@xu config]# cp config.php.example config.php ---修改配置文件





---------------------------

apache 和ldap 的结合


[root@xu Desktop]# yum install mod_authz_ldap


[root@xu Desktop]# vim /etc/httpd/conf/httpd.conf

[root@xu Desktop]# ls /etc/httpd/modules/mod_authz_ldap.so 添加了这个模块

vim /etc/httpd/conf.d/authz_ldap.conf--------------------------配置文件

5

6 LoadModule authz_ldap_module modules/mod_authz_ldap.so

7

8 <IfModule mod_authz_ldap.c>

9 <Directory "/var/www/html/">

10 AuthzLDAPMethod ldap

11 AuthzLDAPServer 192.168.1.113

12 authzldapuserbase ou=people,dc=bj,dc=uplooking,dc=com

13 AuthzLDAPUserKey uid

14 AuthzLDAPUserScope base

15 AuthType basic

16 authname "test"

17 require valid-user

18 </directory>

19

20 # <Location /private>

21 # AuthzLDAPEngine on



service httpd restart 重启服务