LDAP安装
一、介绍
LDAP 全称:Lightweight Directory Access Protocol,即“轻量级目录访问协议”。
LDAP目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌握LDAP目录树这个概念了。就象DNS的主机名那样,LDAP目录记录的标识名(Distinguished Name,简称DN)是用来读取单个记录,以及回溯到树的顶部。
二、名词介绍
https://baike.baidu.com/item/LDAP#1_1
三、安装
环境:centos7
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel systemctl start slapd systemctl enable slapd #验证 ss -lnt|grep 389
四、配置LDAP
#1、设置LDAP管理员密码 [root@admin~]#slappasswd -h {SSHA} -s ldppassword {SSHA}Vf9I/lXZ59i4S5A8ghqVHvLYvWVVNXNi #2、配置OpenLDAP服务器 ##OpenLDAP服务器配置文件位于 /etc/openldap/slapd.d/ ##olcSuffix - 数据库后缀,它是LDAP服务器提供信息的域名。简单来说,它应该更改为您的域名。 ##olcRootDN - 具有对LDAP执行所有管理活动的无限制访问权限的用户的根专有名称(DN)条目,如root用户。 ##olcRootPW - 上述RootDN的LDAP管理员密码。 [root@admin~]#cd /etc/openldap/slapd.d/cn\=config/ #3、创建a.ldif文件 [root@admincn=config]#vim a.ldif [root@admincn=config]#cat a.ldif dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=zhang,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=ldapadm,dc=zhang,dc=com dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootPW olcRootPW: {SSHA}Vf9I/lXZ59i4S5A8ghqVHvLYvWVVNXNi #上面的管理员密码 #4、将配置发送到LDAP服务器 [root@admincn=config]#ldapmodify -Y EXTERNAL -H ldapi:/// -f a.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "olcDatabase={2}hdb,cn=config" modifying entry "olcDatabase={2}hdb,cn=config" modifying entry "olcDatabase={2}hdb,cn=config" #5、编辑monitor.ldif文件 [root@admincn=config]#vim monitor.ldif [root@admincn=config]#cat monitor.ldif angetype: modify replace: olcAccess olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadm,dc=zhang,dc=com" read by * none #6、将monitor.ldif配置发送到LDAP服务器。 [root@admincn=config]#ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 #7、设置LDAP数据库 #将示例数据库配置文件复制到/var/lib/ldap并更新文件权限 [root@admincn=config]#\cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG #8、添加cosine和nis LDAP模式。 [root@admincn=config]#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=cosine,cn=schema,cn=config" [root@admincn=config]#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=nis,cn=schema,cn=config" [root@admincn=config]#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=inetorgperson,cn=schema,cn=config" #9、base.ldif为您的域生成文件 [root@admincn=config]#vim base.ldif [root@admincn=config]#cat base.ldif dn: dc=zhang,dc=com dc: zhang objectClass: top objectClass: domain dn: cn=ldapadm ,dc=zhang,dc=com objectClass: organizationalRole cn: ldapadm description: LDAP Manager dn: ou=People,dc=zhang,dc=com objectClass: organizationalUnit ou: People dn: ou=Group,dc=zhang,dc=com objectClass: organizationalUnit ou: Group #10、构建目录结构(密码是adapadm的密码(ldppassword)) [root@admincn=config]ldapadd -x -W -D "cn=ldapadm,dc=zhang,dc=com" -f base.ldif Enter LDAP Password: adding new entry "dc=zhang,dc=com" adding new entry "cn=ldapadm ,dc=zhang,dc=com" adding new entry "ou=People,dc=zhang,dc=com" adding new entry "ou=Group,dc=zhang,dc=com"
五、创建LDAP用户(创建test用户)
#1、创建test.ldif文件 [root@admincn=config]#vim test.ldif [root@admincn=config]#cat test.ldif dn: uid=test,ou=People,dc=zhang,dc=com objectClass: top objectClass: account objectClass: posixAccount objectClass: shadowAccount cn: test uid: test uidNumber: 9999 gidNumber: 100 homeDirectory: /home/test loginShell: /bin/bash gecos: Raj [Admin (at) zhang] userPassword: {crypt}x shadowLastChange: 17058 shadowMin: 0 shadowMax: 99999 shadowWarning: 7 #2、使用带有上述文件的ldapadd命令在OpenLDAP目录中创建名为“ test” 的新用户。 [root@admincn=config]#ldapadd -x -W -D "cn=ldapadm,dc=zhang,dc=com" -f test.ldif Enter LDAP Password: (密码是adapadm的密码(ldppassword)) adding new entry "uid=test,ou=People,dc=zhang,dc=com" #3、为用户分配密码。 -s 指定用户名的密码 -x 用户名,密码已更改 -D 要对LDAP服务器进行身份验证的可分辨名称 [root@admincn=config]ldappasswd -s 123456 -W -D "cn=ldapadm,dc=zhang,dc=com" -x "uid=test,ou=People,dc=zhang,dc=com" Enter LDAP Password: 密码是adapadm的密码(ldppassword)) #4、验证LDAP条目 [root@admincn=config]#ldapsearch -x cn=test -b dc=zhang,dc=com #5、从LDAP中删除条目 ldapdelete -W -D "cn=ldapadm,dc=zhang,dc=com" "uid=test,ou=People,dc=zhang,dc=com"
六、启用LDAP日志记录
#1、配置Rsyslog以将LDAP事件记录到日志文件/var/log/ldap.log [root@admincn=config]#vim /etc/rsyslog.conf [root@admincn=config]#egrep ldap /etc/rsyslog.conf local4.* /var/log/ldap.log #2、重启rsyslog systemctl restart rsyslog
七、安装phpLDAPadmin
#1、下载phpldapadmin和httpd yum install httpd php -y yum -y install phpldapadmin #2、修改phpldapadmin配置文件 [root@adminphpldapadmin]#tail -13 /usr/share/phpldapadmin/config/config.php */ $servers = new Datastore(); $servers->newServer('ldap_pla'); $servers->setValue('server','name','My LDAP Server'); $servers->setValue('server','host','0.0.0.0'); $servers->setValue('server','port',389); $servers->setValue('server','base',array('dc=zhang,dc=com')); #修改为自己的域名 $servers->setValue('login','auth_type','session'); $servers->setValue('login','bind_id','cn=Manager,dc=zhang,dc=com'); #修改为自己的域名 $servers->setValue('login','bind_pass','ldppassword'); #填入设定的根节点管理员密码 $servers->setValue('server','tls',false); ?> #3、修改phpldapadmin的httpd的配置 [root@adminphpldapadmin]#cat /etc/httpd/conf.d/phpldapadmin.conf # # Web-based tool for managing LDAP servers # Alias /phpldapadmin /usr/share/phpldapadmin/htdocs Alias /ldapadmin /usr/share/phpldapadmin/htdocs <Directory /usr/share/phpldapadmin/htdocs> <IfModule mod_authz_core.c> # Apache 2.4 Require all granted </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Deny,Allow Deny from all Allow from 127.0.0.1 Allow from ::1 </IfModule> </Directory>
4、浏览器访问
5、登录(密码:ldppassword)