转自:https://blog.csdn.net/a153095800/article/details/80451279
一、安装配置ldap
1、 安装ldap
yum install -y openldap*
2、拷贝配置文件
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
3、设置管理员密码,testpassword为拟设置的密码
slappasswd -s testpassword
会生成编码后的密钥{SSHA}jgxgMu+JJpNUDSkrZClSnounHVpjGyhF
4、修改slapd.conf 核心配置
database bdb
suffix "dc=mycompany,dc=com"
rootdn "cn=admin,dc=mycompany,dc=com"
rootpw {SSHA}jgxgMu+JJpNUDSkrZClSnounHVpjGyhF
密码就用刚才生成的密钥
5、修改slapd.conf 权限配置
access to *
by self write
by anonymous auth
by * read
6、配置数据库
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap.ldap /var/lib/ldap/DB_CONFIG
chmod 700 /var/lib/ldap/DB_CONFIG
7、删除默认内容
rm -rf /etc/openldap/slapd.d/*
7、检测配置是否正确
slaptest -u
8、启动ldap
service slapd restart
9、设置自动启动
chkconfig slapd on
10、设置目录权限
chown -R ldap:ldap /var/lib/ldap
chown -R ldap:ldap /etc/openldap/
11、测试并生成配置文件
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
12、设置权限并重启
chown -R ldap:ldap /etc/openldap/slapd.d/
service slapd restart
二、安装ldapadmin
1、安装httpd和php相关
yum install httpd php php-bcmath php-gd php-mbstring php-xml php-ldap -y
2、安装phpldapadmin
yum install phpldapadmin
需要配置epel源
3、修改 /etc/httpd/conf/httpd.conf ,添加
ServerName 10.10.10.10
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/htdocs>
Order Deny,Allow
Allow from 127.0.0.1 192.168.1.0/24
Allow from ::1
</Directory>
4、修改/etc/phpldapadmin/config.php
$servers->setValue('login','attr','dn'); 将这一行的注释取消
$servers->setValue('login','attr','uid'); 将这一行注释掉
5、重启httpd
三、初始化根节点
上述配置完之后,已经可以通过phpldapadmin登录管理ldap了,但是登录之后会发现无法去添加用户,组之类的,此时需要初始化根节点
1、在/etc/openldap/目录下,创建一个base.ldif文件
dn: dc=mycompany,dc=com
dc: mycompany
objectClass: top
objectClass: domain
2、ldapadd -f base.ldif -x -D cn=admin,dc=mycompany,dc=com -W 输入之前配置OpenLDAP的密码后,即可完成创建LDAP根节点
也可以直接通过base.ldif初始化好整个ldap的结构,例如再加上
dn: ou=Hosts,dc=mycompany,dc=com
ou: Hosts
objectClass: top
objectClass: organizationalUnit
dn: ou=Rpc,dc=mycompany,dc=com
ou: Rpc
objectClass: top
objectClass: organizationalUnit
dn: ou=Services,dc=mycompany,dc=com
ou: Services
objectClass: top
objectClass: organizationalUnit
dn: ou=People,dc=mycompany,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=mycompany,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
dn: ou=Netgroup,dc=mycompany,dc=com
ou: Netgroup
objectClass: top
objectClass: organizationalUnit
dn: ou=Aliases,dc=mycompany,dc=com
ou: Aliases
objectClass: top
objectClass: organizationalUnit