您好,欢迎访问一九零五行业门户网

运维堡垒机(跳板机)系统Jumpserverv1.0.0部署篇

更新:新版已发见http://laoguang.blog.51cto.com/6013350/1576729 ---------------------------------------------------------- 更新:有疑问qq群 399218702 更新:建议大家第一遍做的时候,所有的都与文档一致,由于笔者懒把所有的密码设置成redhat了,所
更新:新版已发见 http://laoguang.blog.51cto.com/6013350/1576729
----------------------------------------------------------
更新:有疑问qq群  399218702
更新:建议大家第一遍做的时候,所有的都与文档一致,由于笔者懒把所有的密码设置成redhat了,所以导致好多小伙伴部署的时候遇到问题,抱歉,笔者正在努力码代码,修改一下bug,更新一些功能,另如果有小伙伴对该项目有兴趣,可以一起做做,笔者水平确实有限。
环境:系统centos6.4 iptables, selinux已关闭
jumpserver ldapserver : 192.168.2.130
测试服务器: 192.168.2.132
mysql数据库: 192.168.2.130
一、安装ldapserver
1. yum安装openldap server
1 yum install -y openldap openldap-servers openldap-clients
2. 准备配置文件
1 cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf    
2 cp /usr/share/openldap-servers/db_config.example /var/lib/ldap/db_config
3. 修改配置文件 注意:rootpw后面的密码前面最好有3个tab,配置文件严格,每行后面不能有空格
1 vim /etc/openldap/slapd.conf    
2    
3 1) 设置目录树的后缀    
4 suffix    dc=dianping,dc=com    
5 2) 设置管理员dn    
6 rootdn    cn=admin,dc=dianping,dc=com    
7 3) 设置管理员密码    
8 rootpw            redhat
9 或机密格式, 加密格式可通过 slappasswd命令来生成    
10 rootpw         {ssha}j6oo++o76f2yhww2cg/+hy8odpixx6c3    
11 4) 设置ldap日志,在argsfile下面添加    
12 loglevel 1    
13 修改系统日志配置文件    
14 vim /etc/rsyslog.conf      # centos5版应该是syslog.conf    
15 local4.* /var/log/ldap.log    
16 service rsyslog restart    
17 5) 修改完配置文件后用以下命令生成新的配置文件,以后不再特殊说明    
18 service slapd start # 第一次需要启动一下    
19 rm -rf /etc/openldap/slapd.d/*    
20 slaptest -f /etc/openldap/slapd.conf -f /etc/openldap/slapd.d    
21 chown -r ldap:ldap /etc/openldap/slapd.d/    
22 service slapd restart
4. 查看启动情况
1 [root@localhost openldap]# netstat -tulnp | grep slapd    
2 tcp 0 0 0.0.0.0:389 0.0.0.0:* listen 48776/slapd    
3 tcp 0 0 :::389 :::* listen 48776/slapd
5. 安装migrationtools,迁移本地账户密码到ldap
为了测试,我们先在服务器上建立一个测试账号,这个账号是为了测试ldap是否成功的
1 useradd guanghongwei    
2 echo 'redhat' | passwd --stdin guanghongwei
1). 安装并修改配置文件
1 yum -y install migrationtools    
2 cd /usr/share/migrationtools/    
3 vim migrate_common.ph # 71行左右    
4 $default_mail_domain = dianping.com;    
5 $default_base = dc=dianping,dc=com;
2). 使用脚本导出ldif文件
1 ./migrate_base.pl > /tmp/base.ldif    
2 ./migrate_passwd.pl /etc/passwd > /tmp/passwd.ldif    
3 ./migrate_group.pl /etc/group > /tmp/group.ldif
3). 导入到ldap中,会提示输入密码,密码slapd.conf配置文件中设置的那个rootpw 
1 ldapadd -x -w -d cn=admin,dc=dianping,dc=com -f /tmp/base.ldif    
2 ldapadd -x -w -d cn=admin,dc=dianping,dc=com -f /tmp/passwd.ldif    
3 ldapadd -x -w -d cn=admin,dc=dianping,dc=com -f /tmp/group.ldif
二、测试服务器安装ldap客户端
1. 安装ldap客户端及依赖组件
1 yum -y install openldap openldap-clients nss-pam-ldapd pam_ldap #centos6    
2 yum -y install openldap openldap-clients nss_ldap #centos5
2. 增加bind策略,避免ldap无法连接时无法开机
1 echo bind_policy soft >> /etc/openldap/ldap.conf
3. 自动创建目录设置
1 echo session required pam_mkhomedir.so skel=/etc/skel umask=0077 >> /etc/pam.d/system-auth
4. 设置ldap启用,后面的ldapserver改为实际中的
1 #centos6    
2 authconfig --savebackup=auth.bak    
3 authconfig --enableldap --enableldapauth --enablemkhomedir --enableforcelegacy --disablesssd --disablesssdauth --ldapserver=192.168.2.130 --ldapbasedn=dc=dianping,dc=com --update    
4    
5 #centos5    
6 authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=192.168.2.130 --ldapbasedn=dc=dianping,dc=com –-update
5. 从主上测试连接服务器,该用户是刚才添加的那个
1 ssh guanghongwei@192.168.2.132 #132上没有useradd该用户哦,如果能连接上证明ldap使用ok
三、 让ldap server负责sudo管理
1. 拷贝sudo schema,centos版本不一样,可能sudo的版本不是1.8.6,其他的也可以
1 cp /usr/share/doc/sudo-1.8.6p3/schema.openldap /etc/openldap/schema/sudo.schema ## 拷贝schema
2. 配置文件导入schema,切记 配置文件比较敏感,行尾不要有多余空格
1 vim /etc/openldap/slapd.conf # 增加一项一项    
2 include /etc/openldap/schema/sudo.schema    
3 rm -rf /etc/openldap/slapd.d/*    
4 slaptest -f /etc/openldap/slapd.conf -f /etc/openldap/slapd.d    
5 chown -r ldap:ldap /etc/openldap/slapd.d/*    
6 service slapd restart
3. 将sudo base导入到ldap
1) 建立数据库ldif文件,切记该数据文件每行最后也不允许有空格,并删掉注释,可以用群共享里那个
1 vim sudo.ldif    
2    
3 dn: ou=sudoers,dc=dianping,dc=com    
4 objectclass: top    
5 objectclass: organizationalunit    
6 ou: sudoers    
7    
8 dn: cn=defaults,ou=sudoers,dc=dianping,dc=com    
9 objectclass: top    
10 objectclass: sudorole    
11 cn: defaults    
12 sudooption: !visiblepw    
13 sudooption: always_set_home    
14 sudooption: env_reset    
15 sudooption: requiretty    
16    
17 dn: cn=guanghongwei,ou=sudoers,dc=dianping,dc=com ## dn, 使用时 请删除注释,并不能有空格    
18 objectclass: top    
19 objectclass: sudorole    
20 cn: guanghongwei ## 对应的是用户名或者组    
21 sudocommand: all ## 可以执行的命令    
22 sudohost: all ## 可以登录的host    
23 sudooption: !authenticate ## 是否需要输入密码    
24 sudorunasuser: all ## 以哪个用户执行    
25 sudouser: guanghongwei ## 用户或者组
2) 导入到ldap中,如果报错很有可能是空格的原因
1 ldapadd -x -w -d cn=admin,dc=dianping,dc=com -f sudo.ldif
测试服务器:
4. 测试服务器设置,让ldap代理sudo,行尾不能有空格
1 vi /etc/sudo-ldap.conf    
2 uri ldap://192.168.2.130 
3 sudoers_base ou=sudoers,dc=dianping,dc=com    
4 vi /etc/nsswitch.conf 增加    
5 sudoers: ldap files
5. 测试,用户并没在服务器的sudoer file中,如果sudo成功,证明已使用ldap的sudo
1 [root@localhost tmp]# ssh guanghongwei@192.168.2.132    
2 guanghongwei@192.168.2.132's password:    
3 last login: mon mar 10 02:27:50 2014 from 192.168.2.130    
4 [guanghongwei@2namenode ~]$ sudo su    
5 [root@2namenode guanghongwei]#
上面这部分其实是ldap配置的过程,如果用过的朋友应该很熟悉,再部署个phpldapadmin才算完整,不过我们先不用,下面进入主题,讲讲如何部署跳板机  http://laoguang.blog.51cto.com/6013350/1540793
四、 部署jumpserver
1). 下载代码
1 cd /opt/
2 git clone https://github.com/ibuler/jumpserver
如果克隆不下来去https://github.com/ibuler/jumpserver 下载代码
2.
其它类似信息

推荐信息