ubuntu18.04 搭建LDAP服务器
前言
LDAP(Lightweight Directory Access Protocol)是基于X.500标准的轻量级目录访问协议,在Unix操作系统里面,和NIS,DNS一样,属于名称服务(Naming Service)。本文描述了如何在Ubuntu操作系统上面,搭建LDAP服务。
第一步:修改hostname
127.0.0.1 localhost
127.0.1.1 ldap.ldapdomain.com alternative
192.168.5.180 ldap.ldapdomain.com
注:在 Debain 里安装 OpenLDAP 时,Debian 会提示给 LDAP 的 admin 用户设置一个密码,然后就自动地创建了一个默认的数据库,这个默认的数据库使用了一个默认的 base DN,默认情况下,Debian 会使用本机的域名来作为 base DN,比如如果我的域名是 ldapdomain.com,那么 Debian 就会使用 dc=ldapdomain,dc=com
作为我的默认 base DN
第二步:安装,配置软件
sudo
apt-get
install
-y slapd ldap-utils
注:
slapd: openldap服务端程序组件
slapd: 守护进程
slapdn
slapadd
slapcat: 导出ldap数据库文件为.ldif格式
......
......
ldap-utils: openldap命令行工具集(ldapsearch, ldapmodify, ldapadd,......)
配置/etc/ldap/ldap.conf, 添加BASE 和 URI. 这里的BASE为dc=ldapdomain,dc=com URI为ldap://192.168.5.180:389
BASE
dc
=ldapdomain,
dc
=com
URI ldap:
//192
.168.5.180:389
通过如下命令,对slapd进行再配置(如果默认配置可以满足需求,则跳过这一步)
dpkg-reconfigure slapd
注:reconfigure的内容,包括baseDN,admin管理员密码,后端数据库选择(HDB,BDB),是否删除旧的数据库,是否允许LDAPv2协议
安装php的ldap管理端软件:
apt-get
install
-y phpldapadmin
修改相应的配置文件/etc/phpldapadmin/config.php,做如下修改:
(1) $servers->setValue('server'. 'host', '127.0.0.1')#修改为某个内网可访问的IP地址
(2) $servers->setValue('server'. 'base', array('dc=example,dc=com')) #修改为baseDN,这里修改为dc=ldapdomain,dc=com
(3) $servers->setValue('login', 'bind_id', 'cn=admin,dc=example,dc=com')#修改为baseDN下的admin, cn=admin,dc=ldapdomain,dc=com
(4) $config->custom->appearance['hide_template_warning'] = false #false修改为true
防火墙放行Apache2:
ufw allow
"Apache"
ufw allow
"Apache Full"
ufw allow
"Apache Secure"
之后,重启服务:
/etc/init
.d
/apache2
restart
通过curl http://<IP-Address>/phpldapadmin 测试页面是否能够访问,如果成功之后,通过浏览器访问的效果如下:
第三步:LDAP防火墙ufw配置
添加tcp端口389(ldap通信端口), 以及tcp端口636(ldaps通信端口),这里的server端的IP地址为192.168.5.180:
ufw allow proto tcp from any to 192.168.5.180 port 389
ufw allow proto tcp from any to 192.168.5.180 port 636
第四步:配置检查,添加数据
LDAP的配置是由cn=config的树形解构组成,可以通过ldapseach查到该树形结构存在哪些dn:
通过sasl的external认证方式进行查询:
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:
///
-b cn=config dn:
注:
-Q : sasl认证model(相对于-x简单认证)
-LLL: 以ldif格式展示结果; 忽略注释; 忽略版本
-Y EXTERNAL: 用sasl的external认证方法
-H ldapi:/// : 连接localhost
-b cn=config dn: 查询所有cn=config分支的dn
通过简单认证,查询ldap的baseDN中的内容:
ldapsearch -x -LLL -H ldap:
///
-b
dc
=ldapdomain,
dc
=com
ldapsearch -x -LLL -H ldap:
///
-b
dc
=ldapdomain,
dc
=com dn:
#only return dn object
ldapsearch -x -LLL -h 192.168.5.180 -p 389 -b
dc
=ldapdomain ,
dc
=com
ldapsearch -x -LLL -h 192.168.5.180 -p 389 -b
dc
=ldapdomain ,
dc
=com dn:
#only return dn object
ldapsearch -x -LLL -h 192.168.5.180 -p 389 -b
dc
=ldapdomain,
dc
=com objectClass=*
#匹配objectClass
创建新的结构,保存为ldif文件,并将其添加到数据库中:
vi
structure.ldif
内容如下:
dn: ou=people,
dc
=ldapdomain,
dc
=com
objectClass: organizationalUnit
ou: people
dn: ou=group,
dc
=ldapdomain,
dc
=com
objectClass: organizationalUnit
ou: group
注:在structure.ldif中,添加了两个条目,都属于organizationalUnit对象,一个的属性为people,另一个属性为group
利用ldapadd命令将ldif导入到数据库中:
ldapadd -x -D cn=admin,
dc
=ldapsearch,
dc
=com -W -f structure.ldif
注:
-D cn=admin,dc=ldapsearch,dc=com: 由于要往数据库中写内容,所以需要用admin用户的权限进行操作
-W: 在命令行中提示输入admin用户的密码
-f: 需要导入的ldif文件的路径
导入完毕之后,通过命令可以看到ldap数据库中已经存在了相应的内容:
root@alternative:~
# ldapsearch -x -LLL -h 192.168.5.180 -p 389 -b dc=ldapdomain,dc=com objectClass=*
dn:
dc
=ldapdomain,
dc
=com
objectClass:
top
objectClass: dcObject
objectClass: organization
o: ldapdomain.com
dc
: ldapdomain
dn: cn=admin,
dc
=ldapdomain,
dc
=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
dn: ou=people,
dc
=ldapdomain,
dc
=com
objectClass: organizationalUnit
ou: people
dn: ou=group,
dc
=ldapdomain,
dc
=com
objectClass: organizationalUnit
ou: group
安装服务端
安装必要的包
sudo apt install slapd ldap-utils
提示:使用/etc/init.d/slapd启停LDAP服务
/etc/init.d/slapd start|stop
向数据库中插入内容
dn: ou=Users,dc=test,dc=com
objectClass: organizationalUnit
ou: Usersdn: ou=Groups,dc=test,dc=com
objectClass: organizationalUnit
ou: Groups
dn: cn=APP,ou=Groups,dc=test,dc=com
objectClass: posixGroup
cn: APP
gidNumber: 5000dn: uid=zhangsan,ou=Users,dc=test,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: zhangsan
sn: zhangsan
givenName: zhangsan
cn: zhangsan
displayName: zhangsan
uidNumber: 10000
gidNumber: 5000
userPassword: Aa123456
gecos: zhangsan
loginShell: /bin/bash
homeDirectory: /home/zhangsan
导入文件内容到数据库中
ldapadd -x -D cn=admin,dc=test,dc=com -W -f content.ldif
Enter LDAP Password:
adding new entry "ou=Users,dc=test,dc=com"adding new entry "ou=Groups,dc=test,dc=com"adding new entry "cn=APP,ou=Groups,dc=test,dc=com"adding new entry "uid=zhangsan,ou=Users,dc=test,dc=com"
校验添加是否成功
ldapsearch -x -LLL -b dc=test,dc=com 'uid=zhangsan' cn gidNumber
输出:
dn: uid=zhangsan,ou=Users,dc=test,dc=com
cn: zhangsan
gidNumber: 5000
使用ldapscripts去管理LDAP
sudo apt install ldapscripts
配置/etc/ldapscripts/ldapscripts.conf:
SERVER=localhost
BINDDN='cn=admin,dc=test,dc=com'
BINDPWDFILE="/etc/ldapscripts/ldapscripts.passwd"
SUFFIX='dc=test,dc=com'
GSUFFIX='ou=Groups'
USUFFIX='ou=Users'
MSUFFIX='ou=Computers'
GIDSTART=5000
UIDSTART=10000
MIDSTART=10000
把LDAP管理员的密码写入ldapscripts.passwd(假设管理员的密码为Aa123456)
echo -n 'Aa123456' > /etc/ldapscripts/ldapscripts.passwd
sudo chmod 400 /etc/ldapscripts/ldapscripts.passwd
然后就可以使用ldapscripts提供的命令管理LDAP,如:
ldapaddgroup bcm
Successfully added group bcm to LDAP
ldapadduser lisi bcm
Successfully added user lisi to LDAP
Successfully set password for user lisi
ldapsetpasswd lisi qwerty
Successfully set encoded password for user uid=lisi,ou=Users,dc=test,dc=com
安装客户端
sudo apt install libnss-ldap
sudo apt install libnss-ldap libpam-ldap nscd
sudo auth-client-config -t nss -p lac_ldap
sudo pam-auth-update
LDAP介绍
安装LDAP
基于Debian系列的Ubuntu等系统,可以通过以下命令安装openldap:
sudo apt-get install slapd ldap-utils
配置LDAP
打开'/etc/ldap/ldap.conf'文件按照以下内容配置修改:
sudo vi /etc/ldap/ldap.conf
#
# LDAP Defaults
## See ldap.conf(5) for details
# This file should be world readable but not world writable.BASE dc=cpu-os,dc=com
URI ldap://172.30.44.140#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
sudo dpkg-reconfigure slapd
# extended LDIF
#
# LDAPv3
# base <dc=your_company,dc=com> (default) with scope subtree
# filter: (objectclass=*)
# requesting: ALL
## your_company.com
dn: dc=your_company,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
...# admin, your_company.com
dn: cn=admin,dc=your_company,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator# search result
search: 2
result: 0 Success# numResponses: 3
# numEntries: 2
LDAP服务器管理
在命令行模式下管理LDAP服务器是相当困难的,所以在这里我使用了一个更简单的GUI管理工具“phpldapadmin”。
sudo apt-get install phpldapadmin
sudo ln -s /usr/share/phpldapadmin/ /var/www/phpldapadmin
打开‘/etc/phpldapadmin/config.phhp’文件,替换配置的名称。按照以下显示修改:
unixmen@server:~$ sudo vi /etc/phpldapadmin/config.php
$servers = new Datastore();
$servers->newServer('ldap_pla');
$servers->setValue('server','name','your_company LDAP Server');
$servers->setValue('server','host','your_server_ip');
$servers->setValue('server','base',array('dc=your_company,dc=com'));
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=admin,dc=your_company,dc=com');
sudo /etc/init.d/apache2 restart
root@nfs-virtual-machine:/home/nfs# ufw allow 80
防火墙规则已更新
规则已更新(v6)
root@nfs-virtual-machine:/home/nfs# ufw allow 389
防火墙规则已更新
规则已更新(v6)
登陆LDAP服务端
至此LDAP的管理服务phpldapadmin算是搭建完成了。
ubuntu18.04 搭建LDAP服务器相关推荐
- Ubuntu18.04搭建FTP服务器
Ubuntu18.04搭建FTP服务器 1.安装vsftpd sudo apt-get install vsftpd 2.启动 service vsftpd start 3.查看运行状态 servic ...
- Ubuntu18.04搭建nginx服务器
1.ubuntu可以从源直接安装nginx $ sudo apt-get update $ sudo apt-get install nginx PS:实战发现有部分ubuntu死活装不上nginx, ...
- 虚拟机ubuntu搭建ftp服务器配置,虚拟机VMware15 Ubuntu18.04 搭建FTP服务器
O365(世纪互联)SharePoint 之站点个性化 前言 上一篇文章中,我们简单介绍了如何使用O365中SharePoint Online文档库,SharePoint Online的优点就是提供给 ...
- Ubuntu18.04搭建Web服务器
安装Apache服务 sudo apt-get install apache2 配置文件在/etc/apache2/sites-available/000-default.conf,通过: vi /e ...
- 对基于ubuntu18.04搭建双线adsl路由器和私有云服务器(samba、ftp和http)一文的更正2
在<基于ubuntu18.04搭建双线adsl路由器和私有云服务器(samba.ftp和http)>一文中对于adsl断线重拨后自动更新路由表的脚本,少了自动平衡双线adsl流量的命令,将 ...
- 对基于ubuntu18.04搭建双线adsl路由器和私有云服务器(samba、ftp和http)一文的更正
在<基于ubuntu18.04搭建双线adsl路由器和私有云服务器(samba.ftp和http)>一文中有两处错误,更正如下: 1)"7b. 配置双线adsl路由表" ...
- ubuntu18.04搭建SLAM环境 转 高翔 十四讲匹配环境
ubuntu18.04搭建SLAM环境_stjuliet的博客-CSDN博客_ubuntu安装slam
- Ubuntu16.04 搭建SVN服务器(建立版本仓及import和checkout代码)
Ubuntu16.04 搭建SVN服务器(建立版本仓及import和checkout代码) 1. 安装subversion sudo apt-get install subversion 2. ...
- ldap基本dn_2020年,手把手教你如何在CentOS7上一步一步搭建LDAP服务器的最新教程...
1. 什么是LDAP 1.1 什么是LDAP? 要想知道一个概念,最简单的办法就是wikipedia,当然也可以百科. LDAP全称是轻型目录访问协议(Lightweight Directory Ac ...
最新文章
- ITSM五大趋势助力企业数字化转型
- VMware vCenter 6.0 安装及群集配置介绍
- 后备干部,究竟应该提拔什么样的员工?
- python编写一个软件-使用python制作一个解压缩软件
- Netty Java快速指南
- 物理实验模拟软件_网络系统实验平台:发展现状及展望
- hql查询之实体对象查询
- linux fastboot 工具下载,linuxadb fastboot 和VNC工具的安装使用
- 深入浅出BP神经网络算法的原理
- servlet实现统计网站访问量
- 电脑缓存,缓存设置(电脑缓存设置多少合理)
- Gabor变换(1)
- 在proteus中的排阻的查找_PROTEUS中这个排阻怎么找到?
- 骨传导耳机的缺点有哪些?骨传导耳机的优缺点分析
- yahoo,hotmail邮箱无法收到邮件
- 视频在线点播功能如何实现?
- 论文查重的次数是否会有限制?
- 麒麟Kylin系统适配gStore图数据库系统
- 推荐几款实现内网穿透的实用工具(转载)
- 《软技能》读书笔记(上)