Jumpserver跳板機入門

来源:https://www.cnblogs.com/linuxk/archive/2018/07/05/9270368.html
-Advertisement-
Play Games

1、jumpserver安裝 1.1、環境介紹 系統: CentOS 7.4.1708IP: 192.168.56.110 1.2、關閉 selinux 和防火牆 1.3、準備 Python3 和 Python 虛擬環境 1.4、 安裝 Jumpserver 1.0.0 (1)下載或 Clone 項 ...


1、jumpserver安裝

1.1、環境介紹

系統: CentOS 7.4.1708
IP: 192.168.56.110

[root@linux-node1 ~]# uname -r
3.10.0-693.el7.x86_64
[root@linux-node1 ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

1.2、關閉 selinux 和防火牆

[root@linux-node1 ~]# setenforce 0  # 可以設置配置文件永久關閉
[root@linux-node1 ~]# systemctl stop firewalld.service
[root@linux-node1 ~]# systemctl disable firewalld.service
[root@linux-node1 ~]# iptables -F
[root@linux-node1 ~]# iptables-save

1.3、準備 Python3 和 Python 虛擬環境

1)安裝依賴包
[root@linux-node1 ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git

(2)編譯安裝pyhton3.6.1
[root@linux-node1 ~]# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
[root@linux-node1 ~]# tar xvf Python-3.6.1.tar.xz  && cd Python-3.6.1
[root@linux-node1 ~]# ./configure && make && make install3)建立 Python 虛擬環境

因為 CentOS 6/7 自帶的是 Python2,而 Yum 等工具依賴原來的 Python,為了不擾亂原來的環境我們來使用 Python 虛擬環境

[root@linux-node1 ~]# cd /opt
[root@linux-node1 ~]# python3 -m venv py3
[root@linux-node1 ~]# source /opt/py3/bin/activate

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

1.4、 安裝 Jumpserver 1.0.0

1)下載或 Clone 項目

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

[root@linux-node1 ~]# cd /opt/
[root@linux-node1 ~]# git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master
2) 安裝依賴 RPM 包

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

(3)安裝 Python 庫依賴
[root@linux-node1 ~]# pip install -r requirements.txt  # 不要指定-i參數,因為鏡像上可能沒有最新的包,如果沒有任何報錯請繼續

(4)安裝 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke
[root@linux-node1 ~]# yum -y install redis
[root@linux-node1 ~]# systemctl start redis

(5)安裝 MySQL
[root@linux-node1 ~]# yum -y install mariadb mariadb-devel mariadb-server 
[root@linux-node1 ~]# systemctl start mariadb

(6)創建資料庫 Jumpserver 並授權
[root@linux-node1 ~]# mysql
> create database jumpserver default charset 'utf8';
> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'jumpserver';

(7)修改 Jumpserver 配置文件

[root@linux-node1 ~]# cd /opt/jumpserver
[root@linux-node1 jumpserver]# cp config_example.py config.py
[root@linux-node1 ~]# vim config.py  # 我們計劃修改 DevelopmentConfig中的配置,因為預設jumpserver是使用該配置,它繼承自Config
註意: 配置文件是 Python 格式,不要用 TAB,而要用空格

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()  # 確保使用的是剛纔設置的配置文件

(8)生成資料庫表結構和初始化數據

[root@linux-node1 ~]#  cd /opt/jumpserver/utils
[root@linux-node1 ~]#  bash make_migrations.sh9) 運行 Jumpserver

[root@linux-node1 ~]#  cd /opt/jumpserver
[root@linux-node1 ~]#  python run_server.py all
運行不報錯,請瀏覽器訪問 http://192.168.56.110:8080/ (這裡只是 Jumpserver, 沒有 Web Terminal,所以訪問 Web Terminal 會報錯)

賬號: admin 密碼: admin
View Code

1.5、安裝 SSH Server 和 WebSocket Server: Coco

1)下載或 Clone 項目

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

$ cd /opt
$ git clone https://github.com/jumpserver/coco.git && cd coco && git checkout master
2)安裝依賴

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

(3)查看配置文件並運行

$ cd /opt/coco
$ cp conf_example.py conf.py
$ python run_server.py
這時需要去 Jumpserver 管理後臺-會話管理-終端管理(http://192.168.56.110:8080/terminal/terminal/)接受 Coco 的註冊

Coco version 0.4.0, more see https://www.jumpserver.org
Starting ssh server at 0.0.0.0:2222
Quit the server with CONTROL-C.
View Code

1.6、測試連接

#命令行遠程連接跳板機
[root@linux-node1 ~]#  ssh -p2222 admin@192.168.56.110
The authenticity of host '[192.168.56.110]:2222 ([192.168.56.110]:2222)' can't be established.
RSA key fingerprint is SHA256:+OT2q1lPHGXKkfKOeZiNaoHx5LPMBAa48MWsmqwaHKE.
RSA key fingerprint is MD5:3c:37:c3:20:ca:17:f9:c0:3e:92:dc:d9:b0:08:1a:7f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.56.110]:2222' (RSA) to the list of known hosts.
admin@192.168.56.110's password: 密碼: admin
如圖所示:

如果是用在 Windows 下,Xshell Terminal 登錄語法如下
$ssh [email protected] 2222
密碼: admin
如果能登陸代表部署成功

1.7、安裝 Web Terminal 前端: Luna

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

1)解壓 Luna

[root@linux-node1 ~]# pwd
/opt/

[root@linux-node1 ~]# tar xvf luna.tar.gz
[root@linux-node1 ~]# ls /opt/luna

1.8、 配置 Nginx 整合各組件

1)安裝 Nginx 根據喜好選擇安裝方式和版本
[root@linux-node1 ~]# yum -y install nginx

(2)準備配置文件 修改 /etc/nginx/nginx.conf

[root@linux-node1 conf.d]# cat /etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.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;
    }
}
}

(3)運行 Nginx
[root@linux-node1 ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@linux-node1 ~]# systemctl reload nginx

(4)訪問 http://192.168.56.110,如圖:
View Code

官方文檔:http://docs.jumpserver.org/zh/docs/introduce.html

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • cd : 切換工作目錄 切換到當前用戶的主目錄(/home/用戶目錄),用戶登陸的時候,預設的目錄就是用戶的主目錄。 切換到當前用戶的主目錄(/home/用戶目錄) 切換到當前目錄 切換到上級目錄 可進入上一個進入的目錄 pwd : 顯示當前路徑 mkdir : 創建目錄 rmdir :刪除目錄 r ...
  • Linux的目錄結構 /bin: /usr/bin: 可執行二進位文件的目錄,如常用的命令ls、tar、mv、cat等。 /boot:放置linux系統啟動時用到的一些文件,如Linux的內核文件:/boot/vmlinuz,系統引導管理器:/boot/grub。 /dev:存放linux系統下的設 ...
  • 使用: 這兩個命令 保持更新,轉載請註明出處。 ...
  • 1.軟體下載 部署管理後臺和監控中心需要以下軟體 opensesame 下載地址:https://github.com/alibaba/opensesame Dubbo源碼下載 https://github.com/alibaba/dubbo Tomcat下載地址 http://tomcat.apa ...
  • llinux 基礎命令 及個人Linux文件分享 一, root用戶名 @ 分隔符 kingle 主機名 ~當前所在目錄 # root許可權 $ 沒分配許可權用戶 二, 書寫格式:空格 [命令參數] 空格 路徑 三,linux 目錄結構 root 啟動Linux時使用的一些核心文件。如操作系統內核、引導 ...
  • 電腦的組成及功能 電腦又稱為“電腦”,是一種利用數字電子技術,根據一系列指令指示其自動執行任意算術運算或邏輯操作串列的設備,並帶有存儲功能。 從基本結構來講,電腦可以分為五大部分:運算器、存儲器、控制器、輸入設備、輸出設備,五大部分分別對應不同的功能模塊,以此來組成我們常見的現代電腦。 (1 ...
  • /bin bin是Binary的縮寫,這個目錄存放著經常使用的命令 /boot 這裡存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。 /dev dev是Device(設備)的縮寫,該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的 / ...
  • 一、內核的引導 當電腦打開電源後,首先是BIOS開機自檢,按照BIOS中設置的啟動設備來啟動。 操作系統接管硬體後,首先讀入/boot目錄下的內核文件 二、運行init init進程是系統所有進程的起點,你可以把它比擬成系統所有進程的老祖宗,沒有這個進程,系統中任何進程都不會啟動。 init程式首 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...