[ LDAP ] LDAP服务搭建及应用

ldap 搭建及应用

node1: 192.168.118.14
node2: 192.168.118.25

ldap server : 192.168.118.14

1. 安装LDAP服务器

[root@node1 ~]# yum install openldap-servers -y     # 安装ldap服务器端软件
[root@node1 openldap]# cp -a /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf  # 主配置文件
[root@node1 openldap]# cp -a /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@node1 openldap]# slappasswd       # 生成加密密码
New password: 
Re-enter new password: 
{SSHA}ToeOEviUjgqhRK7YYn3frPrdf6yAGETM


[root@node1 openldap]# vim slapd.conf      # 修改主配置文件的dc
114 database    bdb
115 suffix      "dc=super,dc=com"
116 checkpoint  1024 15
117 rootdn      "cn=Manager,dc=super,dc=com"
118 # Cleartext passwords, especially for the rootdn, should
119 # be avoided.  See slappasswd(8) and slapd.conf(5) for details.
120 # Use of strong authentication encouraged.
121 # rootpw        secret
122 # rootpw        {crypt}ijFYNcSNctBYg
123 rootpw          {SSHA}ToeOEviUjgqhRK7YYn3frPrdf6yAGETM     # 将上面slappasswd 生成的密码写在这里

[root@node1 openldap]# rm -rf slapd.d/*     # 删除原始的文件
[root@node1 openldap]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/     # 重新生成一下,这里很重要
config file testing succeeded
[root@node1 openldap]# chown -R ldap:ldap /etc/openldap/slapd.d/     # 记得权限问题,不然启动服务会报错。
[root@node1 openldap]# chown -R ldap:ldap /var/lib/ldap/

[root@node1 slapd.d]# service slapd start
Starting slapd:                                            [  OK  ]
[root@node1 slapd.d]# netstat -ntplu | grep slapd     # ldap监听端口为tcp: 389
tcp        0      0 0.0.0.0:389                 0.0.0.0:*                   LISTEN      2633/slapd          
tcp        0      0 :::389                      :::*                        LISTEN      2633/slapd 

[root@node1 slapd.d]# yum install migrationtools -y

[root@node1 slapd.d]# cd /usr/share/migrationtools/

[root@node1 migrationtools]# mkdir /ldaphome

[root@node1 migrationtools]# useradd -d /ldaphome/ldapuser1 ldapuser1     # 创建ldap测试用户,ldap用户是基于服务端本地的用户

[root@node1 migrationtools]# echo redhat | passwd ldapuser1 --stdin     # 设置登录密码
Changing password for user ldapuser1.
passwd: all authentication tokens updated successfully.

[root@node1 migrationtools]# ./migrate_base.pl > /tmp/base.ldif         # 生成三个文件: base.ldif、passwd.ldif、group.ldif

[root@node1 migrationtools]# grep ldapuser1 /etc/passwd > /tmp/passwd.in
[root@node1 migrationtools]# ./migrate_passwd.pl /tmp/passwd.in > /tmp/passwd.ldif

[root@node1 migrationtools]# grep ldapuser1 /etc/group > /tmp/group.in
[root@node1 migrationtools]# ./migrate_group.pl /tmp/group.in > /tmp/group.ldif

[root@node1 migrationtools]# vim /tmp/base.ldif     # 编辑base.ldif修改如下

dn: dc=super,dc=com
dc: super
objectClass: top
objectClass: domain

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

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


[root@node1 migrationtools]# cat /tmp/passwd.ldif 
dn: uid=ldapuser1,ou=People,dc=super,dc=com
uid: ldapuser1
cn: ldapuser1
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$3ZJY7iN1$N/RPvsQwIOH/chUV6B4K4V6ddSKWO0GcIBdB9nfWHPbkugS34L9zWBeOuQhiWtbuQ9svukuwY1qWvp8Nfr2V0/
shadowLastChange: 16990
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 500
gidNumber: 500
homeDirectory: /ldaphome/ldapuser1


[root@node1 migrationtools]# cat /tmp/group.ldif 
dn: cn=ldapuser1,ou=Group,dc=super,dc=com
objectClass: posixGroup
objectClass: top
cn: ldapuser1
userPassword: {crypt}x
gidNumber: 500


[root@node1 migrationtools]# ldapadd -x -D 'cn=Manager,dc=super,dc=com' -W -f /tmp/base.ldif 
Enter LDAP Password:             # 注意这里如果很久都没有跳出来,请检查selinxu是否为Permissive状态,输入的密码为上面设置的redhat
adding new entry "dc=super,dc=com"

adding new entry "ou=People,dc=super,dc=com"

adding new entry "ou=Group,dc=super,dc=com"

# 把三个文件导入ldap,这样ldap数据库里就有我们想要是用户
[root@node1 migrationtools]# ldapadd -x -D 'cn=Manager,dc=super,dc=com' -W -f /tmp/passwd.ldif 
Enter LDAP Password: 
adding new entry "uid=ldapuser1,ou=People,dc=super,dc=com"

[root@node1 migrationtools]# ldapadd -x -D 'cn=Manager,dc=super,dc=com' -W -f /tmp/group.ldif 
Enter LDAP Password: 
adding new entry "cn=ldapuser1,ou=Group,dc=super,dc=com"

这样就已经配置一个ldapuser1用户为ldap用户。

[root@node1 ~]# yum install nfs-utils -y     # 配置nfs服务器,将ldapuser1家目录共享出去。

[root@node1 ~]# vim /etc/exports 

/ldaphome 192.168.118.0/24(rw,async,root_squash)

[root@node1 ~]# service rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@node1 ~]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]

2. 配置ldap client端

配置setup内容,建议使用setup命令直接配置。

配置setup内容,建议使用setup命令直接配置。
[root@node2 ~]# yum install setuptool -y     # 安装setup包
[root@node2 ~]# setup     # 直接运行setup进行配置

Authentication configuration

  安装这样的选项

  这里缺少什么组件就安装什么     yum install /lib64/security/pam_fprintd.so -y

  这里不使用 TLS Server为服务器地址,DN为主配置文件中的配置

setup配置完成就可以尝试登录ldapuser1

[root@node2 ~]# su - ldapuser1
su: warning: cannot change directory to /ldaphome/ldapuser1: No such file or directory
-bash-4.1$ 
这里已经登录成功,表示ldap服务工作正常了,只是在客户端登录没有找到家目录。这里通过autofs方式,登录时自动挂载家目录



[root@node2 ~]# yum install nfs-utils -y     # 安装nfs-utils 使用showmount 查看服务器共享目录

[root@node2 ~]# showmount -e 192.168.118.14     # 查看到node1共享了/ldaphome
Export list for 192.168.118.14:
/ldaphome 192.168.118.0/24

[root@node2 ~]# yum install autofs -y     # 安装autofs包

[root@node2 ~]# vim /etc/auto.master
/ldaphome  /etc/auto.nfs     # 添加一条新的规则

[root@node2 ~]# vim /etc/auto.nfs      # 添加自动挂载的规则

* -fstype=nfs,rw,async  192.168.118.14:/ldaphome/&         # 挂载192.168.118.14:/ldaphome/到本地的/ldaphome 

[root@node2 ~]# service autofs start     # 启动autofs服务
Loading autofs4:                                           [  OK  ]
Starting automount:                                        [  OK  ]

[root@node2 ~]# su - ldapuser1     # 直接测试
[ldapuser1@node2 ~]$ pwd
/ldaphome/ldapuser1

[ldapuser1@node2 ~]$ df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
                      18003272  838212  16243872   5% /
tmpfs                   502384       0    502384   0% /dev/shm
/dev/sda1               487652   33246    428806   8% /boot
/dev/sr0               3803432 3803432         0 100% /mnt/iso
192.168.118.14:/ldaphome/ldapuser1
                      18003328  802432  16279680   5% /ldaphome/ldapuser1

查看上面已经挂载成功。
原文地址:https://www.cnblogs.com/hukey/p/5779069.html