一、jumpserver前置环境依赖安装
JumpServer是国人(广宏伟)组织开发的一款完全开源的跳板机系统,用于自动化运维等。其基于python,能够方便地进行二次开发。官方地址http://www.jumpserver.org/。
首先需要安装python的一些环境,这里需要先更新yum源。
epel是centos等衍生发行版,用来弥补centos内容更新有时比较滞后或是一些扩展的源缺失。
Yum install epel-release
之后使用yum clean all和yum makecache来配置下yum。
yum clean all 清除缓存目录下的软件包及旧的headers,yum makecache 是 将服务器上的软件包信息 现在本地缓存,以提高搜索、安装软件的速度。
执行yum update
最后安装必要的一些软件和依赖。
yum -y install git python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel,
yum -y install sqlite-devel libffi-devel openssl-devel
由于试验机已经安装工git等一些工具,实际试验中省去了一些:
PS:
1、sshpass 是一个简单、轻量级的命令行工具,通过它我们能够向命令提示符本身提供密码(非交互式密码验证),这是在jumpserver中便于控制客户端,有不安全因素,不在生产环境使用。
2、Lrzsz是linux中可以替代ftp进行文件上传下载的软件。
三、JumpServer下载安装以及配置
通过GIt获得git clone https://github.com/jumpserver/jumpserver
之后进入jumpserver目录下,查看发现一个requirement.txt文件,里面是需要的python模块拓展包。
使用pip install -r requirement.txt安装需要的拓展,以下是安装完成后:
python拓展安装后,可能还有没有安装的系统依赖,jumpserver的requirements目录下的rpm_requirements.txt给出了所有的需要依赖,谨慎起见,继续安装这个文件的内容:
Yum intstall -y cat rpm_requirements.txt
所有依赖完成后,需要配置文件,jumpserver中已经给出了一个config的demo,直接复制自定义修改即可:
在配置文件中,邮件发送和通知需要修改邮件配置部分,如图:
最后,需要初始化数据库,操作如下:
cd utils
Chmod +x make_migrations.sh init_db.sh
sh make_migrations.sh
sh init_db.sh
最后,需要安装REDIS服务支持:
Yum install -y redis
REDIS安装完成之后,启动REDIS服务。
Service redis start
使用netstat -tunlp|grep 6379来查看redis是否已开端口
REDIS启动成功!
最后,运行run_server.py启动jumpserver服务:
Python run_server.py
JumpServer启动成功。这是直接在前台启动服务,如果需要在后台运行,可以使用nohup或者screen,本文此处以screen为例:
使用screen -S jumpserver python run_server.py
可以通过screen -list查看已经在后台开启screen
使用screen -r 97975可以跳转到jumpserver的界面,使用ctrl+a后按d键可以回到tty。
至此,安装JumpServer完毕。
二、JumpServer的简单使用
服务启动后,通过访问http://主机ip:8080进行WEB端的访问,8080端口可以在config.py中修改。
本服务搭建在实验虚拟机中,以NAT模式接入网络,查看IP地址如下:
192.168.128.143
在其他虚拟上上使用此IP访问,一开始发现无法连接,一直连接超时,通过telnet 192.168.128.143 8080 端口似乎被防火墙阻塞,但是通过iptables -L查看发现并没有拦截8080端口的规则。
尝试关闭iptables,发现服务已经不可用。后来想起来Centos7中使用firewall代替了iptables。本文中为便捷,直接关闭firewall,而没有添加允许8080端口的规则(不建议这样做):
Service firewalld stop
再次访问:
其中,默认账号密码都为:admin
新建立一个管理用户dbstar(客户端上已存在用户且有sudo权限):
新建立一个资产(主机):
新建立一授权规则:
可以获取客户端主机信息等:
在新建系统用户功能上,会出现报错:
通过github项目的issue中查找,发现是python版本问题,JumpServer 0.4已经基于python3.6,而系统中python默认是python2.7,需要安装python3.6环境。
以下给出与python2.7兼容下,源码安装python3.6,
在此写成shell脚本集成”python3.6.1_install.sh”:
#!/bin/sh
#简单判断操作系统,仅在centos下运行
OS=cat /etc/*release |grep centos
if [ ! -n "$OS" ]; then
# 退出shell脚本并返回状态码1
echo “只在centos下!”
exit 1
else
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
fi
#从官网获取python3.6.1源码压缩包
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
#创建python3.6目录文件
mkdir /usr/local/python3
#复制包到目录
cp Python-3.6.1.tgz /usr/local/python3
rm -rf Python-3.6.1.tgz
#切换目录
cd /usr/local/python3/
#解压缩
tar zxvf /usr/local/python3/Python-3.6.1.tgz
#进入压缩后的文件
cd /usr/local/python3/Python-3.6.1
#配置准备编译,设定安装目录在/usr/local/python3
./configure --prefix=/usr/local/python3
#开始编译安装
make&&make install
#软连接到用户命令环境
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
echo “python3.6 complete!!!”
#安装完成,接下来切换python3.6环境
cd /opt
#创建虚拟环境(python3后自带支持)
python3 -m venv py36
#启用python3.6.1的环境
source /opt/py36/bin/activate
echo “all operation complete!!!”