CentOS7.x 安装 openldap 服务

标签(空格分隔): 运维系列


一: 安装openladp 配置

1.1:系统环境介绍

环境
系统版本:centos7.4

openldap版本2.4

安装和配置
安装并启动服务


1.2 安装openldap服务

yum install openldap openldap-servers openldap-clients


拷贝数据库配置文件

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

image_1fk15abre9enas41l9019h6nm9.png-144.8kB


DB_CONIFG中主要是关于Berkeley DB的相关的一些配置

 启动OpenLDAP Server:

systemctl start slapd 
systemctl enable slapd
systemctl status slapd
slapd即standard alone ldap daemon,该进程默认监听389端口

image_1fk15bruo1dfe1ft270n144r132jm.png-269.8kB


1.3 配置openldap服务

设置root用户密码
先用一个命令生成一个LDAP管理用户root密码:

slappasswd -s 123456
New password:
Re-enter new password:
{SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od  #记住这个,下面会用到

----
{SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo
----

image_1fk15dqi2m3r1mhe1ck8q7416om23.png-72.4kB


新建一个rootpwd.ldif(名称是自定义的)的文件:/root/ldif
mkdir -p /root/ldif
cd /root/ldif

vim rootpwd.ldif
---
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo
----


1) ldif即LDAP Data InterchangeFormat,是LDAP中数据交换的一种文件格式。文件内容采用的是key-value形式,注意value后面不能有空格。

2)上面内容中dn即distingush name

3)olc即Online Configuration,表示写入LDAP后不需要重启即可生效
changetype: modify表示修改一个entry,changetype的值可以是add,delete, modify等。

4)add: olcRootPW表示对这个entry新增了一个olcRootPW的属性
olcRootPW: {SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od指定了属性值



下面使用ldapadd命令将上面的rootpwd.ldif文件写入LDAP:
 ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.ldif

image_1fk15ls1g11i8sa28dr1fs29ch2g.png-72.6kB

导入schema

导入schema,schema包含为了支持特殊场景相关的属性,可根据选择导入,这里先全部导入:
  ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done

image_1fk15nbds56g1l2e1mda10v11cnu2t.png-190.3kB


1.4 导入domain

新建一个domain.ldif的文件:
vim domain.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=admin,dc=flyfish,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=flyfish,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=flyfish,dc=com

#这个是admin的密码设置/如果要修改密码把这段拿出来 add改成replace,然后执行 ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.ldif


dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo


dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=flyfish,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=flyfish,dc=com" write by * read
----

image_1fk165nkv1n1019dbbg9qriot63a.png-144.4kB


1.5 添加条目

添加基本目录

新建一个basedomain.ldif的文件:
vim basedomain.ldif
----
注意替换上面文件内容中dn为具体的域信息理解dn,cn,dc

DC即Domain Component,LDAP目录类似文件系统目录dc=flyfish,dc=com相当于/com/
flyfish
CN即Common Name,CN有可能代表一个用户名,例如cn=Manager,dc=flyfish,dc=com表示在/com/flyfish域下的管理员用户Manager
OU即Organizational Unit,例如ou=People,dc=flyfish,dc=com表示在/com/flyfish域下的一个组织单元People
写入:

ldapadd -x -D cn=admin,dc=flyfish,dc=com -W -f basedomain.ldif

image_1fk1743i61a0t1b9711bg9e31c3v3n.png-114.2kB

测试:

ldapsearch -LLL -W -x -D "cn=admin,dc=flyfish,dc=com" -H ldap:/// -b "dc=flyfish,dc=com"

image_1fk18esfoorcqi21jtm8bf1s6m86.png-140.8kB


##二:ldap 客户端工具连接

2.1 ldapadmin windows 客户端工具连接

ldap 客户端链接:
管理工具
可以在局域网内的windows电脑上下载ldapadmin作为管理工具 下载地址: http://www.ldapadmin.org/download/ldapadmin.html

image_1fk19r3jhch249t9001gpc1rme9j.png-189.1kB

image_1fk19rosf88lh7511ve13po1vrka0.png-363.6kB

image_1fk19sh3r138st854r6mg5lvaat.png-136.7kB


2.2 phpldapadmin 配置部署

phpldapadmin 配置:
 一、phpldapadmin安装
1、安装Apache PHP
    yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml
    
    php需使用5版本,phpldapadmin是基于php5开发,若使用其他php版本,会出现兼容性支持问题,如password_hash问题



2、修改httpd访问端口
# vim /etc/httpd/conf/httpd.conf
Listen 80
修改为
Listen 58100

如果主机已经启用 80 端口要改端口如果没有启用就默认用80 不用改


安装phpldapadmin
   # wget https://nchc.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.tgz
   
   tar -zxvf phpldapadmin-1.2.3.tgz
   
   mv phpldapadmin-1.2.3 /var/www/html/phpldapadmin
   
   编辑config.php
   cd /var/www/html/phpldapadmin/config
   
   cp -p config.php.example config.php
   vim config.php
   ---
   修改:
    $servers->newServer('ldap_pla');
    $servers->setValue('server','name','My LDAP Server');
    $servers->setValue('server','host','192.168.100.14');
    $servers->setValue('server','port',389);
    $servers->setValue('server','base',array('dc=flyfish,dc=com'));
    $servers->setValue('login','auth_type','session');
    $servers->setValue('login','bind_id','cn=admin,dc=flyfish,dc=com');
    $servers->setValue('login','bind_pass','123456');
   ---
   
   serivce httpd restart 
   

image_1fk1adfoe1gin1log1vimjkbjh1bq.png-94.6kB

image_1fk1b81t4qbi15pt1hpo4tbr28c7.png-50.2kB

打开web页面:
     http://192.168.100.14/phpldapadmin

image_1fk1bbh4v1707fbb1k761vh661qej.png-361.7kB

image_1fk1bcmre17h5oan1i731h5v1uqlg0.png-307.2kB

image_1fk1hm02gts2kudtr5jk1plggd.png-531.3kB