CentOS7.x 安装 openldap 服务
标签(空格分隔): 运维系列
一: 安装openladp 配置
1.1:系统环境介绍
环境
系统版本:centos7.4
openldap版本2.4
安装和配置
安装并启动服务
1.2 安装openldap服务
yum install openldap openldap-servers openldap-clients
拷贝数据库配置文件
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/DB_CONFIG
DB_CONIFG中主要是关于Berkeley DB的相关的一些配置
启动OpenLDAP Server:
systemctl start slapd
systemctl enable slapd
systemctl status slapd
slapd即standard alone ldap daemon,该进程默认监听389端口
1.3 配置openldap服务
设置root用户密码
先用一个命令生成一个LDAP管理用户root密码:
slappasswd -s 123456
New password:
Re-enter new password:
{SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od #记住这个,下面会用到
----
{SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo
----
新建一个rootpwd.ldif(名称是自定义的)的文件:/root/ldif
mkdir -p /root/ldif
cd /root/ldif
vim rootpwd.ldif
---
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo
----
1) ldif即LDAP Data InterchangeFormat,是LDAP中数据交换的一种文件格式。文件内容采用的是key-value形式,注意value后面不能有空格。
2)上面内容中dn即distingush name
3)olc即Online Configuration,表示写入LDAP后不需要重启即可生效
changetype: modify表示修改一个entry,changetype的值可以是add,delete, modify等。
4)add: olcRootPW表示对这个entry新增了一个olcRootPW的属性
olcRootPW: {SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od指定了属性值
下面使用ldapadd命令将上面的rootpwd.ldif文件写入LDAP:
ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.ldif
导入schema
导入schema,schema包含为了支持特殊场景相关的属性,可根据选择导入,这里先全部导入:
ls /etc/openldap/schema/*.ldif | while read f; do ldapadd -Y EXTERNAL -H ldapi:/// -f $f; done
1.4 导入domain
新建一个domain.ldif的文件:
vim domain.ldif
----
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=flyfish,dc=com" read by * none
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=flyfish,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=flyfish,dc=com
#这个是admin的密码设置/如果要修改密码把这段拿出来 add改成replace,然后执行 ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.ldif
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=flyfish,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=flyfish,dc=com" write by * read
----
1.5 添加条目
添加基本目录
新建一个basedomain.ldif的文件:
vim basedomain.ldif
----
注意替换上面文件内容中dn为具体的域信息理解dn,cn,dc
DC即Domain Component,LDAP目录类似文件系统目录dc=flyfish,dc=com相当于/com/
flyfish
CN即Common Name,CN有可能代表一个用户名,例如cn=Manager,dc=flyfish,dc=com表示在/com/flyfish域下的管理员用户Manager
OU即Organizational Unit,例如ou=People,dc=flyfish,dc=com表示在/com/flyfish域下的一个组织单元People
写入:
ldapadd -x -D cn=admin,dc=flyfish,dc=com -W -f basedomain.ldif
测试:
ldapsearch -LLL -W -x -D "cn=admin,dc=flyfish,dc=com" -H ldap:/// -b "dc=flyfish,dc=com"
##二:ldap 客户端工具连接
2.1 ldapadmin windows 客户端工具连接
ldap 客户端链接:
管理工具
可以在局域网内的windows电脑上下载ldapadmin作为管理工具 下载地址: http://www.ldapadmin.org/download/ldapadmin.html
2.2 phpldapadmin 配置部署
phpldapadmin 配置:
一、phpldapadmin安装
1、安装Apache PHP
yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml
php需使用5版本,phpldapadmin是基于php5开发,若使用其他php版本,会出现兼容性支持问题,如password_hash问题
2、修改httpd访问端口
# vim /etc/httpd/conf/httpd.conf
Listen 80
修改为
Listen 58100
如果主机已经启用 80 端口要改端口如果没有启用就默认用80 不用改
安装phpldapadmin
# wget https://nchc.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.tgz
tar -zxvf phpldapadmin-1.2.3.tgz
mv phpldapadmin-1.2.3 /var/www/html/phpldapadmin
编辑config.php
cd /var/www/html/phpldapadmin/config
cp -p config.php.example config.php
vim config.php
---
修改:
$servers->newServer('ldap_pla');
$servers->setValue('server','name','My LDAP Server');
$servers->setValue('server','host','192.168.100.14');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=flyfish,dc=com'));
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=admin,dc=flyfish,dc=com');
$servers->setValue('login','bind_pass','123456');
---
serivce httpd restart
打开web页面:
http://192.168.100.14/phpldapadmin