技术标签: Jumpserver堡垒机(跳板机)安装及特点 Linux linux Linux--各项服务优化
Jumpserver介绍:
Jumpserver是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。
Jumpserver 使用 Python /Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。
Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发访问限制。
特点:
1)完全开源,GPL授权
2)Python编写,方便二次开发
3)实现了跳板机基本功能,认证、授权、审计
4)集成了Ansible,批量命令等
5)支持WebTerminal
6)Bootstrap编写,界面美观
7)自动收集硬件信息
8)录像回放
9)命令搜索
10)实时监控
11)批量上传下载
Jumpserver组件说明:
Jumpserver:jumpserver的管理后台
Coco:实现ssh server 和web终端的组件,提供ssh和webcocket接口
Luna:是web terminal的前端(用来展示给用户和与用户进行交互)前端页面都是由该项目完成的。
Guacamole: Apache的跳板机项目,使用其组件实现rdp(远程桌面功能)。
安装环境:
系统: CentOS 7
两台Linux服务器
192.168.1.10 上安装 nginx jumpserver服务等其它插件
192.168.1.40 有用户及密码;用来验证web网页登陆
Redis mysql 使用公共服务,不单独安装
安装jumpserver:
1:将系统环境字体设置成中文,因为jumpserver的日志文件里面的内容会包含中文字符,不支持可能会乱码
[root@localhost ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
[root@localhost ~]# export LC_ALL=zh_CN.UTF-8
[root@localhost ~]# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
2:安装Python3(系统 默认Python2版本过低)
需要有网络yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
3安装python的依赖包
yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
4:安装好后设置Python3的虚拟运行环境 在/opt目录设置名为py3的虚拟环境
因为 CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为
了不扰乱原来的环境我们来使用 Python 虚拟环境
[root@localhost Python-3.6.1]# cd /opt/
[root@localhost opt]# python3 -m venv py3
[root@localhost opt]# source /opt/py3/bin/activate
(py3) [root@localhost opt]# ls
py3 rh
5:设置自动载入py3虚拟环境的服务(需要插入下载好的autoenv软件包)
下载路径https://github.com/kennethreitz/autoenv.git
(py3) [root@localhost opt]#rz autoenv.zip
(py3) [root@localhost opt]#unzip autoenv.zip
(py3) [root@localhost opt]#echo "source /opt/autoenv/activate.sh" >> /root/.bashrc
(py3) [root@localhost opt]#source /root/.bashrc
6:安装第一个组件jumpserver并且配置:
项目提交较多 git clone 时较大,你可以选择去 Github 项目页面直接下载 zip
包。
下载路径:https://github.com/jumpserver/jumpserver.git
(py3) [root@localhost opt]# rz jumpserver.zip
(py3) [root@localhost opt]# unzip jumpserver.zip
(py3) [root@localhost opt]# echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env
(py3) [root@localhost opt]# cd jumpserver/
(py3) [root@localhost jumpserver]# cd requirements/
(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt) (大约2分钟)
(py3) [root@localhost requirements]# pip install --upgrade pip
(py3) [root@localhost requirements]# pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ (安装如果报错有可能是网络问题,多安装几次)
7:安装mysql,版本必须是5.5以上:
(py3) [root@localhost requirements]# yum -y install mariadb mariadb-devel mariadb-server
(py3) [root@localhost requirements]# systemctl start mariadb
[root@localhost opt]# mysqladmin -u root password 123.com
[root@localhost opt]# mysql -u root -p123.com
MariaDB [(none)]> create database jumpserver default charset 'utf8'; #创建jumpserver库字符集为utf-8
MariaDB [(none)]> grant all on jumpserver.* to [email protected] identified by "123456"; #创建用户jumpserver
MariaDB [(none)]> flush privileges #刷新权限
8:安装redis数据库:
(py3) [root@localhost ~]# rz redis-4.0.14.tar.gz
(py3) [root@localhost ~]# tar zxf redis-4.0.14.tar.gz
(py3) [root@localhost ~]# cd redis-4.0.14/
(py3) [root@localhost redis-4.0.14]# make && make install (安装大约3分钟)
(py3) [root@localhost redis-4.0.14]# cd utils/
(py3) [root@localhost utils]# ./install_server.sh (一直回车下去)
(py3) [root@localhost utils]# /etc/init.d/redis_6379 start
9:修改jumpserver配置文件
(py3) [root@localhost utils]# cd /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
(py3) [root@localhost jumpserver]# vim config.yml
(py3) [root@localhost jumpserver]# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16
(py3) [root@localhost jumpserver]# vim config.yml
配置文件修改内容如下:
SECRET_KEY:
BOOTSTRAP_TOKEN:
DEBUG: false
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: 123456
DB_NAME: jumpserver
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
(py3) [root@localhost jumpserver]# ./jms start all –d (开启大约3分钟)
10:安装coco组件并配置:
(py3) [root@localhost opt]# ls
autoenv autoenv.zip coco.zip jumpserver jumpserver.zip py3 rh
(py3) [root@localhost opt]# unzip coco.zip
(py3) [root@localhost opt]# mv coco-master coco
(py3) [root@localhost opt]# cd coco/
(py3) [root@localhost coco]# echo "source /opt/py3/bin/activate" > /opt/coco/.env
(py3) [root@localhost coco]# cd requirements/
(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt)
(py3) [root@localhost requirements]# pip install -r requirements.txt
(安装大约2分钟)
(py3) [root@localhost requirements]# cd /opt/coco/
(py3) [root@localhost coco]# cp config_example.yml config.yml
(py3) [root@localhost coco]# vim config.yml
修改配置文件内容如下:
BOOTSTRAP_TOKEN: #此加密秘钥与jumpserver16位秘钥相同;
(py3) [root@localhost coco]# ./cocod start –d
11:安装guacamole,这个服务在安装过程比较复杂,采用doacker仓库里面打包好的镜像
安装docker (py3) [root@localhost opt]# rz guacamole.tar
(py3) [root@localhost opt]# yum -y install yum-utils device-mapper-persistent-data lvm2
(py3) [root@localhost opt]#yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(py3) [root@localhost opt]# yum makecache fast
(py3) [root@localhost opt]# yum -y install docker-ce (安装大约4钟)
(py3) [root@localhost opt]# systemctl enable docker
(py3) [root@localhost opt]# systemctl start docke
使用docker安装Guaacamole
(py3) [root@localhost opt]# docker load --input guacamole.tar
大约安装3分钟
(py3) [root@localhost opt]# docker run --name jms_guacamole -d -p 8081:8080 -v /opt/guacamole/key:/config/gucamole/key -e JUMPSERVER_KEY_DIR=/config/guacamole/key -e JUMPSERVER_SERVER=http://192.168.1.10:8080jumpserver/guacamole:latest
12安装luna解压至opt目录即可:
(py3) [root@localhost opt]# Rz luna.tar.gz
(py3) [root@localhost opt]#tar zxf luna.tar.gz –C /opt
13:安装nginx反向代理;(插入下载好的软件包。解包编译make&&make install)
优化完路径启动nginx。
修改配置文件:
(py3) [root@localhost nginx-1.14.0]# vim /usr/local/nginx/conf/nginx.conf
nginx -t # 确保配置没有问题, 有问题请先解决
nginx -s reload
特殊情况:如果访问网页访问不了,除配置文件出错,或者服务没有开启;
启动coco服务
(py3) [root@localhost jumpserver]# cd /opt/coco-master/
(py3) [root@localhost coco-master]# ./cocod start –d
启动jumpserver服务
cd /opt/jumpserver/
./jms start all -d
网页访问:1.10
服务全部启动后,访问 http://192.168. 1.10,访问 nginx 代理的端口,不要
再通过 8080 端口访问
默认账号: admin 密码: admin
在这里我们要创建一个管理用户:
创建资产:
用web终端进行连接管理
总结:
我们可以通过跳板机在外网上管理内网服务器。
文章浏览阅读467次。计算机毕业设计Java疫情防控医用品管理(系统+源码+mysql数据库+Lw文档)springboot基于SpringBoot的婚庆策划系统的设计与实现。JSP健身俱乐部网站设计与实现sqlserver和mysql。JSP网上测试系统的研究与设计sqlserver。ssm基于SpringMvC的流浪狗领养系统。ssm基于Vue.js的音乐播放器设计与实现。ssm校园流浪猫图鉴管理系统的设计与实现。_疫情防护用品销售管理系统 论文
文章浏览阅读988次,点赞28次,收藏28次。最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!这里附上我整理的几十套腾讯、字节跳动,京东,小米,头条、阿里、美团等公司19年的Android面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。由于篇幅有限,这里以图片的形式给大家展示一小部分。
文章浏览阅读600次,点赞11次,收藏6次。*单片机设计介绍,基于单片机数码管秒表控制系统设计。
文章浏览阅读235次。python小程序之验证码图片的生成定义随机字母的生成函数定义随机颜色生成函数,采用RGB格式,生成一个元组调用Image,生成画布,填充底色为白色调用画笔函数Draw,传入画布对象填充画布的每一个色块,作为背景在画布上控制间距,填上每一个字在最后的图上进行模糊操作代码# 生成一个随机的二维码小程序from PIL import Image,ImageDraw,ImageF..._小程序图片验证码后端生成
文章浏览阅读2.2k次。 1. 用户需求分析客户规模:客户有一个总部,具有一定规模的园区网络; 一个分支机构,约有20-50名员工; 用户有很多移动办公用户 客户需求:组建安全可靠的总部和分支LAN和WAN; 总部和分支的终端需要提供安全防护,并实现网络准入控制,未来实现对VPN用户的网络准入检查; 需要提供IPSEC/SSLVPN接入; 在内部各主要部门间,及内外网络间进_思科设备怎么ranga)服务器区域独立防护;
文章浏览阅读445次。4、转移账号生成的 p8 文件(证书文件)1、转移苹果账号的 teamID。2、接受苹果账号的 teamID。5、接受账号生成的 p8 文件。3、转移应用的 AppID。_apple 账号迁移
文章浏览阅读1k次。https://blog.csdn.net/u012328159/article/details/80311892_momentum seg
文章浏览阅读816次。主要的原理就是替换模板里的特殊字符。 1、静态模板页面 template.html,主要是定义了一些特殊字符,用来被替换。 HTML code DOCTYPE HT_监听数据变更自动生成静态html
文章浏览阅读494次。 今日在做一个新闻系统的评论时. 想到了预防"提交"按钮的多次点击的问提 (prevent multiple clicks of a submit button in ASP.NET). 以前碰到此类问提总是用重定位页面来解决. 这次我想找到一个一劳永逸的办法. 通过查讯Google,找到了一些代码,挑选一些较好的修改了一下。public void pa
文章浏览阅读4.7k次。近来公司业务有需要做socks5代理的需求,研究了一下,主要的开源实现有2个:dante http://www.inet.no/dante/ss5 http://ss5.sourceforge.net/比较了一下,还是比较倾向于dante,因为看到有人这样评价ss5:Project has an incredibly poor source code quality. Th_dante 代理 配置pam用户名密码 模式
文章浏览阅读809次。在excel vba 中用到countifs 函数,但用来统计带有特殊符号* 时总是统计chu_vba countifs 源码
文章浏览阅读2.6k次。当两个效果之间变换时,可以使用transition过渡属性,但是有多个效果来回变换时,就需要使用动画效果,且动画过程可控(重复播放,画面暂停,最终画面等)文章目录1、简介2、实现步骤3、复合属性animation4、动画属性1、简介动画的本质是快速切换大量图片在人脑中形成的具有连续性的画面构成动画的最小单元:帧或者动画帧2、实现步骤定义动画@keyframes 动画名称{ from{} to{}}@keyframes 动画名称{ 0%{} 10%{} 20%{} 50._web前端实现图片动画效果