Jumpserver-跳板机的搭建
Jumpserver堡垒机
一、Jumpserver堡垒机概述-部署Jumpserver运行环境
01 跳板机概述
跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作。
跳板机缺点:没有实现对运维或开发人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、违规操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人。
02 堡垒机概述
堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。
总结:堡垒机比跳板机多了实时收集、监控网络环境、集中报警等功能。
03 jumpserver概述
Jumpserver是一款使用Python、Django开发的开源跳板机系统。为互联网企业提供了认证,授权,审计,自动化运维等功能。
官方网址: http://www.jumpserver.org
jumpserver堡垒机组件说明:
1、Jumpserver:现指 Jumpserver 管理后台,是核心组件(Core),使用 Django Class Based View (Django基于类的视图)风格开发,支持 Restful API。
2、Coco:实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。
3、Luna:现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。
04 部署jumpserver运行环境
实验环境:
一台jumpserver服务端
一台或几台服务器资源,作为被管理的服务器
上传依赖软件到到Linux系统/opt目录下并解压:
修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文。所以必须要修改字符集为中文。
/etc/locale.conf [root@jumpserver ~]# exit #再重新连接, 这样语言环境就改变了。 登出 [root@jumpserver ~]# cat /etc/locale.conf LANG=zh_CN.UTF-8 " src="file:///C:/Users/15293/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png" v:shapes="文本框_x0020_1">
05 准备python3和python虚拟环境
1、安装依赖包
注:安装前可以开启yum缓存功能,把软件包下载下来方便后期使用。
2、编译安装python3.6.1
# 这里必须执行编译安装,否则在安装 Python 库依赖时会有麻烦...
注:在线下载 wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz
3、建立Python虚拟环境
解决python2.7和python3.5冲突了怎么办?老程序需要使用2.7,新程序需要3.6?
因为 CentOS 6/7 自带的是 Python2,而Yum等工具依赖原来的Python,为了不扰乱原来的环境我们使用Python虚拟环境。
看到上面的提示符代表成功,以后运行Jumpserver都要先运行以上source命令,以下所有命令均在该虚拟环境中运行。
06 安装jumpserver1.0.0
1、下载或 Clone 项目
项目提交较多 git clone 时较大,你可以选择去 Github 项目页面直接下载zip包。
注:在线下载方法:
git clone --depth=1 https://github.com/jumpserver/jumpserver.git
cd jumpserver && git checkout master
注:depth用于指定克隆深度,为1即表示只克隆最近一次commit。
2、安装依赖rpm包
3、安装python依赖库
4、安装redis,jumpserver使用redis做cache --缓存
5、安装MySQL
6、创建jumpserver数据库并授权
create database jumpserver default charset 'utf8'; MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '123456'; MariaDB [(none)]> exit " src="file:///C:/Users/15293/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png" v:shapes="文本框_x0020_10">
7、修改jumpserver配置文件
修改连接数据库配置
8、生成数据库表结构和初始化数据库
#注,在执行这一条命令之前,必续保障之前的pip install ./* 命令已经执行完了,不然后导入不了Django等软件包。
9、启动
如果运行失败了,重新启动一下。
#启动服务的脚本,使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数
10、测试
访问:IP:8080 【用户名:admin,密码:admin】
这里需要使用8080端口来访问页面。后期搭建 nginx 代理,就可以直接使用80端口正常访问了
附上重启的方法:
二、安装Coco组件和ssh server
01 安装Coco组件
1、点击web终端界面,弹出一个新的页面会报错
所以接下来,我们安装luna和coco:
coco概述:coco实现了SSH Server和Web Terminal Server的组件,提供SSH和WebSocket接口,使用Paramiko和Flask开发。
02 查看配置文件并运行
# 新版本更新了运行脚本,使用方式./cocod start|stop|status|restart 后台运行请添加 -d 参数
三、安装web-terminal前端和luna组件并配置nginx整合各个组件
01 安装luna组件
Luna概述:Luna现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。
访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译
解压 Luna
注:在线下载
#wget https://github.com/jumpserver/luna/releases/download/v1.0.0/luna.tar.gz
02 配置nginx整合各个组件
03 修改nginx配置文件并启动
删除第38行到 57行中server {。。。}相关的内容
在vim命令模式,输入38gg,快速跳到38行,然后输入20dd,就可以删除。
删除后,在38行插入以以下内容:
04 测试
测试访问:ip:80 [默认就是80端口]
会话管理—web终端
05 接受Coco注册
会话管理—终端管理—接受
06 测试链接
07 字符界面登录
" src="file:///C:/Users/15293/AppData/Local/Temp/msohtmlclip1/01/clip_image041.png" v:shapes="文本框_x0020_23">
以上说明终端已经连接成功没有任何问题
四、jumpserver平台系统初始化
01 系统基本配置
这里要写上自己真实的URL地址,不然后期用户无法访问。
02 配置邮件服务器
点击页面上边的“邮件设置”,进入邮件设置页面:
配置邮件服务后,点击页面的"测试连接"按钮,如果配置正确,Jumpserver 会发送一条测试邮件到您的 SMTP 账号邮箱里面,邮箱收到邮件后点击提交。
注:配置完后,需要重启一下服务。不然后期创建用户,收不到邮件。
注意: 在使用jumpserver过程中,有一步是系统用户推送,要推送成功,client(后端服务器)要满足以下条件:
1)后端服务器需要有python、sudo环境才能使用推送用户,批量命令等功能
2)后端服务器如果开启了selinux,请安装libselinux-python。一般情况服务器上都关闭了selinux
五、使用jumpserver管理机房服务器
搭建完成后的整体界面
01 用户管理
添加用户和用户组。
用户名即 Jumpserver 登录账号。用户组是用于资产授权,当某个资产对一个用户组授权后,这个用户组下面的所有用户就都可以使用这个资产了。角色用于区分一个用户是管理员还是普通用户。
新用户登录:
这个需要用户自己生成SSH 密钥,方便后期登录:在另一台linux上,使用admin用户生成自己的ssh密钥。
02 创建管理用户
Jumpserver里各个用户的说明
管理用户是服务器的 root,或拥有 NOPASSWD: ALL sudo 权限的用户,Jumpserver 使用该用户来推送系统用户、获取资产硬件信息等。
03 创建系统用户
系统用户是 Jumpserver 跳转登录资产时使用的用户,可以理解为登录资产用户, Jumpserver使用系统用户登录资产。
系统用户的 Sudo 栏填写允许当前系统用户免sudo密码执行的程序路径,如默认的/sbin/ifconfig,意思是当前系统用户可以直接执行 ifconfig 命令或 sudo ifconfig 而不需要输入当前系统用户的密码,执行其他的命令任然需要密码,以此来达到权限控制的目的。
此处的权限应该根据使用用户的需求汇总后定制,原则上给予最小权限即可。
系统用户创建时,如果选择了自动推送 Jumpserver 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机、Windows )不支持 Ansible, 请手动填写账号密码。
Linux 系统协议项务必选择 ssh 。如果用户在系统中已存在,请去掉自动生成密钥、自动推送勾选。
原则上就是手动visudo。
系统会自动再visudo添加一条规则
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
增加一个:巡检服务器状态用户:
test 用户权限: /sbin/ifconfig,/usr/bin/top,/usr/bin/free
05 编辑资产树
节点不能重名,右击节点可以添加、删除和重命名节点,以及进行资产相关的操作。
06 创建资产
点击页面左侧的“资产管理”菜单下的“资产列表”按钮,查看当前所有的资产列表。
点击页面左上角的“创建资产”按钮,进入资产创建页面,填写资产信息。
IP 地址和管理用户要确保正确,确保所选的管理用户的用户名和密码能"牢靠"地登录指定的 IP 主机上。资产的系统平台也务必正确填写。公网 IP 信息只用于展示,可不填,Jumpserver 连接资产使用的是 IP 信息。
如果资产不能正常连接,请检查管理用户的用户名和密钥是否正确以及该管理用户是否能使用 SSH 从 Jumpserver 主机正确登录到资产主机上。
07 网域列表
网域功能是为了解决部分环境无法直接连接而新增的功能,原理是通过网关服务器进行跳转登录。这个功能,一般情况不用到。
08 创建授权规则
节点,对应的是资产,代表该节点下的所有资产。
用户组,对应的是用户,代表该用户组下所有的用户。
系统用户,及所选的用户组下的用户能通过该系统用户使用所选节点下的资产。
节点,用户组,系统用户是一对一的关系,所以当拥有 Linux、Windows 不同类型资产时,应该分别给 Linux 资产和 Windows 资产创建授权规则。
当前端页面授权完成之后系统会把jumpserver服务器的test用户推送到lb01上。
09 web界面资产的使用
使用创建的用户登录
到这里之后可以直接点击web终端。进行连接服务器。
10 xshell使用资产
p ID Hostname IP LoginAs Comment 1 lb01 172.16.0.171 [巡检服务器状态用户] 总共: 1 匹配: 1 Opt> lb01 Connecting to test@lb01 0.2 Last login: Thu Apr 11 16:57:47 2019 from jumpserver [test@lb01 ~]$ su - root Password: Last login: Thu Apr 11 16:59:11 CST 2019 on pts/7 [root@lb01 ~]# " src="file:///C:/Users/15293/AppData/Local/Temp/msohtmlclip1/01/clip_image099.png" v:shapes="文本框_x0020_30">
附上官网文档网址
http://docs.jumpserver.org/zh/docs/setup_by_centos.html
Jumpserver-跳板机的搭建的更多相关文章
- Linux系统——JumpServer跳板机的搭建和部署
公网源部署jumpserver跳板机 建立阿里云公网源yum仓库(服务端)[root@localhost ~]# lsanaconda-ks.cfg install.log.syslog jumpse ...
- jumpserver跳板机的搭建
搭建的跳板机基于0.3.2,别问我为什么不用0.5版本的,我能说我没有搭建成功么,步骤贼多,功能不完善,不建议生产环境使用 步骤其实很简单: github wiki :https://github.c ...
- Jumpserver跳板机的搭建和部署
1.需要搭云yum仓库wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 2. ...
- 【转】jumpserver 堡垒机环境搭建(图文详解)
jumpserver 堡垒机环境搭建(图文详解) 摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装ag ...
- 其他综合-CentOS7 安装 Jumpserver 跳板机
CentOS7 安装 Jumpserver 跳板机 1.实验描述 搭建 jumpserver 平台,实现有效的运维安全审计.完美做到事先防范,事中控制和事后溯源 2.实验环境 物理机系统:Window ...
- jumpserver 堡垒机环境搭建
jumpserver 堡垒机环境搭建(图文详解) https://blog.csdn.net/my_bai/article/details/62226474 http://docs.jumpser ...
- linux Jumpserver跳板机 /堡垒机详细部署
关于跳板机/堡垒机的介绍: 跳板机的定义: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点: 没有实现对运维人员操作行为的 ...
- jumpserver跳板机(堡垒机)安装
jumpserver跳板机(堡垒机) Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能,基于ssh协议来管理,客户端无需安装agent,助力互联网企业 ...
- CentOS 7 搭建Jumpserver跳板机(堡垒机)
跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作 跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是 ...
- jumpserver跳板机搭建,适合centos6和centos7的使用
第17章 jumpserver的搭建 17.1 jumpserver的介绍 jumpserver是全球首款开源的堡垒机,使用的是GNU,GPL的开源协议. jumpserver是用python和g ...
随机推荐
- Docker学习之搭建MySql容器服务
描述 MySQL 5.6 SQL数据库服务器Docker镜像,此容器映像包含用于OpenShift的MySQL 5.6 SQL数据库服务器和一般用法.用户可以选择RHEL和基于CentOS的图像.然后 ...
- 解决Visual Studio (VS) 插件下载缓慢
1.关闭IPV6协议 因为如果都支持IPV6协议,会自动使用IPV6下载扩展. 因为IPV6还没有建立完善,所以可能会比较慢. 百度经验:怎样关闭IPV6协议 2.给IPV6添加DNS 百度: 240 ...
- 思维+模拟--POJ 1013 Counterfeit Dollar
Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are true silver d ...
- Node 内存泄漏排查案例
背景 在阿里云上看到我运行了一段时间的程序,发现 memory 一项基本是在稳步提升,就知道有内存泄漏的情况出现.如下图 近三日从 35% 升到 40%,缓慢而坚定的提升. 代码 排查此问题需要分析其 ...
- B. Sorted Adjacent Differences(思维构造)
\(给出n个数字,要求构造一个由这n个数组成的序列,使得|a_1-a_2|<=|a_2-a_3|...<=|a_{n-1}-a_n|\) \(排序后,从数列中间取个数,然后从左右分别循环取 ...
- C. Ilya And The Tree 树形dp 暴力
C. Ilya And The Tree 写法还是比较容易想到,但是这么暴力的写法不是那么的敢写. 就直接枚举了每一个点上面的点的所有的情况,对于这个点不放进去特判一下,然后排序去重提高效率. 注意d ...
- 网络流二十四题,题解summary
没有全部写完,有几题以后再补吧. 第一题:最简单的:飞行员配对方案问题 讲讲这个题目为什么可以用网络流? 因为这个题目是要进行两两之间的匹配,这个就可以想到用二分图匹配,二分图匹配又可以用网络流写. ...
- mybatis与hibernate运行流程比较
hibernate长时间没用,感觉生疏了,正好借这篇文章整合下知识,顺便复习比较下两种框架. 概述: Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己 ...
- AbstractList源码分析
AbstractList 1 类图 2 字段 // 默认容量 private static final int DEFAULT_CAPACITY = 10; // 共享的空数组 private sta ...
- Dockerfile-Namespace
Docker核心-Namespaces(命名空间) 1)概念: 命令空间是Linux内核的一个强大的特性.每个容器都有自己单独的命令空间,运行在其中的应用都是独立在操作系用中运行一样.命名空间保证了容 ...