【redhat5.5】linux的LDAP认证服务器的配置及客户端pam网络验证实例

【1】 LDAP简介
LDAP(Lightweight Directory Access Protocol) 代表轻量级目录访问协议
LDAP 是一种非关系型数据库
LDAP 可扩展性和灵活性良好 安装和配置简单

【2】 几个重要的概念
dn : 一条记录的位置
dc : 一条记录的所属区域
ou : 一条记录的所属组织
cn/uid: 一条记录的名字/ID

【3】 LDAP数据添充原理
把一个庞大的学生档案放到LDAP里 具体步骤:
1】 建立一个"dc=ourschool,dc=org“的树根" 通过编辑"slapd.conf"来实现
2】 建立18个系分别是
dnu=computer,dc=ourschool,dc=org
dnu=film,dc=ourschool,dc=org
...
3】 在每个系建立专业 如
dnu=Linux,ou=computer,dc=ourschool,dc=org
...
4】 加学生
dn:cn=xiaoming,ou=linux,ou=computer,dc=ourschool,dc=org
5】 学生的详细信息
dn:cn=xiaoming,ou=linux,ou=computer,dc=ourschool,dc=org
objectClass: organizationalPerson
cn:xiaoming
cn:小明
sn:小明
description:a good boy
(以上是一条记录的信息,如果把他保存成LDIF文件,可以导入到LDAP数据库中)

【4】 搭建LDAP认证服务器
1】 安装服务器软件
yum -y install openldap openldap-servers
2】 编译服务器端配置文件(acl 与ldap配合,实现访问控制)
vim /etc/openldap/slapd.conf
access to *
by * read
by * auth
access to *
by self write

database bdb
suffix "dc=example,dc=com"
rootdn "cn=admin,dc=example,dc=com"
rootpw 123456

# Mode 700 recommended. (默认LDAP存放数据的目录 权限:700)
directory /var/lib/ldap

3】利用脚本创建OU,并初始化LDAPS
a】 vim /usr/usr/share/openldap/migration/migrate_common.ph
71:$DEFAULT_MAIL_DOMAIN = "example.com";
74:$DEFAULT_BASE = "dc=example,dc=com";
b】 /usr/share/openldap/migration/migrate_base.pl > /tmp/example.ldif
c】 删掉 example.ldif 中多余的选项 (空行不能省略)
cat /tmp/example.ldif
       dn: dc=example,dc=com
       dc: example
       objectClass: top
       objectClass: domain


       dn: ou=People,dc=example,dc=com
       ou: People
       objectClass: top
       objectClass: organizationalUnit


       dn: ou=Group,dc=example,dc=com
       ou: Group
       objectClass: top
       objectClass: organizationalUnit

d】创建并初始化
slapadd -vl /tmp/example.ldif
生成信息:
       bdb_db_open: Warning - No DB_CONFIG file found in directory
       /var/lib/ldap: (2)
       Expect poor performance for suffix dc=uplooking,dc=com.
       added: "dc=example,dc=com" (00000001)
       added: "ou=People,dc=example,dc=com" (00000002)
       added: "ou=Group,dc=example,dc=com" (00000003)

e】 解决上步警告
cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

4】 启动LDAP服务
a】 chown -R ldap /var/lib/ldap
若不改权限 启动失败
b】 service ldap start

/etc/init.d/ldap start
c】 netstat -tunlp | grep :389
验证 服务监听389端口

5】 安装图形管理程序 phpldapadmin
a】yum -y install httpd php php-ldap
b】 service httpd restart
c】 tar zxvf phpldapadmin-1.2.0.4.tgz -C /var/www/html/
d】 cd /var/www/html/phpldapadmin-1.2.0.4
e】 vim config/config.php.example config/config.php
f】 firefox http://localhost/phpldapadmin-1.2.0.4.tgz

g】输入用户名 密码登录

cn=admin,dc=example,dc=com
123456
6】 以上为LDAP服务器的通用配置

【5】 实现具体功能,用户的非本地验证登录
1】服务器端利用脚本创建用户文件,并用phpldapadmin导入
a】for i in {1..50};do useradd user$i ; echo user$i | passwd --stdin user$i;done
b】 grep ^user /etc/passwd > /tmp/user
grep ^user /etc/group > /tmp/group
c】 /usr/share/openldap/migration/migrate_passwd.pl /tmp/user > /tmp/user.ldif
/usr/share/openldap/migration/migrate_group.pl /tmp/group > /tmp/group.ldif
d】 for i in { 1..50 }; do userdel user$i ;done
e】 导入/tmp/user.ldif 和 /tmp/group.ldif

2】服务器端(192.168.1.221)利用nfs共享用户家目录
a】 vim /etc/exports
/home *(rw,sync)

b】 service nfs restart


3】客户端配置网络验证
a】 authconfig-tui
选上使用ldap和使用ldap验证 配置ldap服务器
b】 grep ldap /etc/pam.d/system-auth
                   auth        sufficient    pam_ldap.so use_first_pass
                   account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
                   password    sufficient    pam_ldap.so use_authtok
                   session     optional      pam_ldap.so

以上是 system-auth文件多出来的内容
tail -n 3 /etc/openldap/ldap.conf
                   URI ldap://192.168.1.221/
                   BASE dc=example,dc=com
                   TLS_CACERTDIR /etc/openldap/cacerts

以上是openldap客户端配置文件 新增内容

c】 rpm -q openldap-clients
查看是否安装openldap客户端 若未安装,请安装

d】 配置触发挂载家目录
vim /etc/auto.master
/home /etc/auto.home
vim /etc/auto.home
* -rw 192.168.1.221:/home/&
e】 service autofs restart

f】 测试成功

【6】 开启网络验证后,客户端登录时,优先使用本地/etc/passwd /etc/shadow文件验证,还是优先使用ldap
grep ldap /etc/nsswitch.conf -n
  36:passwd:      ldap  files 
  37:shadow:      ldap  files 
  38:group:       ldap  files 

由 36 37 38 三行的ldap与files顺序决定



















你可能感兴趣的:(redhat)