• 运维甩锅神器---Jumpserver


    简介jumpserver

    也就是跳板机,堡垒机,主要用于免密钥登陆web终端,可以对所有操作进行记录,录像!对所有服务器进行资产管理,

    给开发人员分配登陆主机的权限和sudo权限,为运维人员省了很多手动操作,加了二次认证暴露在公网也不怕了。

    服务器环境

    主机一台:192.168.1.8

    系统:CentOS 7.5

    基础优化~~~~关闭防火墙,selinux,文件描述符 等等等

    安装准备环境

    依赖环境和命令

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

    python3

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

    简历python3虚拟环境

    cd /opt

    python3 -m venv py3

    source /opt/py3/bin/activate

    (py3) [root@localhost py3]   #   看到提示符代表成功

    配置自动载入python虚拟环境

    cd /opt
    git clone git://github.com/kennethreitz/autoenv.git
    echo 'source /opt/autoenv/activate.sh' >> ~/.bashrc
    source ~/.bashrc

    安装jumpserver

    git clone https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master
    echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env

    安装依赖 RPM 包

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

    安装 Python 库依赖

    pip install -r requirements.txt

    安装 Redis 和 MySQL

    yum -y install redis
    systemctl start redis

    yum -y install mariadb mariadb-devel mariadb-server
    systemctl enable mariadb
    systemctl start mariadb

    创建库

    mysql
    > create database jumpserver default charset 'utf8';
    > grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'jumpserver';       #by后边是密码
    > flush privileges;

    修改 Jumpserver 配置文件

    cd /opt/jumpserver
    cp config_example.py config.py
    vi config.py

    class Config:
    # Use it to encrypt or decrypt data
    # SECURITY WARNING: keep the secret key used in production secret!
    #SECRET_KEY = os.environ.get('SECRET_KEY') or '2vym+ky!997d5kkcc64mnz06y1mmui3lut#(^wd=%s_qj$1%x'
    SECRET_KEY = 'wwwwwwwwww'                                 #内测环境写一个简单的key
    # Django security setting, if your disable debug model, you should setting that
    ALLOWED_HOSTS = ['*']

    # Development env open this, when error occur display the full process track, Production disable it
    DEBUG = True

    # DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/
    LOG_LEVEL = 'ERROR'
    LOG_DIR = os.path.join(BASE_DIR, 'logs')

    # Database setting, Support sqlite3, mysql, postgres ....
    # See https://docs.djangoproject.com/en/1.10/ref/settings/#databases

    # SQLite setting:
    #DB_ENGINE = 'sqlite3'
    #DB_NAME = os.path.join(BASE_DIR, 'data', 'db.sqlite3')

    # MySQL or postgres setting like:             #数据库配置
    DB_ENGINE = 'mysql'
    DB_HOST = '127.0.0.1'
    DB_PORT = 3306
    DB_USER = 'root'
    DB_PASSWORD = 'jumpserver'
    DB_NAME = 'jumpserver'

    # When Django start it will bind this host and port       #web(django 框架)配置
    # ./manage.py runserver 127.0.0.1:8080
    HTTP_BIND_HOST = '0.0.0.0'
    HTTP_LISTEN_PORT = 8080

    # Use Redis as broker for celery and web socket   #redis缓存配置
    REDIS_HOST = '127.0.0.1'
    REDIS_PORT = 6379
    REDIS_PASSWORD = ''

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

    cd /opt/jumpserver/utils

    bash make_migrations.sh

    运行jumpserver

    cd /opt/jumpserver
    ./jms start all -d

    运行不报错,请浏览器访问 http://192.168.244.144:8080/ 默认账号: admin 密码: admin 页面显示不正常先不用处理,跟着教程继续操作就行,后面搭建 nginx 代理就可以正常访问了

    安装 SSH Server 和 WebSocket Server: Coco

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

    # 首次进入 coco 文件夹会有提示,按 y 即可
    # Are you sure you want to allow this? (y/N) y
    安装依赖
    cd /opt/coco/requirements
    yum -y install $(cat rpm_requirements.txt)
    pip install -r requirements.txt -i https://pypi.org/simple

    修改配置文件并运行
    cd /opt/coco
    cp conf_example.py conf.py # 如果 coco 与 jumpserver 分开部署,请手动修改 conf.py
    vi conf.py
    class Config:
    """
    Coco config file, coco also load config from server update setting below
    """
    # 项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
    NAME = "coco"

    # Jumpserver项目的url, api请求注册会使用
    # CORE_HOST = os.environ.get("CORE_HOST") or 'http://127.0.0.1:8080'
    CORE_HOST = 'http://127.0.0.1:8080'

    ./cocod start -d
    启动成功后去Jumpserver 会话管理-终端管理(http://192.168.244.144:8080/terminal/terminal/)接受coco的注册,如果页面不正常可以等部署完成后再处理

    安装 Web Terminal 前端: Luna

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

    配置 Nginx 整合各组件

    vim /etc/nginx/conf.d/jumpserver.conf
    server {
    listen 80; # 代理端口,以后将通过此端口进行访问,不再通过8080端口

    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/; # 如果coco安装在别的服务器,请填写它的ip
    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/; # 如果guacamole安装在别的服务器,请填写它的ip
    # 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;
    # client_max_body_size 100m; # Windows 文件上传大小限制
    # }

    location / {
    proxy_pass http://localhost:8080; # 如果jumpserver安装在别的服务器,请填写它的ip
    }
    }

    启动nginx

    systemctl start nginx
    systemctl enable nginx

    检查进程

    /opt/jumpserver/jms status
    /opt/coco/cocod status

    访问:http://192.168.1.8/

    用户名密码默认admin,可以开始点点点了

    使用教程

    首先去设置,配置url和邮箱

    url:可以写域名然后去dns解析到这个ip

    邮箱设置

    SMTP服务器,端口默认25,发邮件的SMTP账号和密码,如果用25端口 ssl不钩

    安全设置  jumpserver二次认证

    如果机器在公网谁都可以访问 建议开始打开,然后重新登陆会让你去下载一个谷歌的app,扫码绑定,然后再登录jumpserver输入账号密码之后就会让你再输入一个随机生成有时间限制的6位数字密码。

     其他的大家可以自己去点点,搞明白python如何实现的到时候出问题也好排查

  • 相关阅读:
    Qt CheckBox选中与未选中的使用
    Qt Excel表格宽高的设置
    VTK三维重建 使用VTK读取DICOM,并动态输出
    VC++ VTK 读取序列CT图片三维重建
    VTK 读取序列图像
    Qt QWidget提升QVTKWidget
    ITK 介绍
    Qt QMainWindow中利用多个QDockWidget构成标签页tab || tabifyDockWidget
    Qt QDockWidget属性 setFeatures、setAllowedAreas
    Qt Designer中toolBar的allowedAreas属性
  • 原文地址:https://www.cnblogs.com/wsy1030/p/9290310.html
Copyright © 2020-2023  润新知