linux安装部署ldap服务器
参考文档:https://www.cnblogs.com/daiss314/p/13227180.html
一、概念介绍
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,简称为LDAP。LDAP的目录服务其实也是一种数据库系统(Berkeley DB),只是这种数据库是一种树形结构(B Tree),适合读不适合频繁写,不支持事务不能回滚。
我们用LDAP实现多个组件的用户管理,比如把gitlab和jenkins、harbor等组件的用户放在LDAP一起管理,组件只负责权限管理。用户在这些组件登录时都走LDAP的认证,让用户可以用一套用户名密码即可登录所有组件。
LDAP的树形结构的概念理解。
从叶子到根的这条“路径”是一条数据,称为条目(Entry),这条数据的全局唯一标识叫做dn
dc
(Domain Component)是域名的一部分,把完整的域名拆开。ou
(Organization Unit)是组织单元。cn
(Common Name)一般是用户的名字。uid
(User Id)一般是用户登录id。
简单理解就是:dn是 一条记录的详细位置; dc是一个区域(相当于哪颗树);ou是一个组织(相当于哪一个分支);cn/uid(分支上的哪个苹果)。
二、安装ldap服务端
#安装服务端
[root@ldap ~]# yum install -y openldap openldap-clients openldap-servers migrationtools
#配置ldap服务器
[root@ldap ~]# vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
#配置监视数据库的配置文件
[root@ldap ~]# vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
#配置ldap数据库
将/usr/share/openldap-servers/DB_CONFIG.example的文件复制到/var/lib/ldap/DB_CONFIG目录下,并给文件授权ldap属主属组
[root@ldap ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@ldap ~]# chown -R ldap.ldap /var/lib/ldap/
#检测配置是否正确
[root@ldap ~]# slaptest -u #输入命令出现succeeded表示验证成功
#启动ldap,并设置开机自启
[root@ldap ~]# systemctl start slapd
[root@ldap ~]# systemctl enable slapd
[root@ldap ~]# ss -antup | egrep "389|636" 检测服务及端口
#启动ldap服务器的配置,需添加以下ldap模式
[root@ldap ~]# ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}
#创建ldap DIT
[root@ldap schema]# vim /usr/share/migrationtools/migrate_common.ph
修改61行 $NAMINGCONTEXT{'group'} = "ou=Groups";
修改71行 $DEFAULT_MAIL_DOMAIN = "songchen.com";
修改74行 $DEFAULT_BASE = "dc=songchen,dc=com";
修改90行 $EXTENDED_SCHEMA = 1;
#生成一个基地,ldif文件为域的DIT
#切换到migrationtools目录下执行 ./migrate_base.pl > /root/base.ldif
[root@ldap schema]# cd /usr/share/migrationtools/
[root@ldap migrationtools]# ./migrate_base.pl > /root/base.ldif
#将基地上传到ldap数据库中
[root@ldap migrationtools]# ldapadd -x -W -D "cn=auto,dc=songchen,dc=com" -f /root/base.ldif
#创建一些用户和组,并迁移到ldap
[root@ldap migrationtools]# mkdir -p /home/guests
[root@ldap migrationtools]# useradd -d /home/guests/test12 test12
[root@ldap migrationtools]# echo 123456 | passwd --stdin test12
#过滤这些用户和组以及/etc/shadow不同文件密码
[root@ldap guests]# getent passwd | tail -n 5
[root@ldap guests]# getent shadow | tail -n 5 > /root/shadow
[root@ldap guests]# getent group | tail -n 5 > /root/groups
#使用migrationtools为这些用户创建ldif文件
切换到migrationtools
目录下编辑vim migrate_passwd.pl文件(修改188行,把/etc/shadow换成/root/shadow)
[root@ldap guests]# cd /usr/share/migrationtools
[root@ldap migrationtools]# vim migrate_passwd.pl
然后在当前路径下执行下面的命令
[root@ldap migrationtools]# ./migrate_passwd.pl /root/users > users.ldif
[root@ldap migrationtools]# ./migrate_group.pl /root/groups > groups.ldif
将这些用户和组ldif文件上传到ldap数据库中
[root@ldap migrationtools]# ldapadd -x -W -D "cn=auto,dc=songchen,dc=com" -f users.ldif
[root@ldap migrationtools]# ldapadd -x -W -D "cn=auto,dc=songchen,dc=com" -f groups.ldif
现在搜索LDAP DIT的所有记录(如果能搜索到就说明安装成功了,至此ldap服务器安装完成(按这个安装只支持uid用户的登录))
[root@ldap migrationtools]# ldapsearch -x -b "dc=songchen,dc=com" -H ldap://192.168.200.150
三、电脑端安装客户端
ldapadmin官网下载地址: http://www.ldapadmin.org/download/ldapadmin.html
电脑端下载完成后,点击进入填写ldap服务器地址
在ou=people下去创建用户组或用户(右击--new--Group),输入名字就可以点击保存,保存之后如右图所示(或者创建用户)
登录到ldap服务器去查看信息,就可以看到增加的一条信息如图
[root@ldap ~]# ldapsearch -x -b "dc=songchen,dc=com" -H ldap://192.168.200.150
这里的信息就是通过ldapadmin客户端添加进来的,到此全部部署完成
注意:
如果要开启ssl要修改配置文件,要增加ldaps:///
vi /etc/sysconfig/slapd
SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"
再重启服务:service slapd restart
四、配置gitlab使用ldap认证
1、登录gitlab服务器,修改gitlab配置文件
[root@gitlab ~]# cd /etc/gitlab
[root@gitlab gitlab]# vim gitlab.rb
gitlab配置文件说明:
1.gitlab_rails['ldap_enabled'] = true #开启ldap认证
2.host: 是搭建的ldap服务器的ip,根据实际情况修改;(填写ip地址或域名)
3.uid: 可以写cn,也可以写为uid,都能识别(具体为什么没深入研究);
4.bind_dn: openldap域的管理员账号,根据实际情况修改(如 cn=admin,dc=yhz,dc=com)
5.password: openldap的管理员,根据实际情况修改(如123456)
6.active_directory: 似乎是针对连接是否是ad域控的标示,因为这部分是域服务器的配置,故为true;
7.allow_username_or_email_login: 用户登录是否用户名和邮箱都可以,方便用户故配置true;(看个人需求)
8.base: 用户列表所在的目录,因为新增的用户都在People下(试验了用户放在User时gitlab检测不到用户,故新建了一个目录People,并将新建的用户移入了该目录下),就这么配置,根据实际情况修改;
注意:下边几行还有个EOS,也需要将注释去掉
2、重新加载配置文件并重启服务
重新加载配置
[root@gitlab gitlab]# gitlab-ctl reconfigure
重启gitlab
[root@gitlab gitlab]# gitlab-ctl restart
检查是否能正常获取ldap用户
[root@gitlab gitlab]# gitlab-rake gitlab:ldap:check #正常连接的情况下执行之后能看到用户的列表
3、访问gitlab web界面,用ldap账户登录验证
再次访问web界面,没有问题就会出现LDAP登录选项了,输入LDAP用户密码即可登录
五、配置jenkins使用ldap认证
提示:ldap配置后原管理账户会失效,所以一旦配置错误就无法登录,甚至无法正常访问系统。
建议对Jenkins配置文件先进行备份,再修改设置。
Centos7使用rpm安装jenkins的默认目录为:/var/lib/jenkins/
1、备份jenkins的配置文件
备份jenkins配置文件:config.xml
[root@jenkins ~]# cp /var/lib/jenkins/config.xml{,.$(date +%F).bak}
2、配置jenkins
登录jenkins-à点击设置à全局安全设置à安全域选择 LDAP
配置如下:
授权策略还继续使用Role-Based Strategy策略即可。
保存设置,退出账户测试登录即可。此时jenkins的管理账户已失效。
3、测试登录
ldap的yhz账户可以正常登陆
添加项目策略
让ldap的123账户只能看到a-1项目
4、配置ldap失败导致jenkins账户无法登录的解决方法
在/var/lib/jenkins/config.xml配置文件中找到这段关于ldap认证的信息
上面的配置不当导致了无法通过ldap认证,而且导致jenkins也无法正常登陆了,可以把上面这段代码修改为如下样子:
<securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
<disableSignup>false</disableSignup>
<enableCaptcha>false</enableCaptcha>
</securityRealm>
重启jenkins服务,即可用jenkins原管理账户登录。
linux安装部署ldap服务器相关推荐
- Linux安装部署FTP服务器
Linux安装部署FTP服务器 本文章会将安装FTP服务器的步骤以及一些遇到的问题来记录下 因为项目中要与第三方对接数据,需要用到FTP服务器以提供他们每天上传数据,因为之前在本地的VMware虚拟机 ...
- Linux搭建部署Ldap服务器,亲测可用
本文为转载,原链接:https://www.cnblogs.com/daiss314/p/13227180.html 一,服务器安装 yum install -y openldap openldap- ...
- 在LINUX中部署NIS服务器
在LINUX中部署NIS服务器 一.部署前的准备工作: 1.准备两台虚拟机,一台作server,一台作clint. 2.配好网卡,使用相同的网卡. 3.配好ip,ip必须在同一网段. ...
- 怎样在linux上部署web服务器
linux上部署web服务器 1.从Apache官网下载源码. 2.卸载原来已经存在的httpd. 3.挂载光盘准备部署httpd. 4.源码编译安装httpd, 解包 , 配置(--prefix:指 ...
- Openldap部署LDAP服务器平台
Openldap部署LDAP服务器平台 一.安装软件包 yum -y install openldap openldap-clients openldap-servers db4 二.配置openld ...
- linux安装部署apache+subversion+jsvnadmin
linux安装部署apache+subversion+jsvnadmin 1.apache网页服务器(注意不是tomcat) 2.subversion版本控制(svn服务器) 3.jsvnadmin项 ...
- Nginx实战基础篇一 源码包编译安装部署web服务器
Nginx实战基础篇一 源码包编译安装部署web服务器 版权声明: 本文遵循"署名非商业性使用相同方式共享 2.5 中国大陆"协议 您可以自由复制.发行.展览.表演.放映.广播或通 ...
- Hadoop 安装部署-多服务器
环境 Ubuntu Linux 8.04 linuxsvr01.vgolive.com 192.168.1.209 linuxsvr02.vgolive.com 192 ...
- linux服务器查看系统装到哪个盘,查看linux安装了什么服务器地址
查看linux安装了什么服务器地址 内容精选 换一换 Cloud-Init是开源的云初始化工具,使用安装了Cloud-Init的镜像创建云服务器时可以通过"用户数据注入"功能,注入 ...
最新文章
- asp.net调试方法
- 禁止访问 共享计算机,win7如何禁止局域网用户访问电脑
- SpringBoot2.1.5(45)--- Spring Boot的核心模块
- python random_Python random() 函数
- mysql 设置域名_mysql 设置域名
- Find the longest route with the smallest starting point
- redis教程(七)之redis List
- N32903系列的基础知识(1)
- zookeeper安装和应用场合(名字,配置,锁,队列,集群管理)
- 工作流_JBPM之Helloword
- APISpace 全国行政区查询API 方便好用
- 宋佳乐和郭晓婷天津之眼观景照片
- 从《天龙八部 3D》到《诛仙》手游,我们如何连续做出成功产品?
- ArcGIS中,一个点集里的点两两连线,比如有4个点,就连3+2+1=6条线
- linux proftpd 用户,Linux下安装和配置proftpd教程
- Arduino温度传感器全系列使用详解
- 华中科技大学 教学大纲 计算机,《计算理论》课程教学大纲
- Java百度鹰眼轨迹批量上传
- 深度学习3—用三层全连接神经网络训练MNIST手写数字字符集
- 2019小明的比赛c++
热门文章
- Angular 监听滚动条事件
- [期末复习]路由交换考试题
- 学计算机女生颜值,女生就该拥有高颜值笔记本!适合女生的笔记本电脑推荐
- 计算机二级考试内容vf,计算机二级VF考试内容大纲
- php 百度收录api_php获取百度收录、百度热词及百度快照的方法
- 链表上的舞者——舞蹈链(DLX算法)
- 2.4G-WiFi连接路由器过程
- es文件浏览器通过ftp服务器,es文件浏览器如何利用ftp服务器
- 微信小程序是如何实现快速编译的?
- 用JAVA实现蓝桥杯基础训练之十六进制转十进制:从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。