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
database bdb
suffix "dc=super,dc=com"
checkpoint
rootdn "cn=Manager,dc=super,dc=com"
# Cleartext passwords, especially for the rootdn, should
# be avoided. See slappasswd() and slapd.conf() for details.
# Use of strong authentication encouraged.
# rootpw secret
# rootpw {crypt}ijFYNcSNctBYg
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/ [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.:/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
% /
tmpfs % /dev/shm
/dev/sda1 % /boot
/dev/sr0 % /mnt/iso
192.168.118.14:/ldaphome/ldapuser1
% /ldaphome/ldapuser1 查看上面已经挂载成功。

[ LDAP ] LDAP服务搭建及应用的更多相关文章

  1. LDAP 服务搭建和后期管理

    LDAP 服务 本文主要在debian配置,如果需要在CentOS上部署,需要修改大部分的路劲,这里需要自行修改. LDAP 服务按照个人理解,也可使理解为一个数据库,但是这个数据库的读写性能不像 M ...

  2. 管理员技术(五): 配置文档的访问权限、 配置附加权限、绑定到LDAP验证服务、配置LDAP家目录漫游

    一.配置文档的访问权限 问题: 本例要求将文件 /etc/fstab 拷贝为 /var/tmp/fstab,并调整文件 /var/tmp/fstab的权限,满足以下要求: 1>  此文件的拥有者 ...

  3. 常用服务搭建(nfs/ftp/samba)

    一. NFS1. NFS简介NFS全称是network file systemNFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. 假 ...

  4. OPENLDAP 服务搭建和后期管理

    LDAP 服务 本文首发:https://www.cnblogs.com/somata/p/OPENLDAPServerConfigAndPostManagement.html 本文主要在debian ...

  5. ServiceStack.Hello——跨平台.net REST api服务搭建

    ServiceStack.Hello--跨平台.net REST api服务搭建 自己创建: https://github.com/ServiceStack/ServiceStack/wiki/Cre ...

  6. WCFRESTFul服务搭建及实现增删改查

    WCFRESTFul服务搭建及实现增删改查 RESTful Wcf是一种基于Http协议的服务架构风格,  RESTful 的服务通常是架构层面上的考虑. 因为它天生就具有很好的跨平台跨语言的集成能力 ...

  7. 微信小程序语音识别服务搭建全过程解析(项目开源在github)

    silk v3录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) ## 重要的写在前面 重要事项一: 目前本文中提到的API已支持微信小程序录音文件格式:silk v ...

  8. 微信小程序语音识别服务搭建全过程解析(https api开放,支持新接口mp3录音、老接口silk录音)

    silk v3(或新录音接口mp3)录音转olami语音识别和语义处理的api服务(ubuntu16.04服务器上实现) 重要的写在前面 重要事项一: 所有相关更新,我优先更新到我个人博客中,其它地方 ...

  9. Git服务搭建及github使用教程

    .pos { position: fixed; top: 35%; left: 90% } .pos a { border: 2px solid white; background: #99CCFF; ...

随机推荐

  1. 使用 window.getSelection() 方法获取鼠标划取部分的起始位置和结束位置的问题(高亮后不能正确获取)

    如果没有高亮等复杂处理,只需要获取一段文字中选取的字和位置,那么 使用window.getSelection()获取div中选中文字内容及位置 怎么获取textarea中选中文字 则可以满足需求: - ...

  2. 前端将markdown转换成html

    实现过程: 1. npm引入:npm install marked --save 2.在需要的文件(.ts)里import Marked from "marked";   如果.j ...

  3. ActiveMQ+Zookeeper集群配置文档

    Zookeeper + ActiveMQ 集群整合配置文档 一:使用ZooKeeper实现的MasterSlave实现方式 是对ActiveMQ进行高可用的一种有效的解决方案, 高可用的原理:使用Zo ...

  4. 【bzoj4619】[Wf2016]Swap Space 贪心

    题目描述 你有许多电脑,它们的硬盘用不同的文件系统储存数据.你想要通过格式化来统一文件系统.格式化硬盘可能使它的容量发生变化.为了格式化,你需要买额外的硬盘.当然,你想要买容量最小的额外储存设备以便省 ...

  5. 【bzoj2152】聪聪可可 树的点分治

    题目描述 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃.两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已 ...

  6. [bzoj3004] [SDOi2012]吊灯

    Description Alice家里有一盏很大的吊灯.所谓吊灯,就是由很多个灯泡组成.只有一个灯泡是挂在天花板上的,剩下的灯泡都是挂在其他的灯泡上的.也就是说,整个吊灯实际上类似于[b]一棵树[/b ...

  7. Angular 表单验证 基础篇

    <div class="nav"> <h4>表单验证</h4> <form ng-app="myApp" name=& ...

  8. 支持jsonP的Controller写法

    支持jsonP的Controller写法 package com.taotao.sso.controller; import org.apache.commons.lang3.StringUtils; ...

  9. js保存用户名与密码

    <script>   window.onload = function(){     var oForm = document.getElementById('loginForm');   ...

  10. POJ2912:Rochambeau(带权并查集)

    Rochambeau Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5208   Accepted: 1778 题目链接:h ...