主頁 >  其他 > JumpServer(堡壘機)開源版本圖文詳解

JumpServer(堡壘機)開源版本圖文詳解

2020-11-19 11:35:56 其他

1.JumpServer基本概述

1.什么是跳板機

跳板機就是一臺服務器,具備公網和內網,我們的開發人員或者運維人員,要想維護內部集群服務時,需要先統一登陸到跳板機這臺服務器,然后在通過跳板機的內網登陸目標集群服務器

在這里插入圖片描述

2.跳板機的缺陷

沒有實作對運維人員操作行為的控制和審計,使用跳板機的程序中還是會出現誤操作,違規i操作導致故障,一旦出現操作事故很難快速定位到原因和責任人;此時堡壘機就誕生了,

3.什么是堡壘機

堡壘機其實是基于跳板機基礎之上,能夠實作運維更加安全的操作目標集群服務器,提供安全保證,

  • 1 資產集中管理(統一管理)
  • 2 審計,記錄,視頻回放操作記錄
  • 3 限制如rm,dd等危險命令的執行
  • 4 限制登陸目標服務器的身份權限

4.為什么要使用堡壘機

首先,堡壘機提供了運維安全審計的4A規范:
Authentication:身份鑒別,防止身份冒用和復用
Authorization :授權控制,防止內部誤操作和權限濫用
Accouting:賬號管理,人員和資產的管理
Auditing:安全審計,追溯和分析事故的依據
其次,堡壘機的建設目標可以概況為5W,主要是為了減低運維風險,
what 審計:你做了什么?
which 授權:你能做哪些?
where 賬號:你要去那?
who 認證 你是誰?
when 來源:訪問時間?
總結
堡壘機能讓運維更安全,更加便捷的登陸目標資產服務
堡壘機還可以幫助企業快速構建“身份鑒別,訪問控制,安全審計”,助力企業滿足新等保要求,什么是等保?

所有企業都需要使用堡壘機,因為堡壘機是企業進行“資產管理,運維安全審計”的重要組件,

在這里插入圖片描述

5.什么是Jumpserver

JumpServer 是全球首款完全開源的堡壘機, 使用 GNU GPL v2.0 開源協議, 是符合 4A 的專業運維審計系統,
JumpServer 使用 Python / Django 進行開發, 遵循 Web 2.0 規范, 配備了業界領先的 Web Terminal 解決方案, 互動界面美觀、用戶體驗好,
JumpServer 采納分布式架構, 支持多機房跨區域部署, 中心節點提供 API, 各機房部署登錄節點, 可橫向擴展、無并發訪問限制,
JumpServer 現已支持管理 SSH、 Telnet、 RDP、 VNC 協議資產,

Jumpserver主要組件

Jumpserver:提供管理后臺,管理員可以通過web頁面進行資產管理,用戶管理和資產授權等操作,
koko:提供SSH server和web Termianal server方式登陸資產
Lina Luna:提供web前端頁面,后續會將整合到Lina中
Guacamole:提供RDP功能,用戶可通過該方式登陸windows資產,(暫時只能通過 web Terminal來訪問)

Jumpserver特色優勢

  • 開源: 零門檻,線上快速獲取和安裝;
  • 分布式: 輕松支持大規模并發訪問;
  • 無插件: 僅需瀏覽器,極致的 Web Terminal 使用體驗;
  • 多云支持: 一套系統,同時管理不同云上面的資產;
  • 云端存盤: 審計錄像云端存盤,永不丟失;
  • 多租戶: 一套系統,多個子公司和部門同時使用,

Jumpserver基礎架構圖

在這里插入圖片描述

Jumpserver作用
1 產品解耦程度高,便于后期分布式部署與橫向擴展
2 集中統一管理全國各地服務器

2.JumpServer安裝配置 官方安裝部署檔案

2.1 核心組件部署jumpserver

① 安裝 Python3.6 MySQL Redis

[root@jumpserver ~]# yum install python3 python3-devel mariadb-server mariadb redis -y
[root@jumpserver ~]# systemctl enable mariadb redis
[root@jumpserver ~]# systemctl start mariadb redis

② 設定資料庫密碼,然后創建對應的jumpserver庫

[root@jumpserver ~]# mysqladmin password boy123.com
[root@jumpserver ~]# mysql -uroot -pboy123.com
MariaDB [(none)]> create database jumpserver default charset 'utf8' collate 'utf8_bin';
MariaDB [(none)]>

③ 創建 Python 虛擬環境,并且載入 Python 虛擬環境

[root@jumpserver ~]# python3.6 -m venv /opt/py3
[root@jumpserver ~]# source /opt/py3/bin/activate
(py3) [root@jumpserver ~]# 

④ 安裝jumpserver核心軟體包

我這里采用的是本地方式進行軟體包的上傳
在這里插入圖片描述

(py3) [root@jumpserver ~]# cd /opt
(py3) [root@jumpserver opt]# tar xf jumpserver-v2.2.2.tar.gz 
(py3) [root@jumpserver opt]# mv jumpserver-v2.2.2 jumpserver

⑤ 安裝jumpser編譯環境依賴

cd /opt/jumpserver/requirements
yum install -y $(cat rpm_requirements.txt)
pip install wheel -i https://mirrors.aliyun.com/pypi/simple/
pip install --upgrade pip setuptools -i https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

⑥修改組態檔

cd /opt/jumpserver && \            
cp config_example.yml config.yml && \
vi config.yml

⑦在組態檔中需要填寫隨即加密密鑰(SECRET_KEY: 與BOOTSTRAP_TOKEN:),我們用命令生成

if [ ! "$SECRET_KEY" ]; then
  SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`;
  echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc;
  echo $SECRET_KEY;
else
  echo $SECRET_KEY;
fi  
if [ ! "$BOOTSTRAP_TOKEN" ]; then
  BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`;
  echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc;
  echo $BOOTSTRAP_TOKEN;
else
  echo $BOOTSTRAP_TOKEN;
fi

查看生成的隨機加密密鑰

cat ~/.bashrc

在這里插入圖片描述

參考官方模板(記得修改組態檔的每行要頂頭)

# SECURITY WARNING: keep the secret key used in production secret!
# 加密秘鑰 生產環境中請修改為隨機字串,請勿外泄, 可使用命令生成
# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo
SECRET_KEY: sa1SzAAij0xGm6q35bWpiG5dwV966cryK2Ui2oeuHGQiYfJQkF

# SECURITY WARNING: keep the bootstrap token used in production secret!
# 預共享Token coco和guacamole用來注冊服務賬號,不在使用原來的注冊接受機制
BOOTSTRAP_TOKEN: SAkuJ9ICSTGey5p8

# Development env open this, when error occur display the full process track, Production disable it
# DEBUG 模式 開啟DEBUG后遇到錯誤時可以看到更多日志
DEBUG: false

# DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/
# 日志級別
LOG_LEVEL: ERROR
# LOG_DIR:

# Session expiration setting, Default 24 hour, Also set expired on on browser close
# 瀏覽器Session過期時間,默認24小時, 也可以設定瀏覽器關閉則過期
# SESSION_COOKIE_AGE: 86400
SESSION_EXPIRE_AT_BROWSER_CLOSE: true

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

# SQLite setting:
# 使用單檔案sqlite資料庫
# DB_ENGINE: sqlite3
# DB_NAME:

# MySQL or postgres setting like:
# 使用Mysql作為資料庫
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: root                          #這里用的資料庫用戶是資料庫默認root用戶
DB_PASSWORD: boy123.com             #我們給root用戶設定的密碼
DB_NAME: jumpserver

# When Django start it will bind this host and port
# ./manage.py runserver 127.0.0.1:8080
# 運行時系結埠
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
WS_LISTEN_PORT: 8070

# Use Redis as broker for celery and web socket
# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
REDIS_PASSWORD: ZhYnLrodpmPncovxJTnRyiBs
# REDIS_DB_CELERY: 3
# REDIS_DB_CACHE: 4

# Use OpenID authorization
# 使用OpenID 來進行認證設定
# BASE_SITE_URL: http://localhost:8080
# AUTH_OPENID: false  # True or False
# AUTH_OPENID_SERVER_URL: https://openid-auth-server.com/
# AUTH_OPENID_REALM_NAME: realm-name
# AUTH_OPENID_CLIENT_ID: client-id
# AUTH_OPENID_CLIENT_SECRET: client-secret
# AUTH_OPENID_IGNORE_SSL_VERIFICATION: True
# AUTH_OPENID_SHARE_SESSION: True

# Use Radius authorization
# 使用Radius來認證
# AUTH_RADIUS: false
# RADIUS_SERVER: localhost
# RADIUS_PORT: 1812
# RADIUS_SECRET:

# CAS 配置
# AUTH_CAS': False,
# CAS_SERVER_URL': "http://host/cas/",
# CAS_ROOT_PROXIED_AS': 'http://jumpserver-host:port',  
# CAS_LOGOUT_COMPLETELY': True,
# CAS_VERSION': 3,

# LDAP/AD settings
# LDAP 搜索分頁數量
# AUTH_LDAP_SEARCH_PAGED_SIZE: 1000
#
# 定時同步用戶
# 啟用 / 禁用
# AUTH_LDAP_SYNC_IS_PERIODIC: True
# 同步間隔 (單位: 時) (優先)
# AUTH_LDAP_SYNC_INTERVAL: 12
# Crontab 運算式
# AUTH_LDAP_SYNC_CRONTAB: * 6 * * *
#
# LDAP 用戶登錄時僅允許在用戶串列中的用戶執行 LDAP Server 認證
# AUTH_LDAP_USER_LOGIN_ONLY_IN_USERS: False
#
# LDAP 認證時如果日志中出現以下資訊將引數設定為 0 (詳情參見:https://www.python-ldap.org/en/latest/faq.html)
# In order to perform this operation a successful bind must be completed on the connection
# AUTH_LDAP_OPTIONS_OPT_REFERRALS: -1

# OTP settings
# OTP/MFA 配置
# OTP_VALID_WINDOW: 0
# OTP_ISSUER_NAME: Jumpserver

# Perm show single asset to ungrouped node
# 是否把未授權節點資產放入到 未分組 節點中
# PERM_SINGLE_ASSET_TO_UNGROUP_NODE: false
#
# 啟用定時任務
# PERIOD_TASK_ENABLE: True
#
# 啟用二次復合認證配置
# LOGIN_CONFIRM_ENABLE: False
#
# Windows 登錄跳過手動輸入密碼
WINDOWS_SKIP_ALL_MANUAL_PASSWORD: True

我們需要修改的幾個地方被紅框框起來
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

⑧ 啟動jumpserver核心組件

首先要確保已經加載p3虛擬環境

source /opt/py3/bin/activate

其次前臺運行查看,檢查是否報錯

cd /opt/jumpserver
./jms start

最后沒有報錯,運行在后臺

./jms start -d

2.2 核心組件部署koko

我這里采用的是本地方式進行軟體包的上傳
在這里插入圖片描述

①上傳koko壓縮包對koko組件進行初始化

(py3) [root@jumpserver opt]# tar -xf koko-v2.4.3-linux-amd64.tar.gz #壓縮包解壓
(py3) [root@jumpserver opt]# mv koko-v2.4.3-linux-amd64 koko        #更改名字
(py3) [root@jumpserver opt]# chown -R root:root koko                #為koko目錄授權
(py3) [root@jumpserver opt]# cd koko                                #切換到koko目錄下
(py3) [root@jumpserver koko]# cp config_example.yml config.yml		#復制實列組態檔進行重命名

②修改koko組件的組態檔

(py3) [root@jumpserver koko]#  vi config.yml

參考官方模板(記得修改組態檔的每行要頂頭)

# 專案名稱, 會用來向Jumpserver注冊, 識別而已, 不能重復
# NAME: {{ Hostname }}

# Jumpserver專案的url, api請求注冊會使用
CORE_HOST: http://127.0.0.1:8080

# Bootstrap Token, 預共享秘鑰, 用來注冊coco使用的service account和terminal
# 請和jumpserver 組態檔中保持一致,注冊完成后可以洗掉
BOOTSTRAP_TOKEN: zxffNymGjP79j6BN

# 啟動時系結的ip, 默認 0.0.0.0
# BIND_HOST: 0.0.0.0

# 監聽的SSH埠號, 默認2222
# SSHD_PORT: 2222

# 監聽的HTTP/WS埠號,默認5000
# HTTPD_PORT: 5000

# 專案使用的ACCESS KEY, 默認會注冊,并保存到 ACCESS_KEY_STORE中,
# 如果有需求, 可以寫到組態檔中, 格式 access_key_id:access_key_secret
# ACCESS_KEY: null

# ACCESS KEY 保存的地址, 默認注冊后會保存到該檔案中
# ACCESS_KEY_FILE: data/keys/.access_key

# 設定日志級別 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: ERROR

# SSH連接超時時間 (default 15 seconds)
# SSH_TIMEOUT: 15

# 語言 [en,zh]
# LANG: zh

# SFTP的根目錄, 可選 /tmp, Home其他自定義目錄
# SFTP_ROOT: /tmp

# SFTP是否顯示隱藏檔案
# SFTP_SHOW_HIDDEN_FILE: false

# 是否復用和用戶后端資產已建立的連接(用戶不會復用其他用戶的連接)
# REUSE_CONNECTION: true

# 資產加載策略, 可根據資產規模自行調整. 默認異步加載資產, 異步搜索分頁; 如果為all, 則資產全部加載, 本地搜索分頁.
# ASSET_LOAD_POLICY:

# zip壓縮的最大額度 (單位: M)
# ZIP_MAX_SIZE: 1024M

# zip壓縮存放的臨時目錄 /tmp
# ZIP_TMP_PATH: /tmp

# 向 SSH Client 連接發送心跳的時間間隔 (單位: 秒),默認為30, 0則表示不發送
# CLIENT_ALIVE_INTERVAL: 30

# 向資產發送心跳包的重試次數,默認為3
# RETRY_ALIVE_COUNT_MAX: 3

# 會話共享使用的型別 [local, redis], 默認local
SHARE_ROOM_TYPE: redis

# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
#REDIS_PASSWORD:
#REDIS_CLUSTERS:
#REDIS_DB_ROOM: 6

我們需要修改的幾個地方被紅框框起來
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

啟動核心組件koko

首先啟動,檢查是否有報錯

./koko  

在這里插入圖片描述

其次把koko組件放入后臺運行

./koko -d 

最后檢查埠是否啟動會有一5000 和2222兩個埠

netstat -lntp

在這里插入圖片描述

2.3 前端組件部署lina,luna

我這里采用的是本地方式進行軟體包的上傳

在這里插入圖片描述
在這里插入圖片描述

① 下載 Lina 組件(/opt 下)

(py3) [root@jumpserver opt]# tar xf lina-v2.2.2.tar.gz 
(py3) [root@jumpserver opt]# mv lina-v2.2.2 lina
(py3) [root@jumpserver opt]# chown -R nginx.nginx lina

② 下載 Luna 組件(/opt 下)

(py3) [root@jumpserver opt]# tar xf luna-v2.2.2.tar.gz 
(py3) [root@jumpserver opt]# mv luna-v2.2.2 luna
(py3) [root@jumpserver opt]# chown -R nginx.nginx luna

③ 配置 Nginx 整合各組件

(py3) [root@jumpserver opt]# yum install nginx -y (要在上傳luna lina組件之前 因為它們兩個目錄授權需要nginx用戶)

參考官方模板(我添加了server_name jumpserver.etiantian.org;域名決議)

(py3) [root@jumpserver opt]# vim /etc/nginx/conf.d/jumpserver.etiantian.org.conf
server {
    listen 80;
    client_max_body_size 100m;  # 錄像及檔案上傳大小限制
    server_name jumpserver.etiantian.org;

    location /ui/ {
        try_files $uri / /index.html;
        alias /opt/lina/;
    }

    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 /api/ {
        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;
    }

    location /core/ {
        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;
    }

    location / {
        rewrite ^/(.*)$ /ui/$1 last;
    }
}

(py3) [root@jumpserver opt]# systemctl start nginx
(py3) [root@jumpserver opt]# systemctl enable nginx

2.4 配置本地dns劫持,登陸JumpServer進行管理

在這里插入圖片描述

在這里插入圖片描述
默認用戶密碼都是admin
在這里插入圖片描述
密碼太簡單需要重新修改登陸admin用戶密碼
在這里插入圖片描述
在這里插入圖片描述
最后登陸到管理界面
在這里插入圖片描述

3.JumpServer用戶管理

普通用戶: 登錄Jumpserver的web頁面 的用戶 , 運維 開發
系統用戶: 是 JumpServer 跳轉登錄資產時使用的用戶[ansible 自動推送,不支持交換機]
管理用戶: 管理用戶是被控服務器上的 root, JumpServer使用該用戶來 推送系統用戶、獲取資產硬體資訊等 [先免密]

在這里插入圖片描述

3.1 創建普通用戶

①添加用戶組

創建一個開發組和運維組
在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

②添加用戶

創建一個oldboy和一個oldgirl普通用戶
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

③ 創建的普通用戶使用測驗

普通用戶就是登陸網頁jumpserver的登陸用戶,所以我們重新登陸發現和用管理員登陸界面是有區別的,
我們用創建的普通用戶oldboy登陸一下
在這里插入圖片描述
發現左邊的專案欄是有區別的,第一次登陸需要填寫個人資訊,然后選擇我同意,就可以使用了,
在這里插入圖片描述
在這里插入圖片描述
普通用戶管理資產兩種頁面
1.web頁面
在這里插入圖片描述

2.終端頁面

ssh oldboy@10.0.0.200 2222

在這里插入圖片描述

3.2 創建管理用戶

① jumpserver ------> 被控端主機進行免密登錄實作跳板機功能

ssh-keygen 

在這里插入圖片描述
會生成一對密鑰對,一個公鑰(id_rsa.pub)一個私鑰(id_rsa)
在這里插入圖片描述
推送公鑰到被控制端,實作免密登陸

ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.7
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.8
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.51

②創建管理用戶

在這里插入圖片描述
在這里插入圖片描述
下載私鑰: [root@jumpserver ~]# sz ~/.ssh/id_rsa —> 上傳root用戶私鑰到頁面

3.3 創建系統用戶

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

對系統用戶進行提權

在這里插入圖片描述

4.JumpServer資產管理

在這里插入圖片描述

4.1 規劃資產樹

在這里插入圖片描述
根據公司需求進行劃分
我們可以根據地域,區域,部門,進行劃分
我們根據地域劃分出上海機房,北京機房
我們根據區域在北京機房中劃分昌平機房,海淀機房
我們還可以根據部門在海淀機房劃分運維,開發等部門
在這里插入圖片描述
在這里插入圖片描述

4.2 添加資產

在這里插入圖片描述
加入資產web01
在這里插入圖片描述
加入資產web02
在這里插入圖片描述
加入資產db01
在這里插入圖片描述

4.3 授權資產

在這里插入圖片描述
我們對用戶組進行資產的授權
我們運維組授權可以管理北京機房和上海機房的資產(172.16.1.7/8/51)
我們開發組授權可以管理上海機房的資產(172.16.1.51)

在這里插入圖片描述
我們運維組授權可以管理北京機房和上海機房的資產(172.16.1.7/8/51)
在這里插入圖片描述
我們開發組授權可以管理上海機房的資產(172.16.1.51)
在這里插入圖片描述

在這里插入圖片描述

4.4 驗證階段

在這里插入圖片描述
我們用普通用戶oldgirl登陸jumpserver頁面,oldgril隸屬于運維組,所以可以對運維組授權的資產進行管理(3臺節點)
在這里插入圖片描述
在這里插入圖片描述
我們可以選擇web終端進行對每臺節點的管理(免密登陸)
在這里插入圖片描述
我們用普通用戶oldboyl登陸jumpserver頁面,oldboy隸屬于開發組,所以可以對開發組授權的資產進行管理(1臺節點)
在這里插入圖片描述

4.5 新創建一個權限比cry高的系統用戶

① 其實就是再創建一個系統用戶kenneth

在這里插入圖片描述
在這里插入圖片描述

② 對新創建的kenneth系統用戶進行資產授權

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

③ 進行手動的推送系統用戶資訊到資產中(底層用ansible推送)

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

④當我再去登陸資產時就會出現選擇用那一個系統用戶登錄

在這里插入圖片描述

4.6 加入資料庫資產

①我們先創建一個dba組和dba普通用戶隸屬與dba組

密碼123456
在這里插入圖片描述

② 創建資料庫應用

在這里插入圖片描述
在這里插入圖片描述

在這里插入圖片描述

③ 創建一個登陸資料庫的系統用戶(走的是mysql協議)

在這里插入圖片描述

④ 對資料庫進行資產授權

在這里插入圖片描述
在這里插入圖片描述

⑤ 登陸資料庫資產(通過我們創建的dba普通用戶)

在這里插入圖片描述
在這里插入圖片描述

⑥ 我們在對資產進行的任何操作都會記錄下來,可以回放視頻,可以中止,可以在線監控

在這里插入圖片描述
在這里插入圖片描述

5.Jumpserver命令過濾器(限制危險命令的執行 )

我們現在假設不讓使用rm命令,怎么操作呢?
在這里插入圖片描述

5.1 創建一個命令過濾器名稱

在這里插入圖片描述

5.2 添加命令過濾器不允許的操作

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

5.3 系結系統用戶進行限制操作

在這里插入圖片描述

測驗操作,通過cry系統用戶登錄資產后能否使用rm命令

在這里插入圖片描述
在這里插入圖片描述

6.普通用戶的檔案管理(上傳和下載)

在這里插入圖片描述

6.1 上傳檔案操作程序

①我使用系統用戶cry登陸到資產,選中默認進行上傳檔案

在這里插入圖片描述
在這里插入圖片描述

②發現上傳的檔案,在/tmp下 ,而且這個檔案的所屬主和所屬組都是我們上傳者cry

在這里插入圖片描述

6.2 下載檔案操作程序

①我在/tmp下面創建一個名稱為2.txt的檔案

在這里插入圖片描述

②我們在web頁面終端可以進行對檔案下載

在這里插入圖片描述在這里插入圖片描述
在這里插入圖片描述

6.3 為什么默認上傳下載的目錄是/tmp?

是因為我們的koko組件的組態檔中這樣規定的,如下圖所示
在這里插入圖片描述

7.jumpserverd多因子認證(加強登陸安全性)

在用戶名密碼登陸的方式上再進行一次認證,來達到登陸安全性的提高

啟用多因子認證兩種方式

一.在創建普通用戶時選中多因子認證強制啟動

創建普通用戶也就是登陸Jumpserver頁面的用戶

在這里插入圖片描述

②登陸測驗

我們進入登陸界面,登陸我們剛創建出來的scry普通用戶,這里的密碼是創建用戶設定的密碼 123456
在這里插入圖片描述
接下來因為我們開啟多因子認證,所以開始開啟多因子認證進行初始化的操作 輸入我們普通用戶登陸密碼123456
在這里插入圖片描述
然后會發生跳轉,會讓你使用第三方手機端的一個認證app,從而生成動態密碼
在這里插入圖片描述
我用手機下載軟體
在這里插入圖片描述
在這里插入圖片描述
我們用手機這個軟體掃描下面的二維碼就會生成動態的驗證碼
在這里插入圖片描述
在這里插入圖片描述
完成初始化設定后我們通過輸入手機上的動態認證碼和用戶密碼才可以登陸進去
在這里插入圖片描述
在這里插入圖片描述

二.全域啟動多因子認證

在這里插入圖片描述

8 混合云生產環境引入JumpServer網域功能概念

8.1 什么是混合云?

混合云融合了公有云和私有云,是近年來云計算的主要模式和發展方向,我們已經知道私有云主要是面向企業用戶,出于安全考慮,企業更愿意將資料存放在私有云中,但是同時又希望可以獲得公有云的計算資源,在這種情況下混合云被越來越多的采用,它將公有云和私有云進行混合和匹配,以獲得最佳的效果,這種個性化的解決方案,達到了既省錢又安全的目的,

8.2 混合云生產環境部署JumpServer網域功能原理圖

在這里插入圖片描述

8.3 混合云生產環境部署JumpServer網域功能實作思路

1.jumpserver與網域網管服務器進行免密
2.網域網關服務器與云主機進行免密
3.填寫一個網域,然后添加網管服務器
3.1填寫公網IP,
3.2登陸網域服務器使用的是管理云主機的管理用戶root,需要使用jumpserver的私鑰驗證,
4.新添加一個管理用戶,用來管理云主機 配置的是網域服務器的私鑰驗證
5.分配整合云主機資產

8.4 混合云生產環境部署JumpServer網域功能實踐操作步驟

① 買三臺沒有公網的阿里云云主機

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

② 購買一個公網彈性ip

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

③ 公網ip系結一臺云主機(ecs)上作為我們的網域服務器

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
三臺云主機都在同一網段我們公網ip系結一臺作為網域服務器,用擁有公網ip的云主機充當網域服務器連接其他兩臺云主機

④ 使jumpserver與網域服務器建立免密連接

把jumpserver的公鑰推送給網域服務器

ssh-copy-id -i ~/.ssh/id_rsa.pub root@39.98.161.147(公網ip)

在這里插入圖片描述
在這里插入圖片描述

⑤ 登陸網域服務器與兩臺云主機建立免密關系

1> 生產密鑰對

ssh-keygen

在這里插入圖片描述

2> 推送網域服務器公鑰給兩臺云主機

ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.238(云主機內網IP)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.237(云主機內網IP)

在這里插入圖片描述

3> 測驗網域服務是否能夠免密登陸兩臺云主機

在這里插入圖片描述

⑥ 創建網域串列,進行網關配置(配置的是jumpserver到網域服務器之間的連接)

1> 創建網域串列 阿里云-張家口節點

在這里插入圖片描述
在這里插入圖片描述

2> 進行網關配置

在這里插入圖片描述
我們jumpserver到網域服務器之間進行免密
我們推送了在jumpserver生產的一對密鑰對的公鑰給網域服務器
所以這里連接網域服務器使用的是jumpserver的私鑰,來進行非對稱性認證,

在這里插入圖片描述

⑦ 添加一個管理云主機資產的管理用戶root

在這里插入圖片描述
我們的管理用戶root管理云主機資產,通過網域服務器連接到公有云內部云主機中
我們網域服務器到云主機之間進行免密
我們推送了網域服務器生產的一對密鑰對的公鑰給網域服務器
所以這里填寫的密鑰是網域服務器生產的私鑰,來進行非對稱性認證,

1> 獲得網域服務器的私鑰,我們把它下載到本地

yum -y install lrzsz 
sz ~/.ssh/id_rsa

在這里插入圖片描述

2> 添加配置管理云主機的管理用戶root

在這里插入圖片描述
在這里插入圖片描述

⑧ 添加云主機資產

1> 創建阿里云節點的資產樹

在這里插入圖片描述

2> 在阿里云下添加兩臺云主機節點資產

aly01

在這里插入圖片描述

aly02

在這里插入圖片描述
在這里插入圖片描述

⑨ 把云主機資產授權給用戶組(運維組)

在這里插入圖片描述
在這里插入圖片描述

⑩ 測驗

1> 我們使用隸屬于運維組的oldgirl進行jumpserver頁面登陸

在這里插入圖片描述
在這里插入圖片描述

2> web終端訪問阿里云主機,可以訪問成功

在這里插入圖片描述

9.Jumpserver安全提升

9.1安全升級

作業系統∶盡量升級到符合要求的新版本,
Jumpserver:請保持使用最新版本的Jumpserver依賴軟體∶建議升級
Jumpserver依賴的軟體版本

9.2 使用安全組件

使用系統防火墻Firewall:埠轉發
關閉密碼登陸 建議: 用戶—> vpn —> 內網

9.3優化系統架構

傳統架構︰用戶–>Jumpserver–>目標資產
新型架構︰用戶–>防火墻(規則限制)–>Jumpserver–>目標資產

9.4 配置HTTPS方式

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/224760.html

標籤:其他

上一篇:學習三周Python感悟

下一篇:這是我見過最詳細的“Docker學習寶典”,阿里云大佬純手寫總結的!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more