1、Jumpserver堡垒机概述
跳板机概述:
跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作。
跳板机缺点:
没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、违规操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人。
堡垒机概述:
堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。
总结:堡垒机比跳板机多了实时收集、监控网络环境、集中报警等功能。
Jumpserver概述:
Jumpserver是一款使用Python, Django开发的开源跳板机系统, 为互联网企业提供了认证,授权,审计,自动化运维等功能。
jumpserver堡垒机组件说明:
1)Jumpserver:
现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API。
2)Coco:
实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。
3)Luna:
现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。
2、umpserver运行环境
实验环境:
角色 IP 部署软件
jumpserver 192.168.1.179 jumpserver
m01 192.168.1.170 ansible
backup 192.168.1.171 rsync
nfs 192.168.1.172 nfs,sersync
web01 192.168.1.173 httpd
web02 192.168.1.174 httpd
3、Jumpserver堡垒机部署
# 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文
[root@jumpserver ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
[root@jumpserver ~]# export LC_ALL=zh_CN.UTF-8
[root@jumpserver ~]# echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf
[root@jumpserver ~]# exit
再重新连接, 这样语言环境就改变了。
准备 Python3 和 Python 虚拟环境
1)安装依赖包
注:安装前,可以开启yum缓存功能,把软件包下载下来,方便后期使用。
[root@jumpserver ~]# vim /etc/yum.conf
改:keepcache=0
为:keepcache=1
[root@jumpserver ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
2)编译安装python3.6.1
[root@jumpserver ~]# cd /opt/
[root@jumpserver opt]# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
[root@jumpserver ~]# tar xvf Python-3.6.1.tar.xz
[root@jumpserver opt]# cd Python-3.6.1/
[root@jumpserver ~]# ./configure && make && make install
# 这里必须执行编译安装,否则在安装 Python 库依赖时会有麻烦...
互动: python2.7和python3.5冲突了怎么办? 老程序需要使用2.7,新程序需要3.6?
3)建立 Python 虚拟环境
因为 CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为了不扰乱原来的环境我们来使用 Python 虚拟环境
[root@xuegod63 ~]# cd /opt
[root@xuegod63 ~]# python3 -m venv py3
[root@xuegod63 ~]# source /opt/py3/bin/activate
(py3) [root@xuegod63 ~]# #切换成功的,前面有一个py3 标识
(py3) [root@xuegod63 ~]#deactivate #退出py3环境
4、安装 Jumpserver 1.0.0
1)下载或 Clone 项目
项目提交较多 git clone 时较大,你可以选择去 Github 项目页面直接下载zip包。
(py3) [root@xuegod63 ~]# cd /opt/jumpserver/ #我们已经提前下载
注:在线下载方法:
(py3) [root@jumpserver opt]#git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master
注:depth用于指定克隆深度,为1即表示只克隆最近一次commit
2)安装依赖 RPM 包
(py3) [root@jumpserver opt]# cd /opt/jumpserver/requirements
(py3) [root@jumpserver requirements]# yum -y install $(cat rpm_requirements.txt)
3)安装 Python 库依赖
[root@jumpserver ~]# cd /opt/jumpserver/requirements
[root@jumpserver requirements]# source /opt/py3/bin/activate
(py3)[root@jumpserver requirements]# pip -V
pip 9.0.1 from /opt/py3/lib/python3.6/site-packages (python 3.6)
方法1:离线安装:
(py3) [root@jumpserver jumpserver-package]# cd python-package/
(py3) [root@jumpserver python-package]# pip install ./*
方法2:在线安装:
(py3) [root@xuegod63 ~]# pip install -r requirements.txt
pip 是一个安装和管理 Python 包的工具,相当于yum命令
4)安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke
[root@jumpserver ~]# yum -y install redis
[root@jumpserver ~]# systemctl start redis
[root@jumpserver ~]#systemctl enable redis
5)安装 MySQL
[root@jumpserver ~]#yum install mysql-community-server -y
[root@jumpserver ~]# systemctl start mysqld
[root@jumpserver ~]#systemctl enable mysqld
//如果mysql登陆需要密码,请查看该文件
[root@jumpserver ~]# grep 'temporary password' /var/log/mysqld.log
//登陆mysql重新配置密码
[root@jumpserver ~]#mysql -uroot -p'password'
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'talent';
mysql> create database jumpserver default charset 'utf8';
mysql> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'talent';
6)修改Jumpserver 配置文件
[root@jumpserver ~]# cd /opt/jumpserver
[root@jumpserver ~]# cp config_example.py config.py
[root@jumpserver ~]#vim config.py
DB_ENGINE = 'mysql'
DB_HOST = '127.0.0.1'
DB_PORT = 3306
DB_USER = 'jumpserver'
DB_PASSWORD = 'talent'
DB_NAME = 'jumpserver'
7)生成数据库表结构和初始化数据
(py3)[root@jumpserver ~]#cd /opt/jumpserver/utils
(py3) [root@jumpserver ~]#bash make_migrations.sh #注,在执行这一条命令之前,必续保障之前的pip install ./* 命令已经执行完了,不然后导入不了Django等软件包。
8)运行 Jumpserver
(py3) [root@jumpserver ~]# cd /opt/jumpserver
(py3) [root@jumpserver ~]# chmod +x jms
(py3) [root@jumpserver ~]#./jms start all -d #后台运行使用 -d 参数
注: ./jms start all #前台运行
如果运行失败了,重新启动一下。
访问 http://192.168.1.169:8080/ 用户 : admin 密码: admin