• Jumpserver堡垒机搭建


    系统: CentOS 7 IP: 192.168.11.199
    关闭 selinux 和防火墙

    1 # setenforce 0             # 临时关闭,重启后失效
    2 # systemctl stop firewalld.service # 临时关闭,重启后失效

    修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文

    1 # localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
    2 # export LC_ALL=zh_CN.UTF-8
    3 # echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf

    一. 准备 Python3 和 Python 虚拟环境
    1.1 安装依赖包

    1 # yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git

    1.2 编译安装

    1 # wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
    2 # tar xvf Python-3.6.1.tar.xz && cd Python-3.6.1
    3 # ./configure && make && make install

    1.3 建立 Python 虚拟环境

    1 # cd /opt
    2 # python3 -m venv py3
    3 # source /opt/py3/bin/activate

    1.4 自动载入 Python 虚拟环境配置

    1 # cd /opt
    2 # git clone https://github.com/kennethreitz/autoenv.git
    3 # echo 'source /opt/autoenv/activate.sh' >> ~/.bashrc
    4 # source ~/.bashrc



    二. 安装 Jumpserver
    2.1 下载或 Clone 项目

    1 # cd /opt/
    2 # git clone https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master
    3 # echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env # 进入 jumpserver 目录时将自动载入 python 虚拟环境

    2.2 安装依赖 RPM 包

    1 # cd /opt/jumpserver/requirements
    2 # yum -y install $(cat rpm_requirements.txt) # 如果没有任何报错请继续

    2.3 安装 Python 库依赖

    1 # pip install -r requirements.txt

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

    1 # yum -y install redis
    2 # systemctl enable redis
    3 # systemctl start redis

    2.5 安装 MySQL

    1 # yum -y install mariadb mariadb-devel mariadb-server   # centos7下安装的是mariadb
    2 # systemctl enable mariadb
    3 # systemctl start mariadb
    4 # mysql_secure_installation    #设置mysql密码,比如密码设置为123456

    2.6 创建数据库 Jumpserver 并授权

    1 # mysql -p123456
    2 > create database jumpserver default charset 'utf8';
    3 > grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '123456';
    4 > flush privileges;

    2.7 修改 Jumpserver 配置文件

    1 # cd /opt/jumpserver
    2 # cp config_example.py config.py
    3 # vi config.py

    # 注意对齐,不要直接复制本文档的内容,实际内容以文件为准
    注意: 配置文件是 Python 格式,不要用 TAB,而要用空格
    修改:

    1 # SECRET_KEY = os.environ.get('SECRET_KEY') or '2vym+ky!997d5kkcc64mnz06y1mmui3lut#(^wd=%s_qj$1%x'
    2  SECRET_KEY = '请随意输入随机字符串(推荐字符大于等于 50位)'

    # 日志级别,默认为DEBUG,可调整为INFO, WARNING, ERROR, CRITICAL,默认INFO

    1 LOG_LEVEL = os.environ.get("LOG_LEVEL") or 'WARNING'
    2 LOG_DIR = os.path.join(BASE_DIR, 'logs')

    # 使用的数据库配置,支持sqlite3, mysql, postgres等,默认使用sqlite3

    1 # See https://docs.djangoproject.com/en/1.10/ref/settings/#databases

    # 默认使用SQLite3,如果使用其他数据库请注释下面两行

    1 # DB_ENGINE = 'sqlite3'
    2 # DB_NAME = os.path.join(BASE_DIR, 'data', 'db.sqlite3')

    # 如果需要使用mysql或postgres,请取消下面的注释并输入正确的信息,本例使用mysql做演示(mariadb也是mysql)

    1 DB_ENGINE = os.environ.get("DB_ENGINE") or 'mysql'
    2 DB_HOST = os.environ.get("DB_HOST") or '127.0.0.1'
    3 DB_PORT = os.environ.get("DB_PORT") or 3306
    4 DB_USER = os.environ.get("DB_USER") or 'jumpserver'
    5 DB_PASSWORD = os.environ.get("DB_PASSWORD") or '123456'
    6 DB_NAME = os.environ.get("DB_NAME") or 'jumpserver'


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

    1 # cd /opt/jumpserver/utils
    2 # bash make_migrations.sh



    2.9 运行 Jumpserver

    1 # cd /opt/jumpserver
    2 # ./jms start all # 后台运行使用 -d 参数./jms start all -d

    运行不报错,请浏览器访问 http://192.168.11.199:8080/ 默认账号: admin 密码: admin

    三. 安装 SSH Server 和 WebSocket Server: Coco
    3.1 下载或 Clone 项目
    新开一个终端,别忘了 source /opt/py3/bin/activate

    1 # cd /opt
    2 # source /opt/py3/bin/activate
    3 # git clone https://github.com/jumpserver/coco.git && cd coco && git checkout master
    4 # echo "source /opt/py3/bin/activate" > /opt/coco/.env # 进入 coco 目录时将自动载入 python 虚拟环境


    3.2 安装依赖

    1 # cd /opt/coco/requirements
    2 # yum -y install $(cat rpm_requirements.txt)
    3 # pip install -r requirements.txt


    3.3 修改配置文件并运行

    1 # cd /opt/coco
    2 # mkdir keys
    3 # cp conf_example.py conf.py # 如果 coco 与 jumpserver 分开部署,请手动修改 conf.py
    4 # vi conf.py

    # 注意对齐,不要直接复制本文档的内容
    注意: 配置文件是 Python 格式,不要用 TAB,而要用空格
    修改:

    1 # NAME = "localhost"
    2 NAME = "coco"

    # Jumpserver项目的url, api请求注册会使用, 如果Jumpserver没有运行在127.0.0.1:8080,请修改此处

    1 # CORE_HOST = os.environ.get("CORE_HOST") or 'http://127.0.0.1:8080'
    2 CORE_HOST = 'http://127.0.0.1:8080'


    # 设置日志级别 ['DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL', 'CRITICAL']

    1 # LOG_LEVEL = 'INFO'
    2 LOG_LEVEL = 'WARN'

    # ./cocod start # 后台运行使用 -d 参数./cocod start -d

    # 新版本更新了运行脚本,使用方式./cocod start|stop|status|restart 后台运行请添加 -d 参数
    启动成功后去Jumpserver 会话管理-终端管理(http://192.168.11.199:8080/terminal/terminal/)接受coco的注册

    四. 安装 Web Terminal 前端: Luna
    Luna 已改为纯前端,需要 Nginx 来运行访问
    4.1 解压 Luna

    # cd /opt
    # wget https://github.com/jumpserver/luna/releases/download/1.4.3/luna.tar.gz
    # tar xvf luna.tar.gz
    # chown -R root:root luna


    五. 安装 Windows 支持组件(如果不需要管理 windows 资产,可以直接跳过这一步)
    因为手动安装 guacamole 组件比较复杂,这里提供打包好的 docker 使用, 启动 guacamole

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

    1 # yum remove docker-latest-logrotate docker-logrotate docker-selinux dockdocker-engine
    2 # yum install -y yum-utils device-mapper-persistent-data lvm2


    # 添加docker官方源

    1 # yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    2 # yum makecache fast
    3 # yum install docker-ce

    # 国内部分用户可能无法连接docker官网提供的源,这里提供阿里云的镜像节点供测试使用

    # yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    # rpm --import http://mirrors.aliyun.com/docker-ce/linux/centos/gpg
    # yum makecache fast
    # yum -y install docker-ce
    # systemctl start docker
    # systemctl status docker

    5.2 启动 Guacamole

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

    1 # docker run --name jms_guacamole -d 
    2 -p 8081:8080 -v /opt/guacamole/key:/config/guacamole/key 
    3 -e JUMPSERVER_KEY_DIR=/config/guacamole/key 
    4 -e JUMPSERVER_SERVER=http://<填写jumpserver的url地址> 
    5 jumpserver/guacamole:latest


    启动成功后去Jumpserver 会话管理-终端管理(http://192.168.11.199:8080/terminal/terminal/)接受[Gua]开头的一个注册

    六. 配置 Nginx 整合各组件

    6.1 安装nginx

    1 # yum -y install nginx


    6.2 准备配置文件 修改 /etc/nginx/conf.d/jumpserver.conf

     1 # vim /etc/nginx/conf.d/jumpserver.conf
     2 server {
     3 listen 80; # 代理端口,以后将通过此端口进行访问,不再通过8080端口
     4 server_name demo.jumpserver.org; # 修改成你的域名
     5 
     6 client_max_body_size 100m; # 录像及文件上传大小限制
     7 
     8 location /luna/ {
     9 try_files $uri / /index.html;
    10 alias /opt/luna/; # luna 路径,如果修改安装目录,此处需要修改
    11 }
    12 
    13 location /media/ {
    14 add_header Content-Encoding gzip;
    15 root /opt/jumpserver/data/; # 录像位置,如果修改安装目录,此处需要修改
    16 }
    17 
    18 location /static/ {
    19 root /opt/jumpserver/data/; # 静态资源,如果修改安装目录,此处需要修改
    20 }
    21 
    22 location /socket.io/ {
    23 proxy_pass http://192.168.11.199:5000/socket.io/; # 如果coco安装在别的服务器,请填写它的ip
    24 proxy_buffering off;
    25 proxy_http_version 1.1;
    26 proxy_set_header Upgrade $http_upgrade;
    27 proxy_set_header Connection "upgrade";
    28 proxy_set_header X-Real-IP $remote_addr;
    29 proxy_set_header Host $host;
    30 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    31 access_log off;
    32 }
    33 
    34 location /coco/ {
    35 proxy_pass http://192.168.11.199:5000/coco/; # 如果coco安装在别的服务器,请填写它的ip
    36 proxy_set_header X-Real-IP $remote_addr;
    37 proxy_set_header Host $host;
    38 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    39 access_log off;
    40 }
    41 
    42 location /guacamole/ {
    43 proxy_pass http://192.168.11.199:8081/; # 如果guacamole安装在别的服务器,请填写它的ip
    44 proxy_buffering off;
    45 proxy_http_version 1.1;
    46 proxy_set_header Upgrade $http_upgrade;
    47 proxy_set_header Connection $http_connection;
    48 proxy_set_header X-Real-IP $remote_addr;
    49 proxy_set_header Host $host;
    50 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    51 access_log off;
    52 }
    53 
    54 location / {
    55 proxy_pass http://192.168.11.199:8080; # 如果jumpserver安装在别的服务器,请填写它的ip
    56 proxy_set_header X-Real-IP $remote_addr;
    57 proxy_set_header Host $host;
    58 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    59 }
    60 }

    6.3 运行 Nginx
    # nginx -t # 确保配置没有问题, 有问题请先解决

    1 # systemctl start nginx
    2 # systemctl enable nginx

    6.4 开始使用 Jumpserver
    检查应用是否已经正常运行

    1 # cd /opt/jumpserver
    2 # ./jms status # 确定jumpserver已经运行,如果没有运行请重新启动jumpserver
    3 # cd /opt/coco
    4 # ./cocod status # 确定jumpserver已经运行,如果没有运行请重新启动coco

    # 如果安装了 Guacamole
    # docker ps # 检查容器是否已经正常运行,如果没有运行请重新启动Guacamole
    服务全部启动后,访问 http://192.168.11.199,访问nginx代理的端口,不要再通过8080端口访问

    默认账号: admin 密码: admin

    如果部署过程中没有接受应用的注册,需要到Jumpserver 会话管理-终端管理 接受 Coco Guacamole 等应用的注册。

    测试连接

    如果登录客户端是 macOS 或 Linux ,登录语法如下

    1 # ssh -p2222 admin@192.168.11.199
    2 # sftp -P2222 admin@192.168.11.199


    密码: admin

    如果登录客户端是 Windows ,Xshell Terminal 登录语法如下

    1 # ssh admin@192.168.11.199 2222
    2 # sftp admin@192.168.11.199 2222


    密码: admin


    Xshell登录通过堡垒机登录:
    新建连接(堡垒机IP和密码)——>用户身份验证(系统普通用户)

  • 相关阅读:
    cf605 div3
    how to find Longest Increasing Subsequence Size
    luogu1641 [SDOI2010]生成字符串
    luogu1441 砝码称重
    luogu4218 [JSOI2008] 最小生成树计数
    luogu1514 引水入城
    luogu1312 Mayan游戏 剪枝
    luogu1081 开车旅行 树上倍增
    luogu1052 过河
    luogu1026 统计单词个数
  • 原文地址:https://www.cnblogs.com/jay-fred/p/9956315.html
Copyright © 2020-2023  润新知