天天看點

開源堡壘機Jumpserver-v1.5.6單步部署

開源堡壘機Jumpserver-v1.5.6單步部署

  • 單獨部署方式,版本:v1.5.6
  • jumpserver_packge-v1.5.6.tar.gz
    • koko-master-linux-amd64.tar.gz
    • jumpserver-1.5.6.zip
    • luna-1.5.6.zip
    • guacamole元件使用容器的方式部署。

注意:以上元件可以通過github下載下傳。每個元件的的下載下傳方法,可以檢視官方文檔。注意要保證各元件的版本一緻。

注意:jumpserver_packge-v1.5.6.tar.gz檔案是我自己打的包,裡面包含了用到的各元件(guacamole元件除外),版本均為1.5.6。

參考文檔

  • 官方文檔:https://docs.jumpserver.org/zh/docs/step_by_step.html
  • 使用者部署部落格:https://cloud.tencent.com/developer/article/1589476

安裝基礎環境

建議使用新建立的centos7作業系統,如果主機已經安裝過了jumpserver,一定要清理幹淨,清理mysql資料庫,清理redis,還有.bashrc檔案中記錄的SECRET_KEY、BOOTSTRAP_TOKEN。

# 配置好yum源。
# yum install -y python3
# yum install mariadb-server
# yum install nginx
# yum install redis
# systemctl start mariadb
# systemctl start redis
           

建立python3虛環境

# mkdir /opt
# python3 -m venv /opt/py3
# echo 'source /opt/py3/bin/activate' >> /root/.bashrc
# source /opt/py3/bin/activate
           

建立mysql使用者

由于jumpserver有很多依賴元件,每個元件都有自己的版本,建議使用同樣的版本。上傳

jumpserver_packge-v1.5.6.tar.gz

包到/root目錄下。

# mysql
> create database jumpserver default charset 'utf8';
> grant all on jumpserver.* to [email protected] identified by 'root123';
> grant all on jumpserver.* to [email protected]'localhost' identified by 'root123';
           

注意:一定要保證資料庫的字元集為

utf-8

,否則登入jumpserver的時候,由于字元集的問題,會無法登陸。

安裝 jumpserver 服務

# cd /root
# tar -xvf jumpserver_packge-v1.5.6.tar.gz 
# tar -xvf /root/jumpserver_packge/jumpserver.tar.gz -C /opt
# cd /opt/jumpserver
# cp config_example.yml config.yml
# SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`
# echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc
# BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`
# echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc
# sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml
# sed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml
# sed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml
# sed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.yml
# sed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: False/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.yml 
# sed -i "s/DB_PASSWORD: /DB_PASSWORD: root123/g" /opt/jumpserver/config.yml
# cd /opt/jumpserver/requirements
# yum install -y $(cat rpm_requirements.txt)
# pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
# cd /opt/jumpserver
# ./jms start -d
           

注意:安裝python依賴的時候,可能會報錯:

  • 提示導入

    Feature

    子產品失敗。原因是,setuptools庫的版本太高。新版本中已經沒有了Feature子產品。解決辦法是降低setuptools庫的版本。操作方法如下:
    • pip uninstall setuptools
    • pip install setuptools==39.2.0
  • 安裝

    python-gssapi

    庫失敗。由于python依賴包的關系,可以将requirements.txt檔案中的python-gssapi臨時注釋掉。單獨安裝python-gssapi。
    • 将requirements.txt檔案中行‘python-gssapi==0.6.4’的行首添加‘#’。
    • pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
    • pip install python-gssapi==0.6.4 -i https://mirrors.aliyun.com/pypi/simple/

安裝 koko 服務

注意:最新版本的coco元件,換成了koko,兩者的功能一樣,使用go語言編寫。下載下傳的時候,不要下載下傳錯了。

# tar -xvf /root/jumpserver_packge/koko-master-linux-amd64.tar.gz -C /opt
# cd /opt/kokodir
# chown -R root:root /opt/kokodir
# cp config_example.yml config.yml
# 需要保證config.yml中的BOOTSTRAP_TOKEN和jumpserver/config.yml裡面擷取, 保證一緻
# sed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/kokodir/config.yml
# ./koko -d
           

安裝 guacamole 服務

guacamole是一種HTML5 Web應用程式,可使用遠端桌面協定(例如VNC或RDP)提供對桌面環境的通路。單步安裝比較複雜,建議使用docker部署。需要單獨部署的話可以參考官方文檔。

# 安裝docker-ce。
# yum install -y yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum makecache fast
# yum -y install docker-ce
# systemctl start docker

# 啟動jms_guacamole容器。
# docker run --name jms_guacamole -d -p 127.0.0.1:8081:8080 -e JUMPSERVER_SERVER=http://[XXXXXXXXXX]:8080 -e BOOTSTRAP_TOKEN=[XXXXXXXXXXXXXX] wojiushixiaobai/jms_guacamole:1.5.6
# 注意替換JUMPSERVER_SERVER和BOOTSTRAP_TOKEN。
           

安裝 luna 元件

# tar -xvf /root/jumpserver_packge/luna.tar.gz -C /opt
# chown -R root:root /opt/luna
           

啟動 nginx 服務

建議将

/etc/nginx/nginx.conf

中的server字段中内容删除,或者修改部配置設定置。建立一個新的配置檔案,配置檔案内容如下所示:

# vim /etc/nginx/conf.d/jumpserver.conf
server {
    listen 80;

    client_max_body_size 100m;  # 錄像及檔案上傳大小限制

    location /luna/ {
        try_files $uri / /index.html;
        alias /opt/luna/;  # luna 路徑, 如果修改安裝目錄, 此處需要修改
    }

    location /media/ {
        add_header Content-Encoding gzip;
        root /opt/jumpserver/data/;  # 錄像位置, 如果修改安裝目錄, 此處需要修改
    }

    location /static/ {
        root /opt/jumpserver/data/;  # 靜态資源, 如果修改安裝目錄, 此處需要修改
    }

    location /koko/ {
        proxy_pass       http://localhost:5000;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }

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

    location /ws/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8070;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location / {
        proxy_pass http://localhost: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;
    }
}

# nginx -t
# systemctl start nginx
           

使用 jumpserver 服務

  • 浏覽器通路jumpserver服務,預設的使用者名:admin,密碼:admin。
  • 生産環境使用,主機最好添加防火牆政策,可以參考官方文檔。
    開源堡壘機Jumpserver-v1.5.6單步部署
    開源堡壘機Jumpserver-v1.5.6單步部署
    開源堡壘機Jumpserver-v1.5.6單步部署
    開源堡壘機Jumpserver-v1.5.6單步部署