LDAP部署统一认证机制及phpldapadmin一、LDAP简介由于公司内部系统增加较快,服务器过多,各个系统和服务器的账号都不一样.因此,决定使用LDAP来统一Linux用户的统一认证。背景随着团队成员和服务器的增加,每个服务器的账号都是独立管理的,这就导致:运维人员的维护成本过高,员工操作起来很不方便。员工需要记住的账户太多了。没有明确的权限划分,所以通过统一认证,可以达到的效果是:员工增减,快速开户,注销。具有所有用户权限的服务器。二、LDAP部署环境:角色系统IPServercentos7192.168.3.157Clientcentos7192.168.3.158一定要关闭服务器端selinuxsed-i'/SELINUX/s/enforcing/disabled/g'/etc/sysconfig/selinuxsystemctldisablefirewalldreboot步骤:①使用yum部署openldap[root@server~]#yuminstall-yopenldapopenldap-clientsopenldap-serversmigrationtools②部署后优化启动slapd[root@server~]server~]#vim/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif修改两行olcSuffix:dc=haze,dc=comolcRootDN:cn=root,dc=haze,dc=com添加一行olcRootPW:123456#密码可以是明文,可以用slappasswd输出密文粘贴这里,注意参数和密码之间的空格[root@server~]#vim/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif修改一行olcAccess:{0}to*bydn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"由dn读取。base="cn=root,dc=haze,dc=com"读取*none[root@server~]#cp/usr/share/openldap-servers/DB_CONFIG.example/var/lib/ldap/DB_CONFIG[root@server~]#chown-Rldap:ldap/var/lib/ldap[root@server~]#chown-Rldap:ldap/etc/openldap/certs给证书权限,否则无法启动服务,它卡在了一个下午[root@server~]#slaptest-u56e7c83dldif_read_file:checksumerroron"/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"56e7c83dldif_read_file:checksumerroron"/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"config文件测试成功checksumerror:checksumerror,doesn'taffecttheexperiment,outputsucceeded[root@server~]#systemctl启动slapd[root@server~]#systemctl启用slapd[root@server~]#netstat-tunlp|egrep"389|636"tcp000.0.0.0:3890.0.0.0:*LISTEN3557/slapdtcp600:::389:::*LISTEN3557/slapd③将所需的模式添加到ldap[root@server~]#cd/etc/openldap/schema/[root@serverschema]#vimstart.shldapadd-YEXTERNAL-Hldapi:///-D"cn=config"-fcosine.ldifldapadd-YEXTERNAL-Hldapi:///-D"cn=config"-fnis.ldifldapadd-YEXTERNAL-Hldapi:///-D"cn=config"-fcollective.ldifldapadd-YEXTERNAL-Hldapi:///-D"cn=config"-fcorba.ldifldapadd-YEXTERNAL-Hldapi:///-D"cn=config"-fcore.ldifldapadd-Y外部-Hldapi:///-D"cn=config"-fduaconf.ldifldapadd-Y外部-Hldapi:///-D"cn=config"-fdyngroup.ldifldapadd-Y外部-Hldapi:///-D"cn=config"-finetorgperson.ldifldapadd-Y外部-Hldapi:///-D"cn=config"-fjava.ldifldapadd-Y外部-Hldapi:///-D"cn=config"-fmisc.ldifldapadd-Y外部-Hldapi:///-D"cn=config"-fopenldap.ldifldapadd-YEXTERNAL-Hldapi:///-D"cn=config"-fpmi.ldifldapadd-YEXTERNAL-Hldapi:///-D"cn=config"-fppolicy.ldif[root@serverschema]#shstart.shSASL/EXTERNALauthenticationstartedSASL用户名:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=cosine,cn=schema,cn=config"SASL/EXTERNALauthenticationstartedSASL用户名:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=nis,cn=schema,cn=config"SASL/EXTERNALauthenticationstartedSASLusername:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=collective,cn=schema,cn=config"SASL/EXTERNALauthenticationstartedSASL用户名:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=corba,cn=schema,cn=config"SASL/EXTERNALauthenticationstartedSASLusername:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0添加新条目“cn=core,cn=schema,cn=config”ldap_add:其他(例如,特定于实现)错误(80)附加信息:olcAttributeTypes:重复属性类型:“2.5.4.2”SASL/EXTERNAL身份验证已启动SASL用户名:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=duaconf,cn=schema,cn=config"SASL/EXTERNALauthenticationstartedSASL用户名:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=dyngroup,cn=schema,cn=config"SASL/EXTERNALauthenticationstartedSASLusername:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=inetorgperson,cn=schema,cn=config"SASL/EXTERNALauthenticationstartedSASL用户名:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=java,cn=schema,cn=config"SASL/EXTERNALauthenticationstartedSASLusername:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0添加新条目"cn=misc,cn=schema,cn=config"SASL/EXTERNAL认证启动SASL用户名:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=openldap,cn=schema,cn=config"SASL/EXTERNALauthenticationstartedSASLusername:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=pmi,cn=schema,cn=config"SASL/EXTERNAL认证开始SASL用户名:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASLSSF:0addingnewentry"cn=ppolicy,cn=schema,cn=config"④使用migati创建ldapdit[root@serverschema]#cd/usr/share/migrationtools/[root@servermigrationtools]#vimmigrate_common.ph修改四行$NAMINGCONTEXT{'group'}="ou=Groups";#61行组添加s$DEFAULT_MAIL_DOMAIN="haze.com";#71行修改域值$DEFAULT_BASE="dc=haze,dc=com";#74行dc$EXTENDED_SCHEMA=1;#90行0到1,打开扩展模式[root@servermigrationtools]#./migrate_base.pl>/root/base.ldif[root@servermigrationtools]#ldapadd-x-W-D"cn=root,dc=haze,dc=com"-f/root/base.ldifEnterLDAPPassword:添加新条目"dc=haze,dc=com"添加新条目"ou=Hosts,dc=haze,dc=com"添加新条目"ou=Rpc,dc=haze,dc=com"添加新条目"ou=Services,dc=haze,dc=com"添加新条目"nisMapName=netgroup.byuser,dc=haze,dc=com"添加新条目"ou=Mounts,dc=haze,dc=com"添加新条目"ou=Networks,dc=haze,dc=com"adding新条目“ou=People,dc=haze,dc=com”添加新条目“ou=Groups,dc=haze,dc=com”添加新条目“ou=Netgroup,dc=haze,dc=com”添加新条目条目“ou=Protocols,dc=haze,dc=com”添加新条目“ou=Aliases,dc=haze,dc=com”添加新条目“nisMapName=netgroup.byhost,dc=haze,dc=com”⑤创建预用户目录来宾并创建测试用户设置密码[root@servermigrationtools]#mkdir/home/guests[root@servermigrationtools]#useradd-d/home/guests/ldapuser1ldapuser1[root@servermigrationtools]#useradd-d/home/guests/ldapuser2ldapuser2[root@servermigrationtools]#echo'密码'|passwd--stdinldapuser1[root@servermigrationtools]#echo'密码'|passwd--stdinldapuser2⑥现在将这些用户和组以及IT密码从/etc/filter复制到不同的文件[root@servermigrationtools]#getentpasswd|tail-n5>/root/users[root@servermigrationtools]#getentshadow|tail-n5>/root/shadow[root@servermigrationtools]#getent组|tail-n5>/root/groups[root@servermigrationtools]#cd/usr/share/migrationtools[root@servermigrationtools]#vimmigrate_passwd.pl......subread_shadow_file{open(SHADOW,"/root/shadow")||返回;#188行更改为/root/shadowwhile(
