Linux下配置OpenLDAP服务记录

摘要:最近部门需要整合所有的系统,所以领导说要通过OpenLdap数据库来实现对所有系统的统一管理,所以需要在服务器上配置一下LDAP服务,我们这里选择的是OpenLdap服务,我在网上搜索了很多,开始都没有配置成功,最后经过多次尝试终于配置成功,现在做个记录,方便日后再次查看。

服务器环境:CentOS6.4

配置前的准备工作:

先关闭iptables和SELINUX,避免配置过程中报错!

# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
修改SELINUX=disabled,如下图:


一:OpenLdap服务端配置:

(1).安装OpenLdap服务,我这里使用的yum安装,需要安装的软件包如下:

openldap-devel-2.4.23-26.el6.x86_64
openldap-clients-2.4.23-26.el6.x86_64
openldap-2.4.23-26.el6.x86_64
openldap-servers-2.4.23-26.el6.x86_64
(2).yun安装OpenLdap服务的命令如下:(这里必须是你的linux机器可以联网,否则的话是不能安装成功的!)

# yum install openldap-* -y

(3).安装OpenLdap服务完成后,拷贝LDAP配置文件到LDAP目录:

# cd /etc/openldap/
# cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf
(4).CentOS6.4版本配置文件在主目录有备份:
# cd /etc/openldap/
# cp slapd.conf.bak slapd.conf
(5).创建LDAP管理员密码:
# slappasswd
这里我输入的密码是redhat,输入完密码后,返回一串密文,先保存到剪贴板

{SSHA}Ak5D0xQLDRJUpt3B4C1tqBnZwRTZYlLT

(6).编译配置文件:

# vi /etc/openldap/slapd.conf
找到115行,默认如图:


下面红色框中的为你刚才生成的密码(加密后的)。


配置文件最后几行的权限部分我们也要做相应的更改:


保存并退出。

(7).拷贝DB_CONFIG文件到指定目录:

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

(8).删除默认/etc/openldap/slapd.d下面的所有内容,否则后面在使用ldapadd的时候会报错:

# rm -rf /etc/openldap/slapd.d/*

(9).启动LDAP的slapd服务,并设置自启动:

# service slapd restart
# chkconfig slapd on
(10).赋予配置目录相应权限:

# chown -R ldap:ldap /var/lib/ldap
# chown -R ldap:ldap /etc/openldap/

(11).测试并生成配置文件:

slaptest  -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d.*

返回config file testing succeeded,则配置成功。

(12).赋予生成的配置文件予权限并重启:

# chown -R ldap:ldap /etc/openldap/slapd.d.*
# service slapd restart
(13).创建一个账号,以备客户端测试登陆:

# useradd ldapuser1
# passwd ldapuser1
至此,这些用户仅仅是系统上存在的用户(存储在/etc/passwd和/etc/shadow上),并没有在LDAP数据库里,所以要把这些用户导入到LDAP里面去。但LDAP只能识别特定格式的文件 即后缀为ldif的文件(也是文本文件),所以不能直接使用/etc/passwd和/etc/shadow。 需要migrationtools这个工具把这两个文件转变成LDAP能识别的文件。

(14).安装配置migrationtools:

# yum install migrationtools -y
进入migrationtool配置目录:

# cd /usr/share/migrationtools/
首先编辑migrate_common.ph:

# vi  migrate_common.ph
找到如下内容(大概在70行):


修改完后,保存并退出。

下面利用pl脚本将/etc/passwd 和/etc/shadow生成LDAP能读懂的文件格式,保存在/tmp/下:

# ./migrate_base.pl > /tmp/base.ldif
# ./migrate_passwd.pl  /etc/passwd > /tmp/passwd.ldif
# ./migrate_group.pl  /etc/group > /tmp/group.ldif
下面就要把这三个文件导入到LDAP,这样LDAP的数据库里就有了我们想要的用户:

# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/base.ldif
# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/passwd.ldif
# ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /tmp/group.ldif
这里导入的时候提示输入LDAP的密码:我这里是redhat

过程若无报错,则LDAP服务端配置完毕,重启slapd完成配置:

# service slapd restart
(15).现安装NFS,并把ldapuser1的家目录做NFS共享:

# yum install nfs* -y
(16).配置NFS共享:

# vi /etc/exports

保存并退出。

(17).重启nfs服务:

# service rpcbind restart
# service nfs restart


二:OpenLdap客户端配置:

打开客户端图形化界面命令行,输入system-config-authentication,按照如图配置:


配置结束点Apply保存退出,系统会自动重启sssd服务。


配置autofs,实现ldapuser1登录成功后,能够访问本地家目录/home/ldapuser1,该目录挂载于网内LDAP服务器192.168.186.139:/home/ldapuser1下:

# vi /etc/auto.master
添加一行:

--------------
/home   /etc/auto.misc
--------------
# vi /etc/auto.master
添加一行:

--------------
*               -fstype=nfs                     192.168.186.139:/home/&
--------------
重启autofs服务:

# service autofs reload
登陆ldapuser1账户:

若未返回系统未找到ldapuser1家目录报错信息,则LDAP客户端配置成功。

注:这里若仍无法登陆,请进入setup模式配置LDAP登陆

# id ldapuser1


# su - ldapuser1

# pwd
/home/ldapuser1

至此,OpenLdap服务端和客户端的配置就完成了,接下来就是通过客户端连接OpenLdap数据库了。

注意:LDAP服务需要服务器和客户端的时间保持大致一致,否则在登陆ldapuser1账户时可能会报错,这里NTP服务搭建省略,可以手工修改两台服务器的时间保持一致。


三:通过Softerra LDAP Administrator 2015.1管理工具连接OpenLdap数据库:

(1).首先下载和你本机对应版本的客户端软件,我这里下载的32位的,下载地址:http://www.ldapadministrator.com/download.htm,如下图:



(2).下载安装好就可以连接了,连接步骤如下:









至此,OpenLdap在Linux下的服务端配置和客户端配置连接就完成了!


参考的网上连接:

http://www.centoscn.com/image-text/config/2013/0819/1367.html
http://www.centoscn.com/image-text/config/2013/0819/1367.html
http://my.oschina.net/5lei/blog/193484



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven配置nexus

摘要:近来一直在搭建maven结构的开发框架,其中这个过程中用到了nexus私服,这里我把我经过查询总结的最终的方式记录一下,以便后面忘记了: 一:nexus私服的安装(略) 二:仓库的讲解如下图: 1、ho…

Maven项目发布的配置

摘要:要想发布maven结构的项目到nexus私服上,可以通过两种方式来,一种是在项目的pom.xml文件里面配置,另一种是通过命令的方式发布到nexus私服上,但是这种方式的前提也得在settings.xml文件配置用户: 一:M…

MariaDB通过命令行的方式导出指定数据库和还原指定数据库

摘要:今天由于需要需要从本地导出一份VP系统的数据库脚本,以前我都是通过工具直接导出,现在有同事说可以通过mysql的命令方式导出,我试了一下,可以,现在记录一下! 一:在MariaDB的安装…

Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:

摘要:今天领导说要把项目通过maven生产源码包和文档包并发布到自己的私服上,经过查看mavne官网发现有两个maven插件可以做到这些工作,一个是maven-source-plugin,另一个是maven-javadoc-plugin,现在记录一下&#xff0…

Maven之生成测试覆盖度的插件cobertura-maven-plugin的使用

摘要:Maven中可以通过使用插件检查一个项目的测试代码的覆盖度,这个插件就是cobertura-maven-plugin,这个插件如何使用我做了测试,现在记录一下! 一:首先在你的项目的pom.xml文件中增加该插件的配置&#x…

Linux下开启mysql数据库的远程访问权限

摘要:今天在Linux服务器上安装了msyql数据库,在本地访问的时候可以访问,但是我想通过远程的方式访问的时候就不能访问了,查询资料后发现,Linux下mysql默认安装完成后只有本地访问的权限,没有远程访问的权限…

Maven之搭建本地私服(nexus)仓库

摘要:现在越来越多的项目都在使用Maven管理项目,尤其是在大型的项目团队中使用Maven能带来更加多的好处,私服的好处我相信大家都明白,在这里我就不多说了,它最重要的作用就是可以让项目团队成员更加方便的下载对应的项…

项目管理4321方法论

文章目录 一、项目立项准备(4步)case1、识别价值---解决背后痛点的才是价值,价值是做任何事情的出发点case2、明确目标---支撑价值实现的,目标是 具体/可衡量/可达到/相关性/有时限的case3、识别干系人---找对人才能做对事&#x…

Maven之自定义archetype生成项目骨架(一)

摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其中的一个插件:maven-archetype-plugin,通过该插件可以自定义符合我们自己需求的archetype。 一:什么是Archetype 总之,原型是一…

Hessian Binary Web Service Protocol远程接口调用入门

摘要:Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能. 相比WebService,Hessian更简单、快捷。采用的是二进制RPC协议,因为采用的是二进制协议,所以它很适合于发送二进制数据。 hessian类似于…

Windows+Nginx+Tomcat搭建负载均衡和集群环境同时实现session共享(一)

摘要:随着网站的访问量越来越多,所以就考虑给网站增加服务器了,现在比较流行的做法就是给网站做集群环境,下面我把我做的过程记录一下,方便日后查看,同时也希望可以帮助到有需要的朋友! 一&…

Eclipse,MyEclipse 安装SVN插件

摘要:MyEclipse10.5安装SVN插件最简单的方式: 一:先到SVN官网下载对应版本的SVN插件包,我这里下载的site-1.10.10版本 下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID2240 二&#xf…

MyEclipse 10.5 安装SVN插件

摘要:MyEclipse10.5安装SVN插件最简单的方式: 一:先到SVN官网下载对应版本的SVN插件包,我这里下载的site-1.10.10版本 下载地址:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID2240 二&#xf…

PHP获取服务器端的相关信息

摘要&#xff1a;PHP获取服务端端的相关信息 一&#xff1a;代码&#xff1a; <!DOCTYPE html> <html> <head><title>第一个PHP程序(获取服务器信息)</title><meta http-equiv"content-type" content"text/html"; charse…

Spring+Hibernate+SpringMVC+MySql实现配置多个数据源!

摘要&#xff1a;在日常的工作中&#xff0c;很多时候我们进行项目开发的时候&#xff0c;一个项目有可能不止用到一个数据源&#xff0c;为了提高数据库的水平伸缩性&#xff0c;需要对多个数据库实例进行管理&#xff0c;需要配置多数据源! 一&#xff1a;代码截图&#xff…

CentOS下安装Memcached,Linux下安装Memcached,centos下安装memcached,linux下安装memcached...

摘要&#xff1a;最近在看《大型分布式网站架构设计与实践》这本书&#xff0c;把其中的学习过程记录一下&#xff0c;以便日后复习。 一&#xff1a;Memcached简单介绍和描述&#xff1a; Memcached 是一个高性能的分布式内存对象缓存系统&#xff0c;用于动态Web应用以减轻数…

一个微信公众号接入另一个微信公众号的内容

摘要&#xff1a;近日来了这么一个需求&#xff0c;就是客户想在他们的微信公众号里面直接接入我们微信公众号的文章&#xff0c;于是我便开始baidu&#xff0c;google&#xff0c;最后发现了一个新的搜索引擎&#xff1a;“搜狗微信搜索”&#xff0c;该搜索引擎是最近才上线的…

SQL Server将数据库中的表复制到另一个数据库

在使用SqlServer的过程中&#xff0c;我们可能需要将表从一个数据库复制到另一个数据库中&#xff0c;今天&#xff0c;小编为大家介绍这种操作的具体方法及步骤。 一&#xff1a;复制表结构&#xff1a; 1.首先&#xff0c;打开并连接Sql Server&#xff0c;在源数据库Sourc…

SQL Server cast() 批量更新列内容

摘要&#xff1a;有这样一个需求&#xff0c;需要把数据表中的列批量更新一下&#xff0c;给后面的数字都增加20&#xff0c;如下图&#xff1a; 正确的sql如下&#xff1a; update tbl_papers_test set name 执业护士考试儿科护理学cast((cast(substring(name,12,datalength(…

SQL Server 批量更新字段值为ROW_NUMBER()+列名称

摘要&#xff1a;有这样一个需求&#xff0c;需要把数据表中的列名称的数据按行号重新排序并更新一下&#xff0c;这里用到了ROW_NUMBER()函数。 一&#xff1a;需求如下图&#xff1a; 二&#xff1a;通过执行如下sql语句实现了上面的需求&#xff0c;如下&#xff1a; update…