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 命令设定的密码
浙公网安备 33010602011771号