artType01.jpg Jumpserver+LDAP双主+keepliveVIP集群

2015-09-25 16:46:19

标签:jumpserver+ldap双主+keepliveVIP集群

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://shuainotebook.blog.51cto.com/1271282/1698266

wKiom1YFBJ6z6TEZAAOPkTk9Aj4640.jpg                

         目录

Jumpserver介绍

   一句话:统一的用户、主机、权限管理,安全的SSH密钥认证。

  Jumpserver是一款开源的跳板机,他是由老广大牛编写的。

老广大牛博客地址:http://laoguang.blog.51cto.com/6013350/1636273 

欢迎大家加入老广大牛为大家准备的QQ群:390139816  我也在群里,有问题可以一起商讨。

#建议使用google的浏览器查看文章。


一、ldapserver配置

1 LDAP安装

2 LDAP双主同步配置

3 Keeplive + VIP配置

二、配置LDAP-Client端

1 安装LDAP客户端

2 设置自动创建目录

3 备份原来authconfig,然后设置使用LDAP认证

4 测试在jumpserver上ssh

三、配置LDAP-sudo

1 配置ldap负责sudo

2 修改文件导入schema

3 重新生成配置文件,重启slapd

4 导入sudo.ldif到ldapserver

5 Client端配置设置sudo使用ldap

6 在jumpserver上测试

四、部署Jumpserver

1  安装mysql数据库,创建库

2 下载最新Jumpserver项目

3  安装依赖模块

4 修改Jumpserver配置文件

5 建立logs目录并修改权限

6 django sync db 到数据库

7 测试运行

9 安装node.js

10 设置跳板机

10 登录webjumpserver

五、使用jumpserver

六、测试

七、灾难测试

1、ldap主的MASTER直接挂掉

2、Jumpserver挂掉之后测试

                    安装配置

环境:

jumpserver   192.168.7.103  192.168.7.104  系统版本:Centos6.5迷你安装

ldpaserver   192.168.7.101 192.168.7.102 系统版本:Centos6.6安装  

Client     192.168.7.105  192.168.7.106 192.168.7.107 系统版本:Centos6.6安装

关闭:setlinux  iptables

集群目的:

1、保持ldap实时同步,并且启用keeplive+VIP保证高可用

2、jumpserver 备份并测试灾难性恢复(需要平时做好备份)

#注:第一次操作一定要按照老广,或者我的配置进行一步一步的操作。

一、ldapserver配置

1、LDAP安装

1.1、安装LDAP

192.168.7.101 192.168.7.102

yum install -y vim automake autoconf gcc xz ncurses-devel patch python-devel git python-pip gcc-c++  # 安装基本环境,后面依赖

yum install -y openldap openldap-servers openldap-clients openldap-devel  #安装openldap

1.2、 准备配置文件

# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf    ## 该文件是slapd的配置文件 

# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG       ## 数据库的配置文件

1.3、修改配置文件

#vim /etc/openldap/slapd.conf

  ...

  loglevel        1          #新增找地方添加就行

  ...

  suffix          "dc=jumpserver,dc=org"                          

  rootdn          "cn=admin,dc=jumpserver,dc=org"        

  rootpw          secret234   #这行前面不能有空格

  ...

 #说明: 

 loglevel:设置日志级别 

 suffix:其实就是BaseDN 

 rootdn:超级管理员的dn 

 rootpw:超级管理员的密码

1.4、 修改系统日志配置文件

# vim /etc/rsyslog.conf
local4.*          /var/log/ldap.log  
# local7.*下添加一行

# service rsyslog restart

1.5、启动slapd, 查看启动情况

# service slapd start

# 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/

# service slapd restart

# netstat -tulnp | grep slapd  #说明:第一次启动生会初始化ldap数据库,在/var/lib/ldap中,如果想删除ldap数据库就删除该目录,保留DB_CONFIG配置文件。新版的ldap使用的是/etc/openldap/slapd.d 下的配置文件,删除原来的配置文件,slaptest是重新生成新的配置文件

192.168.7.101  192.168.7.102 同样的配置

2、LDAP双主同步配置

2.1、192.168.7.101 配置

#vim /etc/openldap/slapd.conf    #修改: server1上的slapd.conf    

======================================================

........................................

index entryCSN,entryUUID eq     #新增

moduleload syncprov.la        #把前面的注释去掉(启用模块)

modulepath /usr/lib/openldap    #把前面的注释去掉(启用模块)

modulepath /usr/lib64/openldap   #把前面的注释去掉(启用模块)

........................................

#下面的配置添加到配置文件末尾新增
serverID 1
overlay syncprov

syncrepl rid=001

        provider=ldap://192.168.7.102:389

        type=refreshAndPersist
        searchbase="dc=jumpserver,dc=org"
        schemachecking=on

        bindmethod=simple

        binddn="cn=admin,dc=jumpserver,dc=org"

        credentials=secret234

        retry="60 +"

mirrormode on

======================================================

#解释

======================================================

syncrepl rid=001      #和192.168.7.102 服务器保持一致,告诉openldap2 现在和你是同一组。

provider=ldap://192.168.7.102:389    #192.168.7.102服务器LDAP的IP及端口

type=refreshAndPersist            #设置为持续同步

searchbase="dc=jumpserver,dc=org"     #从192.168.7.102服务器同步dc=jumpserver,dc=org

schemachecking=on               #schema验证开启

bindmethod=simple               #密码验证为简单模式(即明文,此处你可以改为加密)

binddn="cn=admin,dc=jumpserver,dc=org" #使用cn=admin,dc=jumpserver,dc=org用户进行读取(192.168.7.102服务器上必须有该用户)

credentials=secret234            #密码为secret234

retry="60 +"                  #重试为60秒,60和“+”之间必须有空格


#以上几个都是syncrepl的参数,可以考虑在一行里完成,我这里在最前面用一个TAB做了换行。

mirrormode      on       #开启镜像模式

======================================================

2.2、192.168.7.102 配置

#vim /etc/openldap/slapd.conf     #修改: 192.168.7.102上的slapd.conf   

#注意备份配置文件:

======================================================

........................................

index entryCSN,entryUUID eq       #新增

moduleload syncprov.la          #把前面的注释去掉(启用模块)

modulepath /usr/lib/openldap      #把前面的注释去掉(启用模块)

modulepath /usr/lib64/openldap     #把前面的注释去掉(启用模块)

........................................

#下面的配置添加到配置文件末尾新增

serverID 2

overlay syncprov

syncrepl rid=001

        provider=ldap://192.168.7.101:389

        type=refreshAndPersist
        searchbase="dc=jumpserver,dc=org"
        schemachecking=on

        bindmethod=simple

        binddn="cn=admin,dc=jumpserver,dc=org"

        credentials=secret234

        retry="60 +"

mirrormode on

======================================================

2.3、修改完之后重新加载配置文件

# 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/

# service slapd restart


测试:随便在那台机器上添加用户

2.4、导入ldif数据库框架和测试用户,可以使用migrationtools导出框架,也可以用“老广”的. 

base.ldif,group.ldif,passwd.ldif 将其中的dc=jumpserver,dc=org替换成你的baseDN,然后导入,密码是rootpw设置的 secret234  这些文件百度云中下载  http://pan.baidu.com/s/1i3kne6p

# ldapadd -x -W -D "cn=admin,dc=jumpserver,dc=org" -f base.ldif

# ldapadd -x -W -D "cn=admin,dc=jumpserver,dc=org" -f group.ldif

# ldapadd -x -W -D "cn=admin,dc=jumpserver,dc=org" -f passwd.ldif 

#说明:测试用户是testuser 密码是testuser123

#这个测试用户可以根据实际情况修改留下“当作一个超级账号”留下, 虽然有风险但是,我这里测试的时候出现过jumpserver挂掉之后,jumpserver是不会告诉你密码的这样非常安全。但是你把普通密码密码用户禁用了,又没有jumpserver上添加用户的ldap密码。jumpserver挂掉之后怎么办。给自己留个后门,当jumpserver挂掉之后可以临时使用。

#添加完成后:登录到另一台查看

#ldapsearch -x -D "cn=admin,dc=jumpserver,dc=org" -w secret234 -b "dc=jumpserver,dc=org"    #如果刚才添加的用户信息都在就OK

3、Keeplive + VIP配置

1、编写脚本

#vim install.sh  #复制下面内容即可

==========================================

#!/bin/bash

yum install ipvsadm -y
modprobe ip_vs
#配置环境
yum -y install libnl* popt*
wget http://www.keepalived.org/software/keepalived-1.2.8.tar.gz
tar -xvf keepalived-1.2.8.tar.gz
chown -R root.root keepalived-1.2.8*
cd keepalived-1.2.8
./configure --prefix=/etc/keepalived
make
make install
cp /etc/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/                
cp  /etc/keepalived/etc/sysconfig/keepalived   /etc/sysconfig/
cp  /etc/keepalived/etc/rc.d/init.d/keepalived  /etc/init.d/
cp  /etc/keepalived/sbin/keepalived  /bin/

/etc/init.d/keepalived restart

chkconfig  --add keepalived
chkconfig  keepalived on
cat>/etc/keepalived/keepalived.conf<<"EOF"
! Configuration File for keepalived 
#master
global_defs { 

notification_email { 

luo_tianshuai@163.com  

      } 
notification_email_from health@ptmind.com 
smtp_server 127.0.0.1 
smtp_connect_timeout 30 
router_id LVS_236


vrrp_script check_ldap {

     script "/etc/openldap/ldap.sh"

     interval 10

     weight -20

    }

vrrp_instance VI_215 { 
    state MASTER 
    interface  eth0
    lvs_sync_daemon_inteface eth0
    virtual_router_id 234 
    priority 200
    advert_int 1 
    authentication { 
        auth_type PASS 
        auth_pass 131532 
    }

track_script {
     check_ldap
     }
 
    virtual_ipaddress { 
        192.168.1.100
    } 
}

EOF

=============================================================

解释:

notification_email:收件人
notification_email :发件人,这个可以随意定,因为发件人可以伪装
smtp_connect_timeout 30 :连接超时时间;
router_id LVS_DEVE :路由器的标示
state MASTER:初始状态;vrrp初始状态都是backup,选举产生后主的才能成为MASTER,
interface eth0 :所有的通告选举要通过那个接口进行
virtual_router_id :虚拟ID
priority :初始优先级
advert_int :通告几个
authentication ; 认证机制

virtual_ipaddress:虚拟地址

=============================================================

我改成每30秒执行一次,失败权重-20

主的权重是200

备份是199

当主的执行失败之后200-20 就比备份的199小了虚拟VIP就会漂移到192.168.7.102上了

原理是这样的,但是测试他不漂移,所以我改成如果失败kill掉keeplive,这样就会自动漂移

=============================================================

#在192.168.7.101执行完之后在192.168.7.102上执行安装脚本

然后编辑备节点上的配置:

#vim /etc/keepalived/keepalived.conf

修改:改优先级、state

stae改为BACKUP,优先级priority改为比MASTER小 199

2、添加监控脚本,根据不同的业务修改脚本内容(两边都要添加)

#vim /etc/openldap/ldap.sh

!#/bin/bash
str=$(netstat -nlp|grep -o 389)
if [ -n "$str" ] ; then
               exit 0
else
/etc/init.d/keepalived stop &&/usr/bin/killall -9 keepalived

fi

添加脚本执行权限:chmod 755 /etc/openldap/ldap.sh

#重启服务

/etc/init.d/keepalived restart

3、检查测试

#ping 192.168.7.100 通OK

#ip a 

inet 192.168.7.100/32 scope global eth0

在192.168.7.101master上关闭sldap 查看vip是否能自动切换至192.168.7.102backup上。

当MASTER的恢复之后需要手动启动keeplive

二、配置LDAP-Client端

配置:192.168.7.105  192.168.7.106   192.168.7.107

1 安装LDAP客户端

# yum -y install openldap openldap-clients nss-pam-ldapd pam_ldap 

2 设置自动创建目录

# echo "session required pam_mkhomedir.so skel=/etc/skel umask=0077" >> /etc/pam.d/system-auth 

3 备份原来authconfig,然后设置使用LDAP认证

# authconfig --savebackup=auth.bak

# authconfig --enableldap --enableldapauth --enablemkhomedir --enableforcelegacy --disablesssd --disablesssdauth --ldapserver=192.168.7.100 --ldapbasedn="dc=jumpserver,dc=org" --update

#注:这里在引用ldapserver-IP的时候要配置“VIP”的地址

4 测试在jumpserver上ssh

#使用:ssh testuser@192.168.7.105   密码是:testuser123 如果链接成功就继续

#这里通过之后就说明keeplive-VIP正常并且能正常认证。

三、配置LDAP-sudo

192.168.7.101   192.168.7.102 上配置

1 配置ldap负责sudo

拷贝sudo schema,centos版本不一样,可能sudo的版本不是1.8.6,其他的也可以

# cp /usr/share/doc/sudo-1.8.6p3/schema.OpenLDAP /etc/openldap/schema/sudo.schema

2 修改文件导入schema

# vim /etc/openldap/slapd.conf  

...................

include        /etc/openldap/schema/sudo.schema

...................

3 重新生成配置文件,重启slapd

# 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/* 

# service slapd restart

4 导入sudo.ldif到ldapserver

# ldapadd -x -W -D "cn=admin,dc=jumpserver,dc=org" -f sudo.ldif     #在其中一台上添加即可会自动同步

#说明:后期自己做的时候将sudo.ldif中的dc=jumpserver,dc=org换作你的baseDN   #sudo.ldif 这个文件在老广的百度云网盘下载

192.168.7.105   192.168.7.106   192.168.7.107 配置

5 Client端配置设置sudo使用ldap

说明: centos6上sudo-1.7.4p5的使用的ldap配置文件是 /etc/sudo-ldap.conf,sudo版本不同使用的配置文件可能也有所不同,sudo -V | grep 'ldap.conf' 查看

# sudo -V | grep 'ldap.conf'

# echo -e "uri ldap://192.168.7.100\nSudoers_baseou=Sudoers,dc=jumpserver,dc=org" > /etc/sudo-ldap.conf   #IP不要弄混

# echo "Sudoers: files ldap" >>  /etc/nsswitch.conf

#做这两步的时候不要大意如果这里写错了容易造成sudo权限不可用报错提示你输入密码。

6 在jumpserver上测试

# ssh testuser@192.168.7.105  或其他的机器

# sudo su 

#说明:密码是testuser123,sudo su如果不提示输入密码,则成功。

# 如果错误,逐步检查sudo的配置。

四、部署Jumpserver

目前Jumpserver还没有相关的负载均衡方案,所以我采用的是冷备份模式。

主要备份:数据库(主要存储的是、用户信息、密码信息、机组信息等)、日志

Jumpserver 192.168.7.103 配置,这里先配置一台。

#Centos6.5mini安装

# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm  #安装epel源

# yum install -y vim automake autoconf gcc xz ncurses-devel patch python-devel git python-pip gcc-c++ #配置环境

yum install -y  openldap-devel   #安装ldap jumpserver上要调用模块

 安装mysql数据库,创建库

# yum -y install mysql mysql-server mysql-devel

# service mysqld start

# mysql

mysql> create database jumpserver charset='utf8';

mysql> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'mysql234';   #密码信息可以根据自己需求更改

2 下载最新Jumpserver项目

# cd /opt

# git clone https://github.com/ibuler/jumpserver.git 

# cd jumpserver

 安装依赖模块

# cd /opt/jumpserver/docs

# rm -rf /usr/lib64/python2.6/site-packages/Crypto #如果Jumpserver不是6.5mini安装需要执行次步,如果mini安装跳过。

# pip install -r requirements.txt -i http://pypi.douban.com/simple

#  说明:如果报错请手动安装每个模块

# 提示什么装什么:pin install "提示模块名“

修改Jumpserver配置文件

# cd ..

# vim jumpserver.conf

# cd ..
# vim jumpserver.conf
    #coding: utf8
    [base]

    ip = 192.168.7.103

    port = 80
    key = 88aaaf7ffe3c6c04

    [db]
    host = 127.0.0.1
    port = 3306
    user = jumpserver
    password = mysql234
    database = jumpserver

    [ldap]

    ldap_enable = 1

    host_url = ldap://192.168.7.100:389

    base_dn = dc=jumpserver, dc=org
    root_dn = cn=admin,dc=jumpserver,dc=org
    root_pw = secret234

    [websocket]
    web_socket_host = 192.168.7.103:3000

    [mail]

    email_host = smtp.163.com

    email_port = 25

    email_host_user = you're_mail@163.com

    email_host_password = jumpserver123

    email_use_tls = False

 # 说明:   

 # [base] ip, port是访问web的ip和端口号, key是用来加密的随机字符串,如果更改请确保是16位  

 # [db]里是数据库的设置,相信你看一眼就知道了  

# [ldap] ldap_enable启用ldap, host_url是ldapserver的地址, base_dn root_dn root_pw与前面配置的ldapserver保持一致  

# [websocket] websocket的地址,是允许node index.js程序的服务器地址,通常和web运行在一起,端口号默认是 3000    

 # [mail] 配置mail服务器,用来发送邮件,本版本添加用户会自动发邮件给用户的email

5 建立logs目录并修改权限

# cd /opt/jumpserver/

# mkdir logs; chmod 777 logs

6 django sync db 到数据库

# python manage.py syncdb 

Would you like to create one now?(yes/no):no

7 测试运行

分别打开两个Xshell窗口或CRT窗口执行:

# python manage.py runserver 0.0.0.0:80 

# cd /opt/jumpserver/

# python log_handler.py

8 初始化jumpserver浏览器打开

打开IE输入:http://192.168.7.103/install/   

提示:成功继续

9 安装node.js

为了实现实时监控,使用了node.js来完成websocket

# yum -y install nodejs npm  # 好多依赖啊

# cd websocket

# npm install #说明:可能下载需要几分钟,也可以使用”老广“下载好的模块,将node_modules.tar.bz2 移动websocket目录解压即可。从百度网盘下载

# tar xvf node_modules.tar.bz2 # 如果运行上面的install可以不解压提供的模块

测试启动websocket

cd /opt/jumpserver/websocket

node index.js

10 设置跳板机

用户登录到jumpserver之后运行,connect跳转界面

cd /opt/jumpserver/docs

# vim zzjumpserver.sh

...

if[$USER=='luotianshuai'];then            #这个用户是在登录JumpSserver后推出不会直接退出回话,会登录到jumpserver服务器上。

...

# cp zzjumpserver.sh /etc/profile.d/      #复制到用户环境变量里,登录到jumpserver之后自动执行。

设置jumpserver服务自启动:

# cd /opt/jumpserver/

#chmod 755 service.sh

#echo "/opt/jumpserver/service.sh start " >> /etc/rc.local


可以通过:/opt/jumpserver/service.sh start |stop  来开启关闭jumpserver

10 登录webjumpserver

http://192.168.7.103/     用户名:admin  密码:admin

五、使用jumpserver

http://laoguang.blog.51cto.com/6013350/163670

6.1 登陆 账号密码: admin admin

6.2 新建部门

6.3 新建用户

6.4 新建IDC

6.5 添加主机

6.6 建立用户组

6.7 建立主机组

6.8 将主机组授权给用户组

6.9 授权sudo

6.10 新建部门管理员

6.11 授权主机给部门

6.12 部门管理员登陆

6.13 部门管理员添加用户和授权

6.14 查看监控

6.15 查看统计

6.16 普通用户登录

最后关闭:普通用户密码登录即可

# vim /etc/sshd/sshd_config 

...

PasswordAuthentication no 

...

# service sshd restart

部署完成后去 看使用说明文档:  http://laoguang.blog.51cto.com/6013350/1636708 **   #老广大牛的使用文档。

六、测试

相关的jumpserver上的组用户管理登录jumpserver-web进行管理我的测试如下:

1、添加资产  192.168.7.105     192.168.7.106   192.168.7.107

2、添加主机组 www=192.168.7.105    portal=192.168.7.106   db=192.168.7.107

3、添加部门  运维管理 包含=运维小组

4、添加小组  运维小组  测试小组       #运维小组由sudo权限,运维小组没有权限。

5、添加用户:tianshuai  donge  xiaotian  xiaopei

6、用户收到邮件之后通过下载ssh_key证书认证登录(邮件里包含,登录用户名,登录web密码,导入KEY密码)

wKioL1YFCRnjgGEeAAGJrxQPJF4249.jpg

正常的授权机组:

wKioL1YFCRnS-qq8AAGWdUnod-A101.jpg

测试sudo:OK 没问题

wKiom1YFCRWx56qsAADCZxGZQMY482.jpg

七、灾难测试

1、ldap主的MASTER直接挂掉

直接挂掉192.168.7.101后登录测试正常,并且非常流畅。VIP可以正常漂移到192.168.7.102上。

#建议每几个月之后物理备份下ldap用户信息

2、Jumpserver挂掉之后测试

2.1 编写脚本定期备份 (这个是在主的jumpserver挂掉之前做的),挂掉之后没备份就哭吧!

#vim /etc/openldap/jumpserver_back.sh

=======================================

#!/bin/bash
#
#
#the scirpt will to back jumpserver 192.168.7.101 to 192.168.7.102
#
#
DATE=`date +%Y%m%d`
AGO_3=$(date --date "3 day ago" +%Y%m%d)
DISTIP="192.168.7.104"
LOGDR="/opt/jumpserver/logs"
BACKUPPATH="/opt/backjumpserver"
PWORD="nihao123!"

#备份日志文件


cd /var/lib/mysql

mysqldump jumpserver >jumpserver-${DATE}.sql

tar -cvf log-${DATE}.tar $LOGDR
/usr/bin/expect <<-EOF
set time 30

spawn scp jumpserver-${DATE}.sql ${DISTIP}:${BACKUPPATH}
spawn scp log-${DATE}.tar ${DISTIP}:${BACKUPPATH}
expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$PWORD\r" }
}

interact
expect eof
EOF

rm -r log-${AGO_3}.tar
rm -f jumpserver-${AGO_3}.sql

echo "$DATA back done"

=================================================

添加到例行命令:

echo "30 23 * * * /usr/sbin/ntpdate 192.168.15.253 > /dev/null 2>&1" >> /etc/crontab

2.2 安装jumpserver

=========================================================================================================

Jumpserver 192.168.7.104 配置这台留作备份,先搭建好.

在192.168.7.103jumpserver上添加用户、主机、相关部门和组之后,用我的脚本备份。

#Centos6.5mini安装

# rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm  #安装epel源

# yum install -y vim automake autoconf gcc xz ncurses-devel patch python-devel git python-pip gcc-c++ #配置环境

yum install -y  openldap-devel   #安装ldap jumpserver上要调用模块

 安装mysql数据库,创建库

# yum -y install mysql mysql-server mysql-devel

# service mysqld start

# mysql

mysql> create database jumpserver charset='utf8';

mysql> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'mysql234';   #密码信息可以根据自己需求更改

2 下载最新Jumpserver项目

# cd /opt

# git clone https://github.com/ibuler/jumpserver.git 

# cd jumpserver

 安装依赖模块

# cd /opt/jumpserver/docs

# rm -rf /usr/lib64/python2.6/site-packages/Crypto #如果Jumpserver不是6.5mini安装需要执行次步,如果mini安装跳过。

# pip install -r requirements.txt -i http://pypi.douban.com/simple

#  说明:如果报错请手动安装每个模块

# 提示什么装什么:pin install "提示模块名“

修改Jumpserver配置文件

# cd ..

# vim jumpserver.conf

# cd ..
# vim jumpserver.conf
    #coding: utf8

    [base]

    ip = 192.168.7.104

    port = 80
    key = 88aaaf7ffe3c6c04

    [db]
    host = 127.0.0.1
    port = 3306
    user = jumpserver
    password = mysql234
    database = jumpserver

    [ldap]

    ldap_enable = 1

    host_url = ldap://192.168.7.100:389

    base_dn = dc=jumpserver, dc=org
    root_dn = cn=admin,dc=jumpserver,dc=org
    root_pw = secret234

    [websocket]

    web_socket_host = 192.168.7.104:3000


    [mail]

    email_host = smtp.163.com

    email_port = 25

    email_host_user = you're_mail@163.com

    email_host_password = jumpserver123

    email_use_tls = False

 # 说明:   

 # [base] ip, port是访问web的ip和端口号, key是用来加密的随机字符串,如果更改请确保是16位  

 # [db]里是数据库的设置,相信你看一眼就知道了  

# [ldap] ldap_enable启用ldap, host_url是ldapserver的地址, base_dn root_dn root_pw与前面配置的ldapserver保持一致  

# [websocket] websocket的地址,是允许node index.js程序的服务器地址,通常和web运行在一起,端口号默认是 3000    

 # [mail] 配置mail服务器,用来发送邮件,本版本添加用户会自动发邮件给用户的email

5 恢复数据库和日志

  5.1 数据库还原

  #cd /opt/backjumpserver

  找到最新的数据库

  #cp jumpserver-20150925.sql /var/lib/mysql/

  # cd /var/lib/mysql/

  #mysql   jumpserver < jumpserver-20150925.sql

  5.2 日志还原

  日志解压后放到/opt/jumpserver/logs/    #目录名称为:connect


6 测试运行

分别执行下面的命令没有报错即可:

# cd /opt/jumpserver/

# python manage.py runserver 0.0.0.0:80 

#python log_handler.py

 

7 安装node.js

为了实现实时监控,使用了node.js来完成websocket

# yum -y install nodejs npm  # 好多依赖啊

# cd websocket

# npm install #说明:可能下载需要几分钟,也可以使用”老广“下载好的模块,将node_modules.tar.bz2 移动websocket目录解压即可。从百度网盘下载

# tar xvf node_modules.tar.bz2 # 如果运行上面的install可以不解压提供的模块

测试启动websocket

cd /opt/jumpserver/websocket

node index.js

8 设置跳板机

用户登录到jumpserver之后运行,connect跳转界面

cd /opt/jumpserver/docs

# vim zzjumpserver.sh

...

if[$USER=='luotianshuai'];then            #这个用户是在登录JumpSserver后推出不会直接退出回话,会登录到jumpserver服务器上。

...

# cp zzjumpserver.sh /etc/profile.d/      #复制到用户环境变量里,登录到jumpserver之后自动执行。

设置jumpserver服务自启动:

# cd /opt/jumpserver/

#chmod 755 service.sh

#echo "/opt/jumpserver/service.sh start " >> /etc/rc.local


可以通过:/opt/jumpserver/service.sh start |stop  来开启关闭jumpserver

10 登录webjumpserver

http://192.168.7.103/     用户名:admin  密码:admin

#至此还原完毕

11、还原后问题,

      用户在使用旧密钥登录的时候报错:”所选用户密钥未在远程主机上注册。请在试一次

wKiom1YFCXPxPT-SAAFcHAmVxgU841.jpg

解决办法:重新修改 Jumpserver 使用的SSH密钥的密码,重新生成密钥,让用户自己重新使用。其实我可以备份这个密钥。从192.168.7.103上,但是没意义所以就没有备份。

至此还原完毕。