Centos7 安裝 jumpserver 跳板機

前言

Jumpserver是一款由python編寫, Django開發的開源跳板機/堡壘機系統, 助力互聯網企業高效 用戶、資產、權限、審計 管理。jumpserver實現了跳板機應有的功能,基於ssh協議來管理,客戶端無需安裝agent。

Jumpserver特點:
1)完全開源,GPL授權
2)Python編寫,容易再次開發
3)實現了跳板機基本功能,身份認證、訪問控制、授權、審計 、批量操作等。
4)集成了Ansible,批量命令等
5)支持WebTerminal
6)Bootstrap編寫,界面美觀
7)自動收集硬件信息
8)錄像回放
9)命令搜索
10)實時監控
11)批量上傳下載

環境準備

準備python3和python虛擬環境

  1. 安裝依賴
$ yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
  1. 編譯安裝
$ 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 –prefix=/usr/local/python3.6 && make && make install
  1. 建立python虛擬環境
$ cd /opt
$ python3 -m venv py3
$ source /opt/py3/bin/activate

看到下面的提示符代表成功,以後運行 Jumpserver 都要先運行以上 source 命令,以下所有命令均在該虛擬環境中運行: (py3) [root@localhost py3]

安裝jumpserver1.0.0

下載或clone項目

項目提交較多 git clone 時較大,你可以選擇去 Github 項目頁面直接下載zip包

$ cd /opt/
$ git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master

安裝依賴RPM包

$ cd /opt/jumpserver/requirements
$ yum -y install $(cat rpm_requirements.txt)  # 如果沒有任何報錯請繼續

安裝python庫依賴

$ pip install -r requirements.txt  
# 不要指定-i參數,因爲鏡像上可能沒有最新的包,如果沒有任何報錯請繼續

安裝redis

jumpserver使用redis做cache和celery broke

$ yum -y install redis
$ service redis start

安裝mysql

$ yum -y install mariadb mariadb-devel mariadb-server 
# centos7下安裝的是mariadb
$ service mariadb start

創建數據庫jumpserver並授權

修改root登錄密碼

mysql -uroot -p
use mysql;
UPDATE user SET password=password('123') WHERE user='root';
Flush privileges;
> create database jumpserver default charset 'utf8';
> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '123';

修改jumpserver配置文件

$ cd /opt/jumpserver
$ cp config_example.py config.py
$ vi 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 = 'somepassword'
    DB_NAME = 'jumpserver'
config = DevelopmentConfig()  # 確保使用的是剛纔設置的配置文件

生成數據庫表結構和初始化數據

$ cd /opt/jumpserver/utils
$ bash make_migrations.sh

運行jumpserver

$ cd /opt/jumpserver
$ ./run_server.py all

後臺運行: nohup ./run_server.py all &

運行不報錯,請瀏覽器訪問 http://192.168.244.144:8080/ (這裏只是 Jumpserver, 沒有 Web Terminal,所以訪問 Web Terminal 會報錯)
賬號: admin 密碼: admin

安裝SSH server和WebSocket server:coco

下載或clone項目

新開一個終端,連接測試機,別忘了 source /opt/py3/bin/activate

$ cd /opt
$ git clone https://github.com/jumpserver/coco.git && cd coco && git checkout master

安裝依賴

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

查看配置文件並運行

$ cd /opt/coco
$ cp conf_example.py conf.py
$ python run_server.py

這時需要去 Jumpserver 管理後臺-會話管理-終端管理(http://192.168.139.128:8080/terminal/terminal/)接受 Coco 的註冊
在這裏插入圖片描述

連接測試

Ssh -p2222 [email protected]
密碼:admin
Windows下:ssh [email protected] 2222
密碼:admin

安裝Web terminal前端:luna

Luna已改爲純前端,需要nginx來運行訪問
訪問(https://github.com/jumpserver/luna/releases)下載對應版本的 release 包,直接解壓,不需要編譯

$ pwd
/opt/

$ tar xvf luna.tar.gz
$ ls /opt/luna

安裝windows支持組件

因爲手動安裝 guacamole 組件比較複雜,這裏提供打包好的 docker 使用, 啓動 guacamole
Docker安裝

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

# 添加docker官方源
$ yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
$ yum makecache fast
$ 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
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

這裏所需要注意的是 guacamole 暴露出來的端口是 8081,若與主機上其他端口衝突請自定義一下。

再次強調:修改 JUMPSERVER_SERVER 環境變量的配置,填上 Jumpserver 的內網地址, 這時 去 Jumpserver-會話管理-終端管理 接受[Gua]開頭的一個註冊

配置nginx整合各組件

安裝nginx根據喜好選擇方式和版本

yum install -y nginx

修改配置文件

/etc/nginx/nginx.conf

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;
    }
}

運行nginx

nginx -t
service nginx start

訪問

http://ip

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章