ldap yum安装-centos6
yum安装openldap
系统环境信息 操作系统:CentOS release 6.7 基础的环境准备 iptables -F && /etc/init.d/iptables save sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config && setenforce 0 1)安装OpenLDAP的相关 yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap #其中compat-openldap这个包与主从有很大的关系 安装完后,可以看到自动创建了ldap用户: [root@base ~ 09:59:34&&8]#cat /etc/passwd | grep ldap ldap:x:55:55:LDAP User:/var/lib/ldap:/sbin/nologin 可以通过rpm -qa |grep openldap查看安装了哪些包: [root@base ~ 10:00:59&&9]#rpm -qa | grep openldap openldap-2.4.40-16.el6.x86_64 openldap-servers-2.4.40-16.el6.x86_64 compat-openldap-2.3.43-2.el6.x86_64 openldap-devel-2.4.40-16.el6.x86_64 openldap-clients-2.4.40-16.el6.x86_64 2)OpenLDAP的相关配置文件信息 /etc/openldap/slapd.conf:OpenLDAP的主配置文件,记录根域信息,管理员名称,密码,日志,权限等 /etc/openldap/slapd.d/*:这下面是/etc/openldap/slapd.conf配置信息生成的文件,每修改一次配置信息,这里的东西就要重新生成 /etc/openldap/schema/*:OpenLDAP的schema存放的地方 /var/lib/ldap/*:OpenLDAP的数据文件 /usr/share/openldap-servers/slapd.conf.obsolete 模板配置文件 /usr/share/openldap-servers/DB_CONFIG.example 模板数据库配置文件 3) OpenLDAP监听的端口: 默认监听端口:389(明文数据传输) 加密监听端口:636(密文数据传输) 4)初始化OpenLDAP的配置 cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf 5)修改配置文件 首先,slappasswd生成密文密码123456,拷贝这个到/etc/openldap/slapd.conf里 [root@base ~ 10:04:04&&12]#slappasswd New password: Re-enter new password: {SSHA}6guCnCELUuh3+7DF9NmuA9CgO2uVEej+ 修改后的配置文件内容:红色字体的为修改的部分 [root@base /etc/openldap 10:08:35&&20]#cat /etc/openldap/slapd.conf include /etc/openldap/schema/corba.schema include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/duaconf.schema include /etc/openldap/schema/dyngroup.schema include /etc/openldap/schema/inetorgperson.schema include /etc/openldap/schema/java.schema include /etc/openldap/schema/misc.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/openldap.schema include /etc/openldap/schema/ppolicy.schema include /etc/openldap/schema/collective.schema allow bind_v2 pidfile /var/run/openldap/slapd.pid argsfile /var/run/openldap/slapd.args TLSCACertificatePath /etc/openldap/certs TLSCertificateFile "\"OpenLDAP Server\"" TLSCertificateKeyFile /etc/openldap/certs/password database config access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * none database monitor access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.exact="cn=admin,dc=puyi,dc=com" read by * none database bdb suffix "dc=puyi,dc=com" checkpoint 1024 15 rootdn "cn=admin,dc=puyi,dc=com" rootpw {SSHA}6guCnCELUuh3+7DF9NmuA9CgO2uVEej+ directory /var/lib/ldap index objectClass eq,pres index ou,cn,mail,surname,givenname eq,pres,sub index uidNumber,gidNumber,loginShell eq,pres index uid,memberUid eq,pres,sub index nisMapName,nisMapEntry eq,pres,sub 6)重新生成配置文件信息文件 先检测/etc/openldap/slapd.conf是否有错误:slaptest -f /etc/openldap/slapd.conf [root@base /etc/openldap 10:08:57&&21]#slaptest -f /etc/openldap/slapd.conf 5ad6a916 bdb_db_open: database "dc=puyi,dc=com": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2). 5ad6a916 backend_startup_one (type=bdb, suffix="dc=puyi,dc=com"): bi_db_open failed! (2) slap_startup failed (test would succeed using the -u switch) 这里报错是因为在第三步后没有重新生成配置文件,启动slapd。而是直接修改配置文件去了。先启动slapd: [root@base /etc/openldap 10:10:30&&22]#/etc/init.d/slapd restart Stopping slapd: [FAILED] /var/lib/ldap/__db.001 is not owned by "ldap" [WARNING] /var/lib/ldap/__db.002 is not owned by "ldap" [WARNING] /var/lib/ldap/__db.006 is not owned by "ldap" [WARNING] /var/lib/ldap/alock is not owned by "ldap" [WARNING] /var/lib/ldap/__db.004 is not owned by "ldap" [WARNING] /var/lib/ldap/__db.005 is not owned by "ldap" [WARNING] /var/lib/ldap/__db.003 is not owned by "ldap" [WARNING] Starting slapd: 这里又报错,这是因为没有给/var/lib/ldap授权,授权后chown -R ldap.ldap /var/lib/ldap/,再重启slapd,/etc/init.d/slapd restart,可以看到成功的 [root@base /etc/openldap 10:11:27&&23]#chown -R ldap.ldap /var/lib/ldap/ [root@base /etc/openldap 10:12:19&&24]#/etc/init.d/slapd restart Stopping slapd: [FAILED] Starting slapd: [ OK ] 接着回到检测/etc/openldap/slapd.conf是否有错误:slaptest -f /etc/openldap/slapd.conf [root@base /etc/openldap 10:12:33&&25]#slaptest -f /etc/openldap/slapd.conf config file testing succeeded 可以看到没问题,然后重新生成配置文件的配置信息: 先删除最先的配置文件生成的信息:rm -rf /etc/openldap/slapd.d/* 重新生成:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/ 查看是否生成的是自己修改的配置文件信息:cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif [root@base /etc/openldap 10:13:03&&26]#rm -rf /etc/openldap/slapd.d/* [root@base /etc/openldap 10:13:55&&27]#slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/ config file testing succeeded [root@base /etc/openldap 10:14:05&&28]#cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif | grep puyi olcSuffix: dc=puyi,dc=com olcRootDN: cn=admin,dc=puyi,dc=com 授权:chown -R ldap.ldap /etc/openldap/slapd.d/ 重启:/etc/init.d/slapd restart [root@base /etc/openldap 10:14:18&&29]#chown -R ldap.ldap /etc/openldap/slapd.d/ [root@base /etc/openldap 10:15:26&&30]#/etc/init.d/slapd restart Stopping slapd: [ OK ] Starting slapd: [ OK ]
7)创建1个管理员账号(此账号用来登陆phpldapadmin)
编辑ldif文件 #注意与slapd.conf文件中保持一致,下面的命令同理,
#本人曾在下面的ldapadd命令中将"admin"写成了"amdin",导致一直报" ldap_bind: Invalid credentials (49)"错(每次都是翻回上一条命令执行),排查了3个小时左右才发现。
[root@localhost ~]# vim admin.ldif #此文件格式必须按照下面的格式编写,[开头不能有空格,中间有个空行]
dn: dc=puyi,dc=com
objectclass: dcObject
objectclass: organization
o: Puyi.Inc
dc: puyi
dn: cn=admin,dc=puyi,dc=com
objectclass: organizationalRole
cn: admin
插入数据库
[root@base /etc/openldap 10:39:51&&42]#ldapadd -x -D "cn=admin,dc=puyi,dc=com" -W -f admin.ldif
Enter LDAP Password: #些密码就是用slappasswd生成的密码,slapd.conf配置文件里的那个。
adding new entry "dc=puyi,dc=com"
adding new entry "cn=admin,dc=puyi,dc=com"
到这里为止,OpenLDAP服务端基本上完成了,我们可以通过PhpLDAPAdmin来登录看一下,那先得安装PhpLDAPAdmin
PhpLDAPAdmin的搭建
1)安装EPEL仓库,镜像里没有PhpLDAPAdmin这个的安装包,所以得安装EPEL仓库 wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo yum clean all #清除YUM缓存,yum 会把下载的软件包和header存储在cache中,而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令进行清除,
更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all一全部清除 yum makecache # 将服务器上的软件包信息 现在本地缓存,以提高 搜索 安装软件的速度 2)安装PhpLDAPAdmin yum install -y phpldapadmin 3)修改phpldapadmin的配置文件,访问控制权限vim /etc/httpd/conf.d/phpldapadmin.conf,允许谁访问 [root@base /etc/openldap 10:31:51&&36]#cat /etc/httpd/conf.d/phpldapadmin.conf 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 local </IfModule> <IfModule !mod_authz_core.c> # Apache 2.2 Order Allow,Deny Allow from all #Deny from 127.0.0.1 #Deny from ::1 </IfModule> </Directory> 4)修改配置文件:vim /etc/phpldapadmin/config.php $servers->setValue('login','attr','dn'); 这一行的注释去掉 //$servers->setValue('login','attr','uid'); 这一行注释掉 5)重启httpd服务 [root@base /etc/openldap 10:34:53&&40]#/etc/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.159.14 for ServerName [ OK ] 6)在浏览器输入OpenLDAP服务端的IP 10.0.0.138/ldapadmin 登陆:用户 cn=admin,dc=puyi,dc=com 密码:123456
OpenLDAP的打开日志信息
vim /etc/openldap/slapd.conf #加上loglevel -1 这里修改了配置文件,所有得重新生成配置文件的信息 rm -rf /etc/openldap/slapd.d/* slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/ chown -R ldap.ldap /etc/openldap/slapd.d/ 在 vim /etc/rsyslog.conf加上 local4.* /var/log/slapd/slapd.log 然后重启/etc/init.d/rsyslog restart 创建日志文件目录,授权 mkdir /var/log/slapd chmod 755 /var/log/slapd/ chown ldap.ldap /var/log/slapd/ 重启slapd服务,/etc/init.d/slapd restart 就可以看到日志信息了cat /var/log/slapd/slapd.log
创建1个具有部门属性的员工
创建1个具有部门属性的员工 编辑ldif文件 #这里其实是先创建1个部门”yunwei”,再在”yunwei”部门创建了1个员工,实际上是两条命令 [root@localhost ~]# vim yunwei.ldif dn: ou=yunwei,dc=puyi,dc=com ou: yunwei objectClass: organizationalUnit dn: cn=hxh,ou=yunwei,dc=puyi,dc=com ou: yunwei cn: hxh sn: hui objectClass: inetOrgPerson objectClass: organizationalPerson 插入数据库(admin是管理员,必须用admin来创建) [root@localhost ~]# ldapadd -x -D "cn=admin,dc=puyi,dc=com" -W -f yunwei.ldif 验证 ldapsearch -x -b 'dc=puyi,dc=com' '(objectClass=*)'
常见对象属性
LDAP为人员组织机构中常见的对象都设计了属性(比如commonName,surname)。下面有一些常用的别名:
属性名称 |
属性别名 |
语法 |
描述 |
值(举例) |
commonName |
cn |
Directory String |
名子 |
sean |
surname |
sn |
Directory String |
姓氏 |
Chow |
organizationalUnitName |
ou |
Directory String |
单位(部门)名称 |
IT_SECTION |
organization |
o |
Directory String |
组织(公司)名称 |
linuxprobe |
telephoneNumber |
|
Telephone Number |
电话号码 |
911 |
objectClass |
|
|
内置属性 |
organizationa |