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 重启服务