之前搭建了个Ldap服务器,今天想要再另一台机器上搭建的时候发现很多地方还是会遇到坑,于是将搭建过程梳理记录下来,避免以后再遇到坑
一、安装配置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 ,添加
三、初始化根节点
上述配置完之后,已经可以通过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