系统平台:

服务端:RHEL6.0x64 / 192.168.1.60
客户端:RHEL6.3x86 / 192.168.1.63

请注意:SELinux和防火墙都没开启!

一、服务器配置
1.软件安装
安装LDAP

 
  
  1. yum install openldap openldap-servers openldap-clients openldap-devel

安装NFS服务

 
  
  1. yum install nfs-utils nfs-utils-lib rpcbind

注:在RHEL6下没有了portmap,给成了rpcbind

2.配置LDAP
(1)备份配置文件

 
  
  1. cd /etc/openldap  

  2. mv slapd.d slapd.d.bak

注:该配置暂时用不到,一定要更名,否则LDAP不会读取slapd.conf配置文件而无法启动。

(2)修改主配文件slapd.conf

 
  
  1. cd /etc/openldap  

  2. cp slapd.conf.bak slapd.conf  

  3. chown ldap.ldap slapd.conf

在6.3平台下默认没有/etc/openladp/slapd.conf,模版文件在/usr/share/openldap-servers/slapd.conf.obsolete,拷贝过来就行

这里使用的域名为:luxiaok.com,修改slapd.conf如下:

修改slapd.conf [By 陆小K网络工作室]

注:在rootpw与你的密码字符之间要隔两个Tab的位置,否则密码报错(valid(49)错误)。

这里附上slapd.conf的所有内容,因为在RHEL6.3平台下测试的时候,安装完了,找不到slapd.conf.bak的配置文件,网上很多生成slapd.conf的方法,我这里直接给出:

 
  
  1. include         /etc/openldap/schema/corba.schema  

  2. include         /etc/openldap/schema/core.schema  

  3. include         /etc/openldap/schema/cosine.schema  

  4. include         /etc/openldap/schema/duaconf.schema  

  5. include         /etc/openldap/schema/dyngroup.schema  

  6. include         /etc/openldap/schema/inetorgperson.schema  

  7. include         /etc/openldap/schema/java.schema  

  8. include         /etc/openldap/schema/misc.schema  

  9. include         /etc/openldap/schema/nis.schema  

  10. include         /etc/openldap/schema/openldap.schema  

  11. include         /etc/openldap/schema/ppolicy.schema  

  12. include         /etc/openldap/schema/collective.schema  

  13. allow bind_v2  

  14. pidfile         /var/run/openldap/slapd.pid  

  15. argsfile        /var/run/openldap/slapd.args  

  16. database        bdb  

  17. suffix          "dc=luxiaok.com"  

  18. checkpoint      1024 15  

  19. rootdn          "cn=admin,dc=luxiaok.com"  

  20. rootpw          123456  

  21. directory       /var/lib/ldap  

  22. index objectClass                       eq,pres  

  23. index ou,cn,mail,surname,givenname      eq,pres,sub  

  24. index uidNumber,gidNumber,loginShell    eq,pres  

  25. index uid,memberUid                     eq,pres,sub  

  26. index nisMapName,nisMapEntry            eq,pres,sub  

  27. database monitor  

  28. access to *  

  29.        by dn.exact="cn=admin,dc=luxiaok.com" read  

  30.        by * none

这里已经去掉了所有的注释行以及空行了,方便浏览。

(3)创建数据库文件

 
  
  1. cp /usr/share/doc/openldap-servers-2.4.19/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

  2. chown ldap.ldap /var/lib/ldap/DB_CONFIG

我们可以看一下/var/lib/ldap目录下是没有其他文件的(如果该服务器从没部署过LDAP)

(4)服务测试

LDAP服务测试 【By 陆小K网络工作室】

可以看到/var/lib/ldap目录下多了很多文件。

(5)添加认证用户

这里添加两个系统用户user1、user2,直接使用useradd添加,并配置密码,这个过程就省略了,下面直接说把用户数据导入到LDAP数据库。

(6)安装迁移工具migrationtools以及用户数据导入

安装

 
  
  1. yum install migrationtools

修改域名,修改配置文件/usr/share/migrationtools/migrate_common.ph,如图

修改配置

下面创建基本数据库模版文件

 
  
  1. /usr/share/migrationtools/migrate_base.pl > base.ldif

需要说明的是,ldif文件只是模版文件,并不是数据库文件,随便放在哪个目录下。

base.ldif文件内容如下

 
  
  1. dn: ou=People,dc=luxiaok.com  

  2. ou: People  

  3. objectClass: top  

  4. objectClass: organizationalUnit  

  5. dn: ou=Group,dc=luxiaok.com  

  6. ou: Group  

  7. objectClass: top  

  8. objectClass: organizationalUnit

创建用户数据库模版:

 
  
  1. ./migrate_passwd.pl /etc/passwd user.ldif

需要清除不必要的内容,只留下user1和user2,如下所示

 
  
  1. dn: uid=user1,ou=People,dc=luxiaok.com  

  2. uid: user1  

  3. cn: user1  

  4. objectClass: account  

  5. objectClass: posixAccount  

  6. objectClass: top  

  7. objectClass: shadowAccount  

  8. userPassword: {crypt}$6$4Mn0VWbMnzORs9pt$cWWo2YtUF7T71qP6FhU17rlwVEBlk7DPrG5nETA1YaqGPLu0GsbgOqIqV2W2e4wTxf/cd4fYDzN4F1dinNTI3/  

  9. shadowLastChange: 15567  

  10. shadowMin: 0  

  11. shadowMax: 99999  

  12. shadowWarning: 7  

  13. loginShell: /bin/bash  

  14. uidNumber: 500  

  15. gidNumber: 500  

  16. homeDirectory: /home/user1  

  17. dn: uid=user2,ou=People,dc=luxiaok.com  

  18. uid: user2  

  19. cn: user2  

  20. objectClass: account  

  21. objectClass: posixAccount  

  22. objectClass: top  

  23. objectClass: shadowAccount  

  24. userPassword: {crypt}$6$4Mn0VWbMnzORs9pt$cWWo2YtUF7T71qP6FhU17rlwVEBlk7DPrG5nETA1YaqGPLu0GsbgOqIqV2W2e4wTxf/cd4fYDzN4F1dinNTI3/  

  25. shadowLastChange: 15567  

  26. shadowMin: 0  

  27. shadowMax: 99999  

  28. shadowWarning: 7  

  29. loginShell: /bin/bash  

  30. uidNumber: 501  

  31. gidNumber: 501  

  32. homeDirectory: /home/user2

创建用户组文件

 
  
  1. ./migrate_group.pl /etc/group group.ldif

内容:

 
  
  1. dn: cn=user1,ou=Group,dc=luxiaok.com  

  2. objectClass: posixGroup  

  3. objectClass: top  

  4. cn: user1  

  5. userPassword: {crypt}x  

  6. gidNumber: 500  

  7. dn: cn=user2,ou=Group,dc=luxiaok.com  

  8. objectClass: posixGroup  

  9. objectClass: top  

  10. cn: user2  

  11. userPassword: {crypt}x  

  12. gidNumber: 501

数据的导入,利用刚刚创建的三个模版文件导入数据

 
  
  1. ldapadd -D "cn=admin,dc=luxiaok.com" -W -x -f base.ldif  

  2. ldapadd -D "cn=admin,dc=luxiaok.com" -W -x -f user.ldif  

  3. ldapadd -D "cn=admin,dc=luxiaok.com" -W -x -f group.ldif

执行ldapadd命令时会需要要求输入密码,就是开头在slapd.conf里配置的用户密码。另外要注意执行的顺序:base.ldif、user.ldif、group.ldif,否则会报错,导致数据导入失败或者导入不进去。

(7)配置基于NFS的LDAP用户主目录

目录输出配置:

编辑配置文件/etc/exports,内容如下

 
  
  1. /home           *(rw,sync)

启动服务

启动NFS服务 【By 陆小K网络工作室】

注意先启动rpcbind,否则NFS不错起不来。启动后查看下端口:

NFS与LDAP的端口 【By 陆小K网络工作室】

389端口是LDAP,这里是没有开启SSL,2049是NFS。

服务端的配置到此就结束了,下面配置客户端。

二、客户端配置
1.开启LDAP验证

终端执行命令authconfig-tui,也可以setup

选择LDAP验证

选择LDAP验证

下一步选择服务器以及域名

客户端配置LDAP

OK,然后启动SSSD服务。

(2)配置autofs

修改/etc/auto.master,添加/home auto.nfs到末行

客户端autofs配置

然后在/etc目录下创建文件auto.nfs,添加如下内容

 
  
  1. * -fstype=nfs,rw,sync           192.168.1.60:/home/&

“&”这个符号表示代表的用户名。

OK,启动autofs服务

 
  
  1. service autofs start

如果客户端没有安装autofs使用yum install autofs安装即可

三、客户端测试

直接上图一张了:

LDAP+NFS客户端测试 【By 陆小K网络工作室】

四、相关说明

在整个实验中,提及一点,比较重要的:

有多个配置文件需要配置域名,常规有以下两种写法

dc=luxiaok,dc=com

第二种

dc=luxiaok.com

需要说明的是,不管哪一种,有没有区别不说了,统一使用一种就行,避免错误。其余的错误欢迎大家一起讨论。