项目实战15.1—企业级堡垒机 jumpserver一步一步搭建

本文收录在Linux运维企业架构实战系列

环境准备

  • 系统:CentOS 7
  • IP:192.168.10.101
  • 关闭selinux 和防火墙
# CentOS 7
$ setenforce 0  # 可以设置配置文件永久关闭
$ systemctl stop iptables.service
$ systemctl stop firewalld.service

# CentOS6
$ setenforce 0
$ service iptables stop

一、准备 Python3 和 Python 虚拟环境

1、安装依赖包

[[email protected] opt]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git

2、编译安装

[[email protected] opt]# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

[[email protected] opt]# tar xvf Python-3.6.1.tar.xz  && cd Python-3.6.1

[[email protected] opt]# ./configure && make && make install

3、建立 Python 虚拟环境

因为 CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为了不扰乱原来的环境我们来使用 Python 虚拟环境

[[email protected] opt]# cd /opt

[[email protected] opt]# python3 -m venv py3

[[email protected] opt]# source /opt/py3/bin/activate

注:看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行

(py3) [[email protected] opt]#

二、安装 Jumpserver 1.0.0

1、下载或 Clone 项目

项目提交较多 git clone 时较大,你可以选择去 Github 项目页面直接下载zip包。

(py3) [[email protected] opt]# cd /opt/

(py3) [[email protected] opt]# git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master

2、安装依赖 RPM 包

(py3) [[email protected] jumpserver]# cd /opt/jumpserver/requirements

(py3) [[email protected] jumpserver]# yum -y install $(cat rpm_requirements.txt)  # 如果没有任何报错请继续

3、安装 Python 库依赖

(py3) [[email protected] requirements]# pip install -r requirements.txt  # 不要指定-i参数,因为镜像上可能没有最新的包,如果没有任何报错请继续

成功如下图:

4、安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke

(py3) [[email protected] requirements]# yum -y install redis

(py3) [[email protected] requirements]# systemctl start redis

5、安装 MySQL

本教程使用 Mysql 作为数据库,如果不使用 Mysql 可以跳过相关 Mysql 安装和配置

(1)# centos7

(py3) [[email protected] requirements]# yum -y install mariadb mariadb-devel mariadb-server  # centos7下安装的是mariadb

(py3) [[email protected] requirements]# systemctl start mariadb.service

(2)# centos6

$ yum -y install mysql mysql-devel mysql-server

$ service mysqld start

6、创建数据库 Jumpserver 并授权

(py3) [[email protected] requirements]# mysql

MariaDB [(none)]>  create database jumpserver default charset ‘utf8‘;

Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]>  grant all on jumpserver.* to ‘jumpserver‘@‘127.0.0.1‘ identified by ‘along‘;

Query OK, 0 rows affected (0.00 sec)

7、修改 Jumpserver 配置文件

(py3) [[email protected] requirements]# cd /opt/jumpserver

(py3) [[email protected] jumpserver]# cp config_example.py config.py

(py3) [[email protected] jumpserver]# vim config.py   # 我们计划修改 DevelopmentConfig中的配置,因为默认jumpserver是使用该配置,它继承自Config

class DevelopmentConfig(Config):    #找到这一段,进行下面的配置
    DEBUG = True
    DB_ENGINE = ‘mysql‘
    DB_HOST = ‘127.0.0.1‘
    DB_PORT = 3306
    DB_USER = ‘jumpserver‘
    DB_PASSWORD = ‘along‘
    DB_NAME = ‘jumpserver‘

注意: 配置文件是 Python 格式,不要用 TAB,而要用空格

8、生成数据库表结构和初始化数据

(py3) [[email protected] jumpserver]# cd /opt/jumpserver/utils

(py3) [[email protected] utils]# bash make_migrations.sh

成功如下图:

9、运行 Jumpserver

(1)老版本启动方法

(py3) [[email protected] utils]# cd /opt/jumpserver

(py3) [[email protected] jumpserver]# python run_server.py all

(2)新版本启动方法

(py3) [[email protected] jumpserver]# ./jms start all     # 后台运行使用-d 如:参数./jms start all -d

# 新版本更新了运行脚本,使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数

10、浏览器访问http://192.168.10.101:8080/

注意:

① 第一次运行时可能报错,(这里只是 Jumpserver, 没有 Web Terminal,所以访问 Web Terminal 会报错)

② 终止程序,再次执行,就可以登录了

(py3) [[email protected] jumpserver]# ./jms start all

账号: admin 密码: admin

③ 登录成功

三、安装 SSH Server 和 WebSocket Server: Coco

1、下载或 Clone 项目

新开一个终端,连接测试机,别忘了 source /opt/py3/bin/activate

[[email protected] ~]# source /opt/py3/bin/activate

(py3) [[email protected] ~]# cd /opt/

(py3) [[email protected] opt]# git clone https://github.com/jumpserver/coco.git && cd coco && git checkout master

2、安装依赖

(py3) [[email protected] coco]# cd /opt/coco/requirements

(py3) [[email protected] requirements]# yum -y  install $(cat rpm_requirements.txt)

(py3) [[email protected] requirements]# pip install -r requirements.txt

成功如下图:

3、查看配置文件并运行

(1)运行

(py3) [[email protected] requirements]# cd /opt/coco

(py3) [[email protected] coco]# cp conf_example.py conf.py

(py3) [[email protected] coco]# ./cocod start   # 后台运行使用 -d 参数./cocod start -d

# 新版本更新了运行脚本,使用方式./cocod start|stop|status|restart 后台运行请添加 -d 参数

(2)这时需要去 Jumpserver 管理后台-会话管理-终端管理(http://192.168.10.101:8080/terminal/terminal/)接受 Coco 的注册

(3)命令行终端显示连接成功

4、测试连接

(1)linux 连接

[[email protected] ~]# ssh -p2222 [email protected]   #新开一个终端去连接密码: admin

(2)如果是用在 Windows 下,Xshell Terminal 登录语法如下

$ssh [email protected] 2222

密码: admin

如果能登陆代表部署成功

(3)登录成功如下图:

四、安装 Web Terminal 前端: Luna

1、下载 Luna

Luna 已改为纯前端,需要 Nginx 来运行访问

访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译

[[email protected] ~]# cd /opt/

[[email protected] opt]# wget https://github.com/jumpserver/luna/releases/download/v1.0.0/luna.tar.gz

2、解压 Luna

[[email protected] opt]# tar xvf luna.tar.gz

[[email protected] opt]# ls /opt/luna

五、安装 Windows 支持组件(如果不需要管理 windows 资产,可以直接跳过这一步)

因为手动安装 guacamole 组件比较复杂,这里提供打包好的 docker 使用, 启动 guacamole

1、Docker安装 (仅针对CentOS7,CentOS6,安装Docker相对比较复杂)

① 安装依赖
[[email protected] ~]# yum remove docker-latest-logrotate  docker-logrotate  docker-selinux dockdocker-engine
[[email protected] ~]# yum install -y yum-utils  device-mapper-persistent-data   lvm2

② 安装docker添加docker官方源[[email protected] ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo[[email protected] ~]# yum makecache fast[[email protected] ~]# yum install docker-ce

③ 国内部分用户可能无法连接docker官网提供的源,这里提供阿里云的镜像节点供测试使用[[email protected] ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo[[email protected] ~]# rpm --import http://mirrors.aliyun.com/docker-ce/linux/centos/gpg[[email protected] ~]# yum makecache fast[[email protected] ~]# yum -y install docker-ce

④ 启动docker[[email protected] ~]# systemctl start docker[[email protected] ~]# systemctl status docker

2、启动 Guacamole

① 这里所需要注意的是 guacamole 暴露出来的端口是 8081,若与主机上其他端口冲突请自定义

修改 JUMPSERVER_SERVER 环境变量的配置,填上 Jumpserver 的内网地址

# 注意:这里一定要改写一下本机的IP地址, 否则会出错, 带宽有限, 下载时间可能有点长,可以喝杯咖啡,撩撩对面的妹子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://<填写本机的IP地址>:8080   registry.jumpserver.org/public/guacamole:1.0.0 

② 执行过程截图

3、在jumpserver 接受注册

启动成功后去 Jumpserver 会话管理-终端管理(http://192.168.10.101:8080/terminal/terminal/)接受[Gua]开头的一个注册,如果页面显示不正常可以等部署完成后再处理 

六、配置 Nginx 整合各组件

1、安装 Nginx 根据喜好选择安装方式和版本

nginx 官网https://nginx.org/en/download.html

(1)安装前准备

① 下载版本包,我以nginx-1.12.2为例

[[email protected] nginx]# wget -c https://nginx.org/download/nginx-1.12.2.tar.gz

[[email protected] nginx]# tar -xvf nginx-1.12.2.tar.gz

② 下载依赖包

[[email protected] nginx]# yum install gc gcc gcc-c++ pcre-devel zlib-devel openssl-devel

③ 创建nginx用户、组

[[email protected] nginx-1.12.2]# groupadd nginx

[[email protected] nginx-1.12.2]# useradd -s /sbin/nologin -g nginx -M nginx

(2)编译安装

[[email protected] nginx-1.12.2]# ./configure --user=nginx --group=nginx --prefix=/mnt/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module

[[email protected] nginx-1.12.2]# make && make install

[[email protected] nginx-1.12.2]# cd /mnt/nginx/    # 完成

注释:#指定运行权限的用户

--user=nginx

#指定运行的权限用户组

--group=nginx

#指定安装路径

--prefix=/usr/local/nginx

#支持nginx状态查询

--with-http_stub_status_module

#开启ssl支持

--with-http_ssl_module

#开启GZIP功能

--with-http_gzip_static_module

(3)使systemctl 控制nginx 服务

[[email protected] nginx]# vim /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/mnt/nginx/logs/nginx.pid
ExecStartPre=/mnt/nginx/sbin/nginx -t -c /mnt/nginx/conf/nginx.conf
ExecStart=/mnt/nginx/sbin/nginx -c /mnt/nginx/conf/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

2、准备配置文件

[[email protected] ~]# vim /mnt/nginx/conf/nginx.conf   清除已有的server段

server {
    listen 80;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location /luna/ {
        try_files $uri / /index.html;
        alias /opt/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/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /guacamole/ {
        proxy_pass       http://localhost:8081/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        access_log off;
    }

    location / {
        proxy_pass http://localhost:8080;
    }
}

3、运行 Nginx

[[email protected] ~]# /mnt/nginx/sbin/nginx -t   # 检查配置文件

[[email protected] ~]# service nginx start

4、访问 http://192.168.10.101

原文地址:https://www.cnblogs.com/skyhu365/p/10636601.html

时间: 2024-10-15 12:18:22

项目实战15.1—企业级堡垒机 jumpserver一步一步搭建的相关文章

项目实战15.2—企业级堡垒机 jumpserver快速入门

本文收录在Linux运维企业架构实战系列 必备条件 硬件条件 ① 一台安装好 Jumpserver 系统的可用主机(堡垒机) ② 一台或多台可用的 Linux.Windows资产设备(被管理的资产) 服务条件 (1)coco服务 ① 鉴于心态检测存在延迟,也可以直接在 Jumpserver 主机上执行如下命令检测 Coco 是否存活,Coco 服务默认使用 2222 端口: [root@centos7-1 ~]# ss -nutlp |grep 2222 效果如下: ② 如 coco 不在线或者

企业级堡垒机 jumpserver

环境准备 系统:CentOS 7 IP:192.168.10.101 关闭selinux 和防火墙 # CentOS 7 $ setenforce 0 # 可以设置配置文件永久关闭 $ systemctl stop iptables.service $ systemctl stop firewalld.service # CentOS6 $ setenforce 0 $ service iptables stop 一.准备 Python3 和 Python 虚拟环境 1.安装依赖包 [[emai

堡垒机jumpserver集群部署

本文参考老广开发二次开发后的堡垒机部署方案,在此基础上进行集群部署,提高其可靠性.尽管国外已经有类似的功能的堡垒机的发布,但是还是要感谢老广在百忙之中再次开发出精简功能,更加使用的jumpserver堡垒机. 本文内容虽然亲测,但难免仍有错误指出.各位同行发现有请帮忙反馈,以便及时改进. 目 录 堡垒机jumpserver集群部署手册... 1 目录... 2 部分一  堡垒机架构原理... 3 jumpserver基本架构... 3 jumpserver集群架构... 4 部分二部署... 5

去掉堡垒机jumpserver私钥的密码

我们在使用开源堡垒机jumpserver时,默认生成的私钥是带密码的,每次更换电脑配置Xshell或者secureCRT时,都很麻烦,容易忘记. 那么有么有什么办法修改密码或者去掉密码呢?有啊 首先确认你拿到的密钥文件时私钥,开头设这样的: -----BEGIN RSA PRIVATE KEY----- 然后可以用如下命令修改或者删除密码了: [[email protected] ipcpu]# ssh-keygen -f ipcpu.pem -p Enter old passphrase: K

堡垒机jumpserver安装

Jumpserver堡垒机安装文档 一.环境 CentOS 6.x x86_64 service iptables stop 关闭SELinux的方法: 修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启. 如果不想重启系统,使用命令setenforce  0 二.安装依赖rpm yum -y install epel-release yum -y install git python-pip mysql-devel gcc aut

开源跳板机(堡垒机)Jumpserver v2.0.0 部署篇

** 强烈建议第一遍所有密码账号等与文档相同 ** 官网: http://www.jumpserver.org demo: http://demo.jumpserver.org 更新log: http://laoguang.blog.51cto.com/6013350/1635853 百度云相关软件: http://pan.baidu.com/s/1i3kne6p 交流群:390139816 项目地址:https://github.com/ibuler/jumpserver 博客地址:http:

项目实战12.2—企业级监控工具应用实战-zabbix操作进阶

无监控,不运维.好了,废话不多说,下面都是干货. 流量党勿入,图片太多!!! 项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.html 一.User parameters 用户参数 1.介绍和用法 ① 介绍 自定义用户参数,也就是自定义key 有时,你可能想要运行一个代理检查,而不是Zabbix的预定义 你可以编写一个命令来检索需要的数据,并将其包含在代理配置文件("UserParameter"配置参数)的用户参数中 ② 用法格

堡垒机-jumpserver

目录 官方网站 Jumpserver 软件包环境要求: 环境 手动本地jumpserver-服务端搭建 初始化一些系统环境设置: 安装相关软件 安装 组件 自建服务器极速安装步骤 0. 防火墙.Selinux 设置 1. 部署环境 下载组件 处理配置文件 启动 Jumpserve 配置自启 官方网站 http://jumpserver.org Jumpserver 软件包环境要求: Python = 3.6.x Mysql Server ≥ 5.6 Mariadb Server ≥ 5.5.56

开源跳板机(堡垒机)Jumpserver v2.0.0Beta版发布

demo页面: http://demo.jumpserver.org admin admin 一. 更新Log -- 登录脚本 -- 1.1 使用paramiko原生ssh协议登录后端主机(原来版本使用pexpect模拟登录) 1.2 新增使用别名或备注登录 1.3 新增主机分组查看,使用更方便 1.4 多线程批量执行命令 1.5 优化登录脚本 -- web管理 -- 1.6 Web界面更加美观漂亮 1.7 增加部门管理员负责管理本部门成员 1.8 增加仪表盘统计信息 1.9 增加部门, 用户组