一、介绍

OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP),属于开源集中账号管理架构的实现,且支持众多系统版本,被广大互联网公司所采用。

二、安装LDAP

1、安装依赖包

yum install -y openldap openldap-*
yum install -y nscd nss-pam-ldapd nss-* pcre pcre-*

2、生成管理员账号

slappasswd -s 123456

3、修改配置文件

vim /etc/openldap/slapd.d/cn\=config.ldif
olcLogLevel: 296
cachesize: 1000
checkpoint: 2048 10
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
olcSuffix: dc=blpwdev,dc=com
olcRootDN: cn=admin,dc=blpwdev,dc=com
olcRootPW: {SSHA}JYkjsSLkd7sEFGBpPzqxIa2Gto9mSpjY
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=admin,dc=blpwdev,dc=com" read by * none

4、生成库文件

cp /usr/share/openldap-servers/DB_CONFIG.example /etc/openldap/DB_CONFIG
chown ldap.ldap DB_CONFIG
chmod 700 DB_CONFIG

5、修改配置文件脚本

vim /usr/share/migrationtools/migrate_common.ph +71
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "blpwdev.com";
# Default base
$DEFAULT_BASE = "dc=blpwdev,dc=com";

6、创建base文件

vim base.ldif
dn: dc=blpwdev,dc=com
objectClass: organization
objectClass: dcObject
dc: blpwdev
o: blpwdev

dn: ou=People,dc=blpwdev,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=group,dc=blpwdev,dc=com
objectClass: organizationalUnit
ou: group

7、创建用户和组

groupadd gtest1
groupadd gtest2
useradd -g gtest1 test1
useradd -g gtest2 test2
echo '123456' | passwd --stdin test1
echo '123456' | passwd --stdin test2

8、导出新建的用户和组

grep -E "test1|test2" /etc/passwd > /root/users
grep -E "gtest1|gtest2" /etc/group > /root/groups

9、生成ldif文件

/usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif
/usr/share/migrationtools/migrate_group.pl /root/groups > /root/groups.ldif

10、导入

ldapadd -x -H ldap://blpwdev.com -D "cn=admin,dc=blpwdev,dc=com" -W -f base.ldif
ldapadd -x -H ldap://blpwdev.com -D "cn=admin,dc=blpwdev,dc=com" -W -f users.ldif
ldapadd -x -H ldap://blpwdev.com -D "cn=admin,dc=blpwdev,dc=com" -W -f groups.ldif

11、测试

ldapsearch -LLL -w 123456 -x -H ldap://blpwdev.com -D "cn=admin,dc=blpwdev,dc=com" -b "dc=blpwdev,dc=com"

12、备份

ldapsearch -LLL -w 123456 -x -H ldap://blpwdev.com -D "cn=admin,dc=blpwdev,dc=com" -b "dc=blpwdev,dc=com" > bak-ldap.ldif

13、生成日志

mkdir /var/log/ldap
chown ldap.ldap /var/log/ldap
echo "local4.* /var/log/ldap/ldap.log" >> /etc/rsyslog.conf
systemctl restart rsyslog

二、配置web管理接口

1、安装依赖包

yum install httpd php php-ldap php-gd -y

2、下载安装包

wget http://prdownloads.sourceforge.net/lam/ldap-account-manager-3.7.tar.gz?download
mv ldap-account-manager-3.7.tar.gz\?download ldap-account-manager-3.7.tar.gz
tar fx ldap-account-manager-3.7.tar.gz
mv ldap-account-manager-3.7 /var/www/html/ldap

3、修改配置文件

cd /var/www/html/ldap/config/
cp config.cfg.sample config.cfg
cp lam.conf_sample lam.conf
sed -i 's#cn=Manager#cn=admin#g' lam.conf
sed -i 's#dc=my-domain#dc=blpwdev#g' lam.conf
chown -R apache.apache /var/www/html/ldap

4、启动httpd

systemctl restart httpd
systemctl enable httpd

5、测试

http://10.0.0.100/ldap/templates/login.php

Centos7 安装部署OpenLDAP_LDAP

三、配置svn+sasl通过ldap进行身份验证

1、安装依赖包

yum install -y *sasl*
saslauthd -v

2、修改配置文件

sed -i 's#MECH=pam#MECH=ldap#g' /etc/sysconfig/saslauthd
vi /etc/saslauthd.conf
ldap_servers: ldap://blpwdev.com/
ldap_bind_dn: cn=admin,dc=blpwdev,dc=com
ldap_bind_pw: 123456
ldap_search_base: ou=People,dc=blpwdev,dc=com
ldap_filter: uid=%U
ldap_password_attr: userPassword
vim /etc/sasl2/svn.conf
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN

3、启动服务

systemctl restart saslauthd

4、修改svn配置文件

vim /data/svn/repo/conf/svnserve.conf
[general]
anon-access = read
auth-access = write
# password-db = /data/svn/repo/conf/passwd
authz-db = /data/svn/repo/conf/authz
[sasl]
use-sasl = true

5、添加权限

vim /data/svn/repo/conf/authz
[/webserver]
test1 = rw
test2 = r

6、启动服务

svnserve -d -r /data/svn/repo/

7、测试

svn checkout svn://10.0.0.100/webserver --username=test1 --password=123456