Jumpserver安装和测试连接
JumpServer安装和部署
一、引言
- 在特定网络环境中(如内网和外网),为了保证公司网络中的服务器数据不受外界的入侵和破坏,运用各种技术手段收集和监控公司服务器的状态,安全时间、以便集中报警,并且及时处理
我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登陆服务器和日志审计
比较优秀的开源软件jumpserver,功能齐全如: 认证、授权、审计、自动化、资产管理(内网服务器资源分配)等。
Jumpserver是一款由Python编写开源的跳板机(堡垒机系统),实现了跳板机的应有的功能,基于ssh协议来管理服务器资源,客户端不需要安装jumpserver客户端软件程序
二、Jumpserver的特点
完全开源
Python编写,容易二次开发使用
实现了跳板机的基本功能、认证、授权、审计
集成了ansible,批量命令等
支持web Terminal (web终端,可以在浏览器web页面运行终端,管理服务器资源)
Bootstrap编写,界面美观 (前端页面效果,由web前端人员完成的)
自动收集硬件信息 (如后端服务器的磁盘空间,内存大小等资源信息)
录像回放命令搜索 (简单理解就是后端服务器系统能够运行的命令,可以收集到,方便管理)
实时监控
三、JumpServer架构流程和运行组件
Jumpserver:jumpserver的管理后台,提供web页面和用户数据
Coco:实现了ssh server 和 web终端的组件,提供ssh和websocket接口
Luna:是web Terminal 的前端(用来展示给用户和与用户进行交互)前端页面都是由该项目完成的
Guacamole:apache的跳板机项目,jumpserver使用其组件实现RDP(远程桌面)功能,jumpserver在guacamole中添加额外插件,不修改其本身,实现调用
用户通过浏览器访问到nginx代理服务器页面,nginx服务器在jump架构中是作为一台代理服务器,用来代理jumpserver程序、coco程序、luna程序、guacamole程序的web页面,方便用户使用,如果不采用nginx做代理服务器的话,用户访问页面时比较麻烦(如coco程序需要用到8080端口、guncamole需要别的端口,使用起来不方便,而且后续的页面跳转有可能会导致not found),nginx调取luna程序设置终端采用ssh协议连接后端资产(后端服务器)
四、安装 JumpServer
安装硬件介绍centos 7 4G以上内存 至少双核处理器
安装依赖环境:python3.6以上版本 后端数据库 redis
系统版本 | IP地址 |
---|---|
Centos7.4 | 192.168.83.3 |
Centos7.4 | 192.168.83.4 |
关闭防火墙 selinux
修改字符集,支持中文字符
[root@localhost ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
// -c 强制执行 -f 指定设置的字符集 -i 从那个源
[root@localhost ~]# export LC_ALL=zh_CN.UTF-8
// 将字符集设置成环境变量
[root@localhost ~]# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
// 加入到字符配置文件
##因为jumpserver的日志文件中存在中文字符集,需要将系统设置支持中文字符
安装python环境
[root@localhost ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git //pyhon安装需要的依赖包[root@localhost ~]# tar xf Python-3.6.1.tar.xz -C /usr/src/
[root@localhost ~]# cd /usr/src/Python-3.6.1/
[root@localhost Python-3.6.1]# ./configure && make && make install
创建python运行虚拟环境
因为在linux系统中默认安装python 2 版本,需要开辟一个新的虚拟环境使用python3环境运行程序
[root@localhost]# cd /opt
[root@localhost opt]# python3 -m venv py3
// venv python中的虚拟环境 py3虚拟环境名称
[root@localhost opt]# source /opt/py3/bin/activate ##调用py3虚拟环境
(py3) [root@localhost opt]# (py3)使用名为py3的虚拟环
自动载入python虚拟环境设置
(py3) [root@localhost opt]# cd /opt/
(py3) [root@localhost opt]# git clone https://github.com/kennethreitz/autoenv.git
将github网站的项目克隆到本地 web页面访问项目路径为https://github.com/kennethreitz/autoenv
(py3) [root@localhost opt]# echo 'source /opt/autoenv/activate.sh' >> /root/.bashrc
(py3) [root@localhost opt]# source ~/.bashrc
1、安装jumpserver组件
(py3)[root@localhostopt]# git clone https://github.com/jumpserver/jumpserver
(py3) [root@localhost opt]# cd jumpserver/
(py3) [root@localhost jumpserver]# git checkout master
##将jumpserver设置成主分支
(py3) [root@localhost jumpserver]# echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env
## 下次进入jumpserver目录时直接调用py3虚拟环境,不需要再次引入虚拟环境
安装依赖包rpm
(py3) [root@localhost jumpserver]# cd requirements/
(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt)
## rpm_requirements.txt文件存放的是依赖的rpm包名
安装python依赖库
因为jumpserve在使用的过程中需要调用python中的库文件,需要在python库添加jumpserver依赖库
(py3) [root@localhost requirements]# pip install -r requirements.txt -i https://pypi.python.org/simple
语法格式:pip install <安装包名> -r 将文件里面的内容当作安装包 -i 指定连接下载安装包 Pip是python中安装软件包的命令
在安装过程中提示pip版本过低,需要升级pip版本到19.0.2版本
(py3) [root@localhost requirements]# pip install --upgrade pip
重新安装python依赖库
(py3) [root@localhost requirements]# pip install -r requirements.txt -i https://pypi.python.org/simple
如果有报错可以切换安装源:阿里源https://mirrors.aliyun.com/pypi/simple/
安装redis用来做jumpserver的数据缓存,提高访问速度
(py3) [root@localhost requirements]# yum -y install redis
安装完成后配置文件在/etc/redis.conf
将redis服务器开启并设置开机自启
(py3) [root@localhost requirements]# systemctl start redis
(py3) [root@localhost requirements]# systemctl enable redis
安装mysql数据库,用来存放jumpserver数据文件,mysql版本必须是5.5版本以上,要不然不支持
这里可以使用yum进安装mysql数据库,centos7版本自带mariadb版本为5.5
(py3) [root@localhost requirements]# yum -y install mariadb mariadb-devel mariadb-server ##安装mysql数据库
(py3) [root@localhost requirements]# systemctl start mariadb
(py3) [root@localhost requirements]# systemctl enable mariadb
(py3) [root@localhost requirements]# mysqladmin -u root password 123.com ##设置mysql用户密码
(py3) [root@localhost requirements]# mysql -u root -p123.com登陆数据库创建jumpserver库用来存放jumpserver数据
MariaDB [(none)]> create database jumpserver default charset 'utf8' ;##创建一个名为jumpserver的数据库
MariaDB [(none)]> grant all on jumpserver.* to jumpserver@127.0.0.1 identified by '123.com';##jumpserver对数据库拥有所有权限,密码为123.comMariaDB [(none)]> flush privileges;##刷新配置
修改jumpserver配置文件
(py3) [root@localhost jumpserver]# pwd/opt/jumpserver
(py3) [root@localhost jumpserver]# cp config_example.yml config.yml
(py3) [root@localhost jumpserver]# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49返回结果 cm3tDTBeW90xjHMYmMleRe9NoiFyS99qArQVuZ1fspuLPqMiD
(py3) [root@localhost jumpserver]# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16 返回结果18doTTEL5ssQp2Ps修改jumpserver主配置文件
(py3) [root@localhost jumpserver]# grep -v ^# config.yml SECRET_KEY: cm3tDTBeW90xjHMYmMleRe9NoiFyS99qArQVuZ1fspuLPqMiD BOOTSTRAP_TOKEN: 18doTTEL5ssQp2PsDEBUG: falseLOG_LEVEL: ERRORSESSION_EXPIRE_AT_BROWSER_CLOSE: true DB_ENGINE: mysqlDB_HOST: 127.0.0.1DB_PORT: 3306DB_USER: jumpserverDB_PASSWORD: 123.comDB_NAME: jumpserverHTTP_BIND_HOST: 0.0.0.0HTTP_LISTEN_PORT: 8080REDIS_HOST: 127.0.0.1REDIS_PORT: 6379
启动服务
(py3) [root@localhost jumpserver]# ./jms start all -d
2、安装COCO组件
(py3) [root@localhost]# cd /opt
(py3) [root@localhost opt]# git clone https://github.com/jumpserver/coco.git
(py3) [root@localhost opt]# cd /opt/coco/requirements
(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt)
(py3) [root@localhost requirements]# pip install -r requirements.txt
# 如果下载速度很慢, 可以换国内源$ pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
(py3) [root@localhost coco]# cd /opt/coco/
(py3) [root@localhost coco]# git checkout master
(py3) [root@localhost coco]# echo "source /opt/py3/bin/activate" > /opt/coco/.env ##设置进入目录自动载入py3虚拟环境
测试自动载入是否成功
py3) [root@localhost coco]# cp config_example.yml config.yml
(py3) [root@localhost coco]# vim config.yml 修改:BOOTSTRAP_TOKEN: 18doTTEL5ssQp2Ps #需要与jumpserver组件中的BOOTSTRAP_TOKEN选项相同LOG_LEVEL: ERROR
(py3) [root@localhost coco-master]# ./cocod start -d #启动coco组件,可查看2222端口判断是否启动
安装WEB Terminal前端:Luna
[root@localhost ~]# tar zxf luna.tar.gz -C /opt
[root@localhost ~]# chown -R root:root /opt/luna
安装Docker下载guacamole镜像 (guacamole 安装和配置相对麻烦,使用打包好的镜像运行环境)
在终端执行下面命令
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl enable docker
systemctl start docker
下载并运行guacamole镜像
[root@localhost ~]# docker run --name jms_guacamole -d -p 8081:8080 -v /opt/guacamole/key:/config/guacamole/key -e JUMPSERVER_KEY_DIR=/config/guacamole/key -e JUMPSERVER_SERVER=http://127.0.0.1:8080 jumpserver/guacamole:latest
##--name 制定镜像运行的名称
## -d 后台运行
##-p 将容器内的8080端口映射到本地8081端口
## -v 将容器内的/config/guacamole/key文件共享到本地目录中
## -e 为容器内设置环境变量JUMPSERVER_KEY_DIR=/config/guacamole/key
安装nginx服务,整合jumpserver、coco、luna、guacamole组件
可使用yum安装和二进制方式安装
1、yum安装
[root@localhost ~]# yum -y install nginx
#配置文件路径为/etc/nginx/nginx.conf
2、使用nginx1.14源码包安装
[root@localhost ~]# tar zxf nginx-1.14.0.tar.gz
[root@localhost ~]#cd nginx-1.14.0
[root@localhost nginx-1.14.0]# ./configure && make && make install
修改nginx配置文件
在server模块中添加,注释掉原有的 /client_max_body_size 100m; # 录像及文件上传大小限制location /luna/ {try_files $uri / /index.html;alias /opt/luna/; # luna 路径, 如果修改安装目录, 此处需要修改}location /media/ {add_header Content-Encoding gzip;root /opt/jumpserver/data/; # 录像位置, 如果修改安装目录, 此处需要修改}location /static/ {root /opt/jumpserver/data/; # 静态资源, 如果修改安装目录, 此处需要修改}location /socket.io/ {proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器, 请填写它的ipproxy_buffering off;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;access_log off;}location /coco/ {proxy_pass http://localhost:5000/coco/; # 如果coco安装在别的服务器, 请填写它的ipproxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;access_log off;}location /guacamole/ {proxy_pass http://localhost:8081/; # 如果guacamole安装在别的服务器, 请填写它的ipproxy_buffering off;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $http_connection;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;access_log off;}location / {proxy_pass http://localhost:8080; # 如果jumpserver安装在别的服务器, 请填写它的ipproxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
启动nginx访问web页面 默认用户名和密码为admin
点击----用户管理-----用户列表----创建用户
资产管理-----管理用户----创建管理用户
资产管理-----系统用户----创建系统用户(用户名尽量为root,选择手动登录,
这个用户是用来连接后端资产的)
资产管理-----资产列表----创建资产----写测试机的IP地址
权限管理-----资产授权----创建授权规则
访问测试
Jumpserver安装和测试连接相关推荐
- my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接...
一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径"C:\Soft\mysql-5.6.24-winx64" ...
- MongoDB下载安装与测试连接(windows)
一.MongoDB下载 MongoDB为Windows提供了两种安装方式,分别是msi和zip方式. msi方式对4.0以上版本进行了优化,而3.x版本则需在安装后手动进行配置:zip方式解压即安装, ...
- Presto编译安装和测试连接Hive
1.下载 源码: git clone https://github.com/prestodb/presto.gitmvn clean install -DskipTests 在Windows环境下编译 ...
- python之路 mysql 博客园_教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql...
教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql Easy_install安装MySQLdb 很简单,以至于我不晓得该怎么说.一句话. sodu ...
- mysql安装连接测试c_Ubuntu 12.04下安装mysql并用C程序测试连接
1.先安装mysql 代码:sudo apt-get install mysql-server mysql-client 2.再装开发包 代码:sudo apt-get install libmysq ...
- rocketmq 远程连_RocketMQ-单机版安装及远程连接测试
RocketMQ-单机版安装及远程连接测试 发布时间:2018-05-10 11:06, 浏览次数:1163 , 标签: RocketMQ 安装需要 jdk 1.8 centos 7 rocketmq ...
- CentOS 7安装Mongodb并使用Robo 3T远程测试连接
文章目录 背景 环境 下载`Mongodb`压缩包 解压`Mongodb`压缩包 配置环境变量 创建数据库文件与目录 `Mongodb`配置文件添加配置内容 设置数据库文件夹目录权限 启动`mongo ...
- 实战:windows上如何安装kubectl并连接我们的k8s集群(测试成功-博客输出)-2022.1.3
实战:windows上如何安装kubectl并连接我们的k8s集群-2022.1.3 目录 文章目录 实战:windows上如何安装kubectl并连接我们的k8s集群-2022.1.3 目录 实验环 ...
- 开源堡垒机Jumpserver安装
测试环境Centos7.7: [root@magic ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) 安装目录: / ...
最新文章
- 机器学习数据预处理之缺失值:众数(mode)填充
- socket通过多网卡收发数据
- OpenCV imgproc分割(segmentation)的实例(附完整代码)
- 如何在生产环境使用Btrace进行调试
- 哈哈哈,程序员没有女朋友的原因,我终于找到了!
- 2019年,ALEXA将会走向何方?
- java struts 介绍,Struts入门之MVC介绍
- JavaScript基础知识(三个判断、三个循环)
- labview与威纶通触摸屏ftp通讯
- 如何评估开发费 (From 程序匠人)
- MyEclipse10破解
- 用html和css实现字体发光效果
- Windows蓝屏死机骗局:新的恶意钓鱼方式
- 木讷的程序员需要知道的事情 (二)
- 无线web认证计费服务器,WEB认证原理
- esp8266 mesh 组网
- 软件(程序)编写通法
- 35.前端笔记-CSS3-3D转换
- 酒桌上的潜规则,男人必学,女人必知
- fabric2.2版本 单机测试环境搭建