@zhangyy
2021-11-09T05:15:20.000000Z
字数 4083
阅读 619
运维系列
环境系统版本:centos7.4openldap版本2.4安装和配置安装并启动服务
yum install openldap openldap-servers openldap-clients
拷贝数据库配置文件cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIGchown ldap:ldap /var/lib/ldap/DB_CONFIG

DB_CONIFG中主要是关于Berkeley DB的相关的一些配置启动OpenLDAP Server:systemctl start slapdsystemctl enable slapdsystemctl status slapdslapd即standard alone ldap daemon,该进程默认监听389端口

设置root用户密码先用一个命令生成一个LDAP管理用户root密码:slappasswd -s 123456New password:Re-enter new password:{SSHA}eNZrBtwRRsUg03i5cmGATh3ZnDNfm3Od #记住这个,下面会用到----{SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo----

新建一个rootpwd.ldif(名称是自定义的)的文件:/root/ldifmkdir -p /root/ldifcd /root/ldifvim rootpwd.ldif---dn: olcDatabase={0}config,cn=configchangetype: modifyadd: olcRootPWolcRootPW: {SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUo----1) ldif即LDAP Data InterchangeFormat,是LDAP中数据交换的一种文件格式。文件内容采用的是key-value形式,注意value后面不能有空格。2)上面内容中dn即distingush name3)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

新建一个domain.ldif的文件:vim domain.ldif----dn: olcDatabase={1}monitor,cn=configchangetype: modifyreplace: olcAccessolcAccess: {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 * nonedn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcSuffixolcSuffix: dc=flyfish,dc=comdn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcRootDNolcRootDN: cn=admin,dc=flyfish,dc=com#这个是admin的密码设置/如果要修改密码把这段拿出来 add改成replace,然后执行 ldapadd -Y EXTERNAL -H ldapi:/// -f rootpwd.ldifdn: olcDatabase={2}hdb,cn=configchangetype: modifyadd: olcRootPWolcRootPW: {SSHA}PFp8AcylmONN4ZWtfZ/dPvdfkY/a5JUodn: olcDatabase={2}hdb,cn=configchangetype: modifyadd: olcAccessolcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=flyfish,dc=com" write by anonymous auth by self write by * noneolcAccess: {1}to dn.base="" by * readolcAccess: {2}to * by dn="cn=admin,dc=flyfish,dc=com" write by * read----

添加基本目录新建一个basedomain.ldif的文件:vim basedomain.ldif----注意替换上面文件内容中dn为具体的域信息理解dn,cn,dcDC即Domain Component,LDAP目录类似文件系统目录dc=flyfish,dc=com相当于/com/flyfishCN即Common Name,CN有可能代表一个用户名,例如cn=Manager,dc=flyfish,dc=com表示在/com/flyfish域下的管理员用户ManagerOU即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 客户端链接:管理工具可以在局域网内的windows电脑上下载ldapadmin作为管理工具 下载地址: http://www.ldapadmin.org/download/ldapadmin.html



phpldapadmin 配置:一、phpldapadmin安装1、安装Apache PHPyum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xmlphp需使用5版本,phpldapadmin是基于php5开发,若使用其他php版本,会出现兼容性支持问题,如password_hash问题
2、修改httpd访问端口# vim /etc/httpd/conf/httpd.confListen 80修改为Listen 58100如果主机已经启用 80 端口要改端口如果没有启用就默认用80 不用改
安装phpldapadmin# wget https://nchc.dl.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.3/phpldapadmin-1.2.3.tgztar -zxvf phpldapadmin-1.2.3.tgzmv phpldapadmin-1.2.3 /var/www/html/phpldapadmin编辑config.phpcd /var/www/html/phpldapadmin/configcp -p config.php.example config.phpvim 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



