----------------------------------------------------------
更新:有疑问qq群399218702
更新:建议大家第一遍做的时候,所有的都与文档一致,由于笔者懒把所有的密码设置成redhat了,所以导致好多小伙伴部署的时候遇到问题,抱歉,笔者正在努力码代码,修改一下bug,更新一些功能,另如果有小伙伴对该项目有兴趣,可以一起做做,笔者水平确实有限。
环境:系统CentOS6.4iptables,selinux已关闭
jumpserverldapserver:192.168.2.130
测试服务器:192.168.2.132
mysql数据库:192.168.2.130
一、安装ldapserver
1.yum安装openldapserver
1yuminstall-yopenldapopenldap-serversopenldap-clients
2.准备配置文件
1cp/usr/share/openldap-servers/slapd.conf.obsolete/etc/openldap/slapd.conf2cp/usr/share/openldap-servers/DB_CONFIG.example/var/lib/ldap/DB_CONFIG
3.修改配置文件注意:rootpw后面的密码前面最好有3个tab,配置文件严格,每行后面不能有空格
1vim/etc/openldap/slapd.conf231)设置目录树的后缀4suffix"dc=dianping,dc=com"52)设置管理员DN6rootdn"cn=admin,dc=dianping,dc=com"73)设置管理员密码8rootpwredhat9或机密格式,加密格式可通过slappasswd命令来生成10rootpw{SSHA}j6OO++o76F2yhww2Cg/+Hy8oDPixx6C3114)设置ldap日志,在argsfile下面添加12loglevel113修改系统日志配置文件14vim/etc/rsyslog.conf#centos5版应该是syslog.conf15local4.*/var/log/ldap.log16servicersyslogrestart175)修改完配置文件后用以下命令生成新的配置文件,以后不再特殊说明18serviceslapdstart#第一次需要启动一下19rm-rf/etc/openldap/slapd.d/*20slaptest-f/etc/openldap/slapd.conf-F/etc/openldap/slapd.d21chown-Rldap:ldap/etc/openldap/slapd.d/22serviceslapdrestart
4.查看启动情况
1[root@localhostopenldap]#netstat-tulnp|grepslapd2tcp000.0.0.0:3890.0.0.0:*LISTEN48776/slapd3tcp00:::389:::*LISTEN48776/slapd
5.安装migrationtools,迁移本地账户密码到ldap
为了测试,我们先在服务器上建立一个测试账号,这个账号是为了测试ldap是否成功的
1useraddguanghongwei2echo'redhat'|passwd--stdinguanghongwei
1).安装并修改配置文件
1yum-yinstallmigrationtools2cd/usr/share/migrationtools/3vimmigrate_common.ph#71行左右4$DEFAULT_MAIL_DOMAIN="dianping.com";5$DEFAULT_BASE="dc=dianping,dc=com";
2).使用脚本导出ldif文件
1./migrate_base.pl>/tmp/base.ldif2./migrate_passwd.pl/etc/passwd>/tmp/passwd.ldif3./migrate_group.pl/etc/group>/tmp/group.ldif
3).导入到ldap中,会提示输入密码,密码slapd.conf配置文件中设置的那个rootpw
1ldapadd-x-W-D"cn=admin,dc=dianping,dc=com"-f/tmp/base.ldif2ldapadd-x-W-D"cn=admin,dc=dianping,dc=com"-f/tmp/passwd.ldif3ldapadd-x-W-D"cn=admin,dc=dianping,dc=com"-f/tmp/group.ldif
二、测试服务器安装ldap客户端
1.安装LDAP客户端及依赖组件
1yum-yinstallopenldapopenldap-clientsnss-pam-ldapdpam_ldap#centos62yum-yinstallopenldapopenldap-clientsnss_ldap#centos5
2.增加BIND策略,避免LDAP无法连接时无法开机
1echo"bind_policysoft">>/etc/openldap/ldap.conf
3.自动创建目录设置
1echo"sessionrequiredpam_mkhomedir.soskel=/etc/skelumask=0077">>/etc/pam.d/system-auth
4.设置LDAP启用,后面的ldapserver改为实际中的
1#centos62authconfig--savebackup=auth.bak3authconfig--enableldap--enableldapauth--enablemkhomedir--enableforcelegacy--disablesssd--disablesssdauth--ldapserver=192.168.2.130--ldapbasedn="dc=dianping,dc=com"--update45#centos56authconfig--enableldap--enableldapauth--enablemkhomedir--ldapserver=192.168.2.130--ldapbasedn="dc=dianping,dc=com"–-update
5.从主上测试连接服务器,该用户是刚才添加的那个
1sshguanghongwei@192.168.2.132#132上没有useradd该用户哦,如果能连接上证明ldap使用ok
三、让ldapserver负责sudo管理
1.拷贝sudoschema,centos版本不一样,可能sudo的版本不是1.8.6,其他的也可以
1cp/usr/share/doc/sudo-1.8.6p3/schema.OpenLDAP/etc/openldap/schema/sudo.schema##拷贝schema
2.配置文件导入schema,切记配置文件比较敏感,行尾不要有多余空格
1vim/etc/openldap/slapd.conf#增加一项一项2include/etc/openldap/schema/sudo.schema3rm-rf/etc/openldap/slapd.d/*4slaptest-f/etc/openldap/slapd.conf-F/etc/openldap/slapd.d5chown-Rldap:ldap/etc/openldap/slapd.d/*6serviceslapdrestart
3.将sudobase导入到ldap
1)建立数据库ldif文件,切记该数据文件每行最后也不允许有空格,并删掉注释,可以用群共享里那个
2)导入到ldap中,如果报错很有可能是空格的原因
1ldapadd-x-W-D"cn=admin,dc=dianping,dc=com"-fsudo.ldif
测试服务器:
4.测试服务器设置,让ldap代理sudo,行尾不能有空格
1vi/etc/sudo-ldap.conf2urildap://192.168.2.1303Sudoers_baseou=Sudoers,dc=dianping,dc=com4vi/etc/nsswitch.conf增加5Sudoers:ldapfiles
5.测试,用户并没在服务器的sudoerfile中,如果sudo成功,证明已使用ldap的sudo
1[root@localhosttmp]#sshguanghongwei@192.168.2.1322guanghongwei@192.168.2.132'spassword:3Lastlogin:MonMar1002:27:502014from192.168.2.1304[guanghongwei@2namenode~]$sudosu5[root@2namenodeguanghongwei]#