1 配置场景
2 配置任务
在Server02上完成LDAP配置安装openldap,为apache服务提供账户认证;
创建skills.cn目录服务,并创建用户组ldsgp ,将zsuser、lsusr、wuusr。
在Server04上配置WebServer 提供www.skills.com
skills公司的门户网站;
使用apache服务;
网页文件放在/htdocs/skills;
服务以用户webuser运行;
首页内容为“This is the front page of skills’s website.”;
/htdocs/sdskills/staff.html内容为“Staff Information”;
该页面需要员工的账号认证才能访问;
· 员工账号存储在ldap中,账号为zsuser、lsus
网站使用https协议;
SSL使用RServer颁发的证书, 颁发给:
C = CN
ST = China
L = ShangDong
O = skills
OU = Operations Departments
CN = *.skills.cn
Rserver的CA证书路径:/CA/cacert.pem
签发数字证书,颁发者:
C = CN;
O = Inc
OU = www.skills.com
CN = skill Global Root CA
客户端访问https时应无浏览器(含终端)安全警告信息;
当用户使用http访问时自动跳转到https安全连接;
当用户使用skills.cn或any.skills.cn(any代表任意网址前缀)访问时,自动跳转到www.skills.com。
3 基础知识
详见参考文献[6] OpenLDAP 概念与工作原理介绍 https://blog.51cto.com/wzlinux/1834219
要点
4 配置过程
4.1 安装OpenLDAP服务器
关闭SELinux和防火墙 关闭Selinux和发防火墙[root@Server04 ~]# setenforce 0
setenforce: SELinux is disabled
[root@Server04 ~]# systemctl stop firewalld在Server02上安装ldap软件包 在Server02上安装ldap软件包[root@server02 ~]# yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel
3.拷贝数据库配置配置文件,并启动服务 [root@server02 ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG[root@server02 ~]# chown ldap. /var/lib/ldap/DB_CONFIG
[root@server02 ~]# systemctl start slapd
[root@server02 ~]# systemctl enable slapd
[root@server02 ~]# netstat -antup | grep -i 389
tcp 0 0 0.0.0.0:389 0.0.0.0: LISTEN 10106/slapd
tcp6 0 0 :::389 ::: LISTEN 10106/slapd
#说明:netstat命令可以通过yum -y install net-tools安装4.2 配置LDAP服务器
4.2.1 创建LDAP管理员密码
运行以下命令以创建LDAP root密码。后面要使用此LDAP管理员(root)密码。 创建ldap root密码[root@server02 ~]# slappasswd -h {SSHA} -s 123456
{SSHA}kHw6JLFduJw5BaxHKfMkwdeWudkzrS/9
#说明:
(1) 命令中的123456是输入的密码
(2){SSHA}kHw6JLFduJw5BaxHKfMkwdeWudkzrS/9 是命令生成的输入密码的加密哈希值,需要在LDAP配置文件中使用该哈希值。所以记下这一点并把它放在一边。4.2.2 配置前说明
OpenLDAP服务器配置文件位于 /etc/openldap/slapd.d/ 。要开始配置LDAP,我们需要更新变量 “olcSuffix” 和 “olcRootDN“ 。
- olcSuffix - 数据库后缀,它是LDAP服务器提供信息的域名。简单来说,它应该更改为您的域名。
- olcRootDN - 具有对LDAP执行所有管理活动的无限制访问权限的用户的根专有名称(DN)条目,如root用户。
- olcRootPW - 上述RootDN的LDAP管理员密码。
以上条目需要在/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif文件中更新。建议不要手动编辑LDAP配置,因为每次运行ldapmodify命令时都会丢失更改。
OpenLDAP LDIF 详解 LDIF(LDAP Data Interchanged Format)的轻量级目录访问协议数据交换格式的简称,是存储 LDAP 配置信息及目录内容的标准文本文件格式,之所以使用文本文件来存储这些信息是为了方便读取和修改,这也是其他大多数服务配置文件所采取的格式。通常用来交换数据并在 OpenLDAP 服务器之间互相交换数据,并且可以通过 LDIF 实现数据文件的导入、导出以及数据文件的添加、修改、重命名操作,这些信息需要按照 LDAP 中 schema 的规范进行操作,并会接受 schema 的检查,如果不符合 OpenLDAP schema 规范要求,则会提示相关语法错误。
4.2.3 设置OpenLDAP管理员密码密码
按照如下步骤完成操作 [root@server02 ~]# vi chrootpw.ldif#chrootpw.ldif文件内容如下:
dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}kHw6JLFduJw5BaxHKfMkwdeWudkzrS/9
[root@server02 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry “olcDatabase={0}config,cn=config”
4.2.3 导入基本模式
按照如下步骤完成操作
[root@server02 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry “cn=cosine,cn=schema,cn=config”
[root@server02 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry “cn=nis,cn=schema,cn=config”
[root@server02 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry “cn=inetorgperson,cn=schema,cn=config”
4.2.4 创建skills.cn域
按照如下步骤完成操作
创建一个新密码[root@server02 ~]# slappasswd
New password: [输入123456]
Re-enter new password:
{SSHA}9Gh15+Bw6s8CDlhMuOt+Rr0AOqatXKsz
创建chdomain.ldif文件,并导入[root@server02 ~]# vi chdomain.ldif
#chdomain.ldif内容如下:
dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {0}to by dn.base=”gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth” read by dn.base=“cn=Manager,dc=skills,dc=cn” read by none
dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=skills,dc=cn
dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,dc=skills,dc=cn
dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}9Gh15+Bw6s8CDlhMuOt+Rr0AOqatXKsz
dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange by dn=“cn=Manager,dc=walkingcloud,dc=cn” write by anonymous auth by self write by none olcAccess: {1}to dn.base=”” by read olcAccess: {2}to by dn=”cn=Manager,dc=skills,dc=cn” write by read
[root@server02 ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry “olcDatabase={1}monitor,cn=config”
modifying entry “olcDatabase={2}hdb,cn=config”
modifying entry “olcDatabase={2}hdb,cn=config”
modifying entry “olcDatabase={2}hdb,cn=config”
modifying entry “olcDatabase={2}hdb,cn=config”
4.3 安装phpLDAPadmin
安装phpLDAPadmin[root@server02 ~]# yum -y install httpd
[root@server02 ~]# mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf_bak
ServerName ldap.skills.cn:80
# # Possible values for the Options directive are “None”, “All”, # or any combination of: # Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # Note that “MultiViews” must be named explicitly —- “Options All” # doesn’t give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be “All”, “None”, or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Require all granted
参考文献
- LDAP 基础知识 https://www.jianshu.com/p/37ca270e2628
- 在CentOS 7 / RHEL 7配置OpenLDAP服务 https://blog.51cto.com/moerjinrong/2149584
LDAP基础内容介绍 https://blog.csdn.net/Lakers2015/article/details/111614841
- LDAP 介绍 https://zhuanlan.zhihu.com/p/260518807
5. ldap从删库到跑路 https://www.bilibili.com/video/BV16441167md?p=4&vd_source=70f19847c370fb92e0134e7f6f76f350
6. OpenLDAP 概念与工作原理介绍 https://blog.51cto.com/wzlinux/1834219
7. CentOS7下搭建OpenLDAP服务器 https://blog.51cto.com/u_15505951/5061152
8. Centos 为Aapche 使用LDAP 身份验证 https://blog.51cto.com/jin771998569/1193377
- LDAP 介绍 https://zhuanlan.zhihu.com/p/260518807
CentOS-7.2部署OpenLDAP服务器以及客户端 https://developer.aliyun.com/article/901145
- Centos7搭建openldap完整详细教程(真实可用)https://blog.csdn.net/weixin_41004350/article/details/89521170
11.在CentOS 7上安装OpenLDAP服务器 https://www.jianshu.com/p/e4f03238f81a
- 在CentOS 7上安装OpenLDAP服务器 https://lework.github.io/2019/07/18/ldap-install/
- OpenLDAP 服务端安装与配置以及原理 https://blog.51cto.com/luweiv998/2124588
- OpenLDAP介绍及工作原理详解.PDF https://max.book118.com/html/2019/1003/6031114125002111.shtm
- openldap官网 https://www.openldap.org/
- OpenLDAP https://wiki.shileizcc.com/confluence/display/openldap/OpenLDAP
- Linux Unix OpenLDAP实战指南 Linux UNIX OpenLDAP实战指南.郭大勇.2016(1).pdf
- OpenLdap-如何使用phpLdapAdmin创建CN用户、OU用户组 https://blog.csdn.net/qq_35550345/article/details/120055127?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-120055127-blog-52141397.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-120055127-blog-52141397.pc_relevant_paycolumn_v3&utm_relevant_index=2