finallshell堡垒机_Linxu教程分享之运维堡垒机(跳板机)系统 部署篇

环境:系统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 [email protected] #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 [email protected]

[email protected]'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. 如果是下载的,需要重命名

1 mv jumpserver-master jumpserver

3. 下载建立数据库, 并授权

1 yum -y install mysql-server

2 serivce mysqld start

3 mysql

4 mysql> create database jumpserver charset='utf8'; # 否则中文可能乱码

5 mysql> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'redhat';

4. 编辑配置文件

1) 修改jumpserver的配置文件, 主要是修改一下db和key,下面的不动

1 vim jumpserver.conf

2 #coding:utf-8

3

4 [db]

5 host = 127.0.0.1

6 port = 3306

7 user = jumpserver         # 授权的用户

8 password = redhat         # 授权密码

9 db = jumpserver           # 数据库

10

11 [jumpserver]

12 log_dir = /opt/jumpserver/logs/

13 user_table = UserManage_user

14 assets_table = Assets_assets

15 assets_user_table = Assets_assetsuser

16 key = 88aaaf7ffe3c6c04   #可修改此key需要是16位

17 useradd_shell = /opt/jumpserver/useradd.sh

18 userdel_shell = /opt/jumpserver/userdel.sh

19 sudoadd_shell = /opt/jumpserver/sudoadd.sh

20 sudodel_shell = /opt/jumpserver/sudodel.sh

21 keygen_shell = /opt/jumpserver/genkey.sh

22 chgpass_shell = /opt/jumpserver/chgpass_shell.sh

2) 修改bash调用的配置文件 shell.conf

1 vim shell.conf

2

3 #!/bin/bash

4

5 host=127.0.0.1

6 ldapassword=redhat

7 domain=dianping

8 suffix=com

9 #host2=172.16.2.74

10 #host2_port=2001

3) 添加一个admin用户

1 useradd admin

2 echo 'redhat' | passwd --stdin admin

4) 安装依赖的python库,如果有epel源可以 yum -y installl python-pip,也可以源码安装参考:    http://my.oschina.net/zhangxu0512/blog/175208

1 yum -y install python-devel python-crypto # MySQLdb也就是mysql-python依赖

2 pip install django paramiko pam mysql-python pexpect -i http://pypi.douban.com/simple

3

5) 初始化库

1 cd webroot/AutoSa/

2 python manage.py syncdb

3 no

6) 测试运行

1 chmod +x manage.py

2 chmod +x runserver

3 chmod +x ../../*.sh

4 chmod 777 ../../logs

5 ./runserver      #默认监听80,可以修改

6

7 浏览器查看,密码是 第3步 admin的账号和密码

五、 测试添加用户主机登录

1) 登录

账号是admin,密码是 第3部添加的那个密码

2) 添加用户, 提示添加成功,才算成功,如果不成功,请看./runserver那里的提示

密码:是指登录web和跳板机的密码(如果禁用密码登录就不能登录了),key密码是登录跳板机密钥的密码,我的想法是不允许跳板机使用密码登录,只允许使用密钥,需要修改sshd_config,另外查看用户里面的Key目前不允许admin下载

3) 添加主机

4) 授权

添加权限-添加权限

5) 退出admin,登录jery账号,可以更改各种密码,然后下载密钥

6) 将下载的密钥导入xshell或者其他shell中,输入密码

7) 使用密钥登录跳板机

8) 登录测试

1 cd /opt/jumpserver

2 python jumpserver.py

3 试试各种功能

9) 查看日志 /opt/jumpserver/logs中

10) 最终没确认没问题将目录下面的jumpserver.sh移动到 /etc/profile.d/中,来让登录时运行堡垒机脚本

1 mv jumpserver.sh /etc/profile.d/

11) 目前web版本没有管理sudo的功能,所以需要安装phpldapadmin来管理sudo,可以控制该用户再哪些服务器上有sudo权限,可以执行哪些命令 ,phpldapadmin安装参考 http://zhumeng8337797.blog.163.com/blog/static/100768914201010994913503/

题后:目前版本有些bug, 不建议生产中使用,虽然笔者已经在生产中使用了,因为需要考虑ldap的主备,jumpserver的主备,如果能理解原理,可以对代码进行改进,并应用到生产中,

其实部署ldap占用了太多时间,有兴趣的朋友可以试试,将来打算写个一键脚本,有问题可以联系我[email protected]  有疑问可以加群,见最前面!

http://www.magedu.com/

你可能感兴趣的:(finallshell堡垒机)