CentOS7 安装OpenLDAP 及 PhpLDAPAdmin

CentOS 7.0

OpenLDAP:2.4.44

 PhpLDAPAdmin : 5.4.16

 

OpenLDAP

1、安装OpenLDAP

yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap

检查安装的内容

rpm -qa |grep openldap

 

2、配置OpenLDAP

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

3、设置密码

slappasswd

New password: 
Re-enter new password: 
{SSHA}oi1jfMrNMdP7kAcJ7h1OWbW90JmsfFHQ    #将该行复制,然后后面一步保存到slapd.conf中

复制加密后的密码,然后后面一步保存到slapd.conf中

 

4、创建slapd.conf

cd /etc/openldap
touch slapd.conf    #创建该配置文件

slapd.conf 的内容如下:

include         /etc/openldap/schema/corba.schema
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/duaconf.schema
include         /etc/openldap/schema/dyngroup.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/java.schema
include         /etc/openldap/schema/misc.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/openldap.schema
include         /etc/openldap/schema/ppolicy.schema
include         /etc/openldap/schema/collective.schema
# OpenLDAP 服务允许连接的客户端版本。
allow bind_v2
# OpenLDAP 进程启动时,pid 文件存放路径。
pidfile         /var/run/openldap/slapd.pid
# 日志级别
loglevel
296
# 日志文件路径
logfile /var/run/slapd.log # OpenLDAP 参数文件存放的路径。 argsfile /var/run/openldap/slapd.args # 传输加密的配置信息 TLSCACertificatePath /etc/openldap/certs TLSCertificateFile "\"OpenLDAP Server\"" TLSCertificateKeyFile /etc/openldap/certs/password database config access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none database monitor access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.exact="cn=test,DC=service,DC=com" read by * none # 指定OpenLDAP 数据库类型。 database bdb # 指定OpenLDAP 服务域名(DN) suffix "DC=service,DC=com" checkpoint 1024 15 # 指定OpenLDAP 服务管理员信息。 rootdn "CN=test,DC=service,DC=com" # 指定OpenLDAP 服务管理员密码,使用slappasswd -s your_password来获取加密密码
#此处是上面一步复制的新密码 rootpw {SSHA}oi1jfMrNMdP7kAcJ7h1OWbW90JmsfFHQ # 指定OpenLDAP 数据库文件的存放目录。 directory
/var/lib/ldap # 创建OpenLDAP 索引。 index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub

红色部分为修改内容,注意 rootpw 后面是上一步复制的新密码

#测试配置文件是否有问题
slaptest -f /etc/openldap/slapd.conf

config file testing succeeded  #看到这行说明配置没有问题

 

5、操作

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

#删除最先的配置文件生成的信息
rm -rf /etc/openldap/slapd.d/*

#重新生成配置文件
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/

#授权新配置文件
chown -R ldap.ldap /etc/openldap/slapd.d/

#重启服务
service slapd restart

 

PhpLDAPAdmin

1、安装PhpLDAPAdmin

yum install -y phpldapadmin

注意: 如果没有安装EPEL,则会报错:没有可用软件包 phpldapadmin。

下面为安装EPEL,没报上述错误,则跳过下面这段:

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist      ##检查是否已添加至源列表

2、修改  /etc/httpd/conf.d/phpldapadmin.conf

vi /etc/httpd/conf.d/phpldapadmin.conf

内容为:

#
#  Web-based tool for managing LDAP servers
#

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs

<Directory /usr/share/phpldapadmin/htdocs>
  <IfModule mod_authz_core.c>
    # Apache 2.4
    Require local
    Require ip 192.168.1.102  #增加远程启动机器的IP
  </IfModule>
  <IfModule !mod_authz_core.c>
    # Apache 2.2
    Order Deny,Allow
    Allow from all        #将 Deny 修改为 Allow
    Allow from 127.0.0.1
    Allow from ::1
  </IfModule>
</Directory>

3、修改 /etc/phpldapadmin/config.php

因为该文件比较长,建议在windows上修改完再上传到linux上。

$servers->setValue('login','attr','dn');    #放开这一行的注释
//$servers->setValue('login','attr','uid');    #将这行注释掉

4、处理登陆账号问题

cd /usr/local/
mkdir openldap
cd openldap
vi root.ldif        #创建该文件

内容为:

dn: dc=service,dc=com
objectclass: dcObject
objectclass: organization
o: Yunzhi,Inc.
dc: service

dn: cn=test,dc=service,dc=com
objectclass: organizationalRole

执行该命令:

ldapadd -x -D "cn=test,dc=service,dc=com" -W -f root.ldif

 

5、如果已经关闭了 selinux则跳过这一步,如果没有则有两种办法:

     第一种,关闭selinux,然后重启

vi /etc/selinux/config

     修改该文件

SELINUX=disabled  #将原来的 SELINUX=enforcing 修改为 SELINUX=disabled

     重启系统让该设置生效

 

     第二种方法:

getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> off
setsebool -P httpd_can_connect_ldap on
getsebool httpd_can_connect_ldap
httpd_can_connect_ldap --> on

 

6、重启服务

service httpd restart

 

7、访问网址: http://192.168.1.179/phpldapadmin  (192.168.1.179为服务器地址)

用户名为: cn=test,dc=service,dc=com

密码为 slappasswd 命令设定的密码

posted on 2018-01-17 22:26  HB1  阅读(884)  评论(0)    收藏  举报

导航