jumpserver企業堡壘機


jumperserver企業堡壘機

一:jumperserver簡介

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

二:一鍵部署jumperserver

cd  /etc/yum.repos.d/
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl restart docker
systemctl enable docker

curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.6.1/quick_start.sh | sh  #要求內核8G

提前安裝好docker鏡像
vim /tmp/2.sh
#!/bin/bash
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/nginx:alpine2     jumpserver/nginx:alpine2
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/core:v2.6.1       jumpserver/core:v2.6.1
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/koko:v2.6.1       jumpserver/koko:v2.6.1
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/luna:v2.6.1        jumpserver/luna:v2.6.1
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/lina:v2.6.1        jumpserver/lina:v2.6.1
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/guacamole:v2.6.1        jumpserver/guacamole:v2.6.1
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/elasticsearch:7.9.3     jumpserver/elasticsearch:7.9.3
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/nginx:alpine2       jumpserver/nginx:alpine2
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/mysql:5            jumpserver/mysql:5
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/redis:6-alpine     jumpserver/redis:6-alpine
docker  tag  docker.mirrors.ustc.edu.cn/jumpserver/core:v2.6.1        jumpserver/core:v2.6.1

cd /opt/jumpserver-installer-v2.6.1/
./jmsctl.sh start






用戶:登錄jumpserver用的

test用戶 運維
oldboy用戶 開發

資產管理:
管理用戶: 被管理機器的root用戶
系統用戶: 登錄資產使用的用戶(允許執行的命令)
網域: 進行跳轉登錄
命令過濾: 阻止運行的命令
資產列表: 添加托管的服務器

權限管理
關聯資產和jumpserver

會話管理:
連接服務器

三:手動配置jumpserver

跳板機服務部署過程
環境准備:
1)系統環境 centos7.5 - centos7.6
2)安全優化 selinux關閉 防火牆服務關閉
3)下載優化 yum源優化

1.需要部署跳板機依賴軟件

yum -y install git python-pip mariadb-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel
git          	--- 用於下載jumpserver軟件程序
python-pip   	--- 用於安裝python軟件
mariadb-devel	--- 數據庫依賴軟件包 
gcc             --- 解析代碼中C語言信息(解釋器)
automake        --- 實現軟件自動編譯過程  
autoconf        --- 實現軟件自動配置過程
python-devel    --- 系統中需要有python依賴
readline-devel  --- 在操作python命令信息時,實現補全功能

2.下載jumpserver程序

cd /opt
git clone https://git.coding.net/jumpserver/jumpserver.git

3.python軟件依賴安裝

cd /opt/jumpserver/install/
pip install -r requirements.txt

4.優化pip源信息

mkdir ~/.pip/
vim ~/.pip/pip.conf
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
    
[install]
trusted-host=mirrors.aliyun.com

5.jumpserer軟件初始化安裝

yum install -y mariadb-server 
systemctl start mariadb 
python install.py  

​ 注:常見問題:jumpserver服務無法正常啟動
​ 原因一:RP值有些低

cd /opt/jumpserver/
./service.sh start		

查看進程信息:

jumpserver第一個重要進程:
python ./manage.py runserver 0.0.0.0:80    --- 開啟80端口服務
jumpserver第二個重要進程:
python ./run_websocket.py                  --- 利用此進程實現跳板機可以連接其他主機

原因二:環境准備有問題
執行以下命令

python /opt/jumpserver/manage.py runserver 0.0.0.0:80  --- 啟動以上第一個進程

執行以下命令

python /opt/jumpserver/run_websocket.py                --- 啟動以上第二個進程

4.瀏覽器登錄jumpserver配置界面
確認是否能登錄成功

6.瀏覽器登錄jumpserver配置界面 http://10.0.0.81 admin/admin 用戶/密碼

7.跳板機服務配置過程
1)企業配置需求說明:
需求01:所有主機想要被管理必須經過跳板機管理 所有主機只監聽內網地址
需求02:設置不同用戶權限信息
oldboy 老男孩 運維人員 權限大些 企業郵箱 oldboy@xxx.com
oldgirl 老女孩 開發人員 查看數據信息 企業郵箱 oldgirl@xxx.com
olddog 老狗 數據庫人員 數據庫操作

   2) 用戶管理配置
      功能作用:設置可以連接跳板機用戶信息
      添加用戶信息  --- 用戶信息 --- 發送郵件

收到一封創建好用戶郵件信息:

您的用戶名: oldboy
您的權限: 普通用戶
您的web登錄密碼: HqOlysmTxOUyz8Xn
您的ssh密鑰文件密碼: 28HOoAJV0fyPwnzj
密鑰下載地址: http://10.0.0.62/juser/key/down/?uuid=250dff26be35440fa7b55805e436b954

說明: 請登陸后再下載密鑰!

資產管理配置
功能作用:定義跳板機可以訪問管理主機信息
添加好資產信息 --- 連接主機地址信息/用戶信息(必須是一個管理員用戶信息)

授權管理配置

常見問題:授權用戶推送失敗:

1)遠程服務配置是否正確
網絡因素 用戶信息
2)數據庫信息出現異常
進入到數據庫中刪除jumpserver數據庫 重新創建新的數據庫

重新初始化部署jumpserver

配置驗證過程

官方資料鏈接
https://github.com/ibuler/jumpserver
https://github.com/jumpserver/jumpserver/wiki 新版本jumpserver項目資料
https://github.com/jumpserver/jumpserver/wiki/v0.3.2-常見問題-FAQ

jumpserver軟件web界面操作
利用瀏覽器登錄到jumpserver登錄界面

image-20201226223801781

界面管理配置操作官方資料:
https://github.com/jumpserver/jumpserver/wiki/快速開始
①. 添加用戶
用戶管理 - 查看用戶 - 添加用戶 填寫基本信息,完成用戶添加
用戶添加完成后,根據提示記住用戶賬號密碼,換個瀏覽器登錄下載key,
ssh登錄jumpserver測試

image-20201226223840840

為創建好的普通員工發送郵件通知信息

image-20201226223921926

提示用戶添加成功,並且可以收到通知郵件信息
image-20201226223955730

image-20201226224013416

說明信息:
web界面創建用戶信息,實質上在程序內部做了兩件事
①. 在jumpserver服務程序的數據庫中相應表中,添加了新的用戶信息
②. 在jumpserver的服務系統中,利用useradd命令創建出來相應的普通用戶,並且會生成用戶對應的公鑰和私鑰,利用密鑰登錄跳板機
普通用戶還有一個重要作用,可以用來登錄jumpserver的web管理界面

②. 添加資產
資產管理 - 查看資產 - 添加資產 填寫基本信息,完成資產添加
添加資產實質的作用是添加通過跳板機可以管理的主機信息

image-20201226224104547

選擇單台添加,設置好主機名或IP地址,可以選擇管理賬號,勾選默認配置
使用默認表示選擇默認的用戶配置---選擇【設置】---編輯【默認設置】,表示定義管理賬戶的默認設置
如果沒有設置,默認是無法進行勾選的

image-20201226224352521

定義管理權限用戶,必須在被管理資產主機上真實存在的,並且是具有創建用戶 刪除用戶的等權限的管理用戶,比如root

image-20201226224430224

管理用戶設置完成,點擊提交

image-20201226224455384

輸出以下提示信息,表示主機資產添加成功

image-20201226224521645

添加默認管理用戶設置
有可能公司所有主機的管理用戶和賬號密碼是一致的,就可以設置默認管理用戶

image-20201226224614373

# 在資產主機中創建默認管理用戶admin
[root@jumpserver-02 ~]# useradd admin
[root@jumpserver-02 ~]# echo 123456|passwd --stdin admin
更改用戶 admin 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
[root@jumpserver-02 ~]# visudo <- 設置非root管理用戶的sudo權限
admin ALL=(ALL) NOPASSWD: ALL

image-20201226224655431

如果采用的是密鑰登錄,也可以在下面的界面輸入私鑰信息,設置完畢點擊確認保存

image-20201226224720725

默認管理用戶設置完成

image-20201226224749221

添加資產主機是以主機名作為主鍵識別唯一性的,可以更改主機名稱,再添加一台相同的資產主機
此種邏輯設置,主要考慮到通過遠程登錄時,公網IP一樣,端口映射不一樣,所以主機名唯一,ip地址可以進行重復使用

image-20201226224833775

image-20201226224850837

至此,用戶添加完畢,主機資產添加完畢,下面就要對管理權限進行授權了
③.授權管理
添加sudo
授權管理 - Sudo - 添加別名 輸入別名名稱和命令,完成sudo添加
默認跳板機創建的用戶都是普通用戶,所以需要依賴sudo命令別名功能,使之普通用戶具有相應權限,操作管理用戶的命令

image-20201226224945317

image-20201226225003017

出現如下提示信息,表示sudo別名命令就創建完畢了

image-20201226225038930

image-20201226225059388

添加系統用戶
授權管理 - 系統用戶 - 添加 輸入基本信息,完成系統用戶添加

image-20201226225123091

# 知識點總結回顧
普通用戶:實際上類似於公司的員工,不同的員工可以利用創建的普通用戶,登錄跳板機界面進行管理jumpserver跳板機
管理用戶:是必須在系統中存在的用戶,后續執行一些特殊權限命令,都需要借助管理用戶,比如創建新的的用戶信息等
默認用戶:就是默認管理用戶,有時公司的全部主機會有一個共有的管理用戶,比如root用戶,就可以進行管理用戶的默認配置
系統用戶:表示用於管理系統的用戶,比如網絡系統用戶為netadmin 開發為devadmin 運維為sa等,根據職能需求進行創建
系統用戶是被管理用戶所創建出來的

系統用戶進行關聯相應sudo權限,並且可以初始化不設置密碼信息,后續會自動生成

image-20201226225203829

image-20201226225239423

推送系統用戶
授權管理 - 推送 - 選擇需要推送的資產或資產組完成推送
推送只支持服務器,使用密鑰是指用戶從跳板機跳轉時使用key,反之使用密碼,
授權時會檢查推送記錄,如果沒有推送過則無法完成系統用戶在該資產上的授權。
如果資產時網絡設備,請不要選擇密碼和秘鑰,模擬一下推送,目的是為了生成
推送記錄。
系統用戶配置完畢后,需要利用【推送】功能,將需要創建的用戶信息,通過ansible批量告知被管理客戶端,進行相應用戶的創建

image-20201226225642871

# 查看用戶信息
[root@jumpserver-02 ~]# id dev
id: dev:無此用戶
說明:在推送系統之前,被管理主機客戶端是沒有定義的dev用戶信息的;只有推送之后才有的
進行

image-20201226225719135

如下圖所示,系統用戶推送成功

image-20201226225748677

[root@jumpserver-02 ~]# id dev
uid=502(dev) gid=502(dev) 組=502(dev)
說明:檢驗完畢,系統用戶推送成功
記憶回顧:模擬推送失敗過程
①. 開啟主機selinux,並且確認客戶端主機未安裝libselinux-python軟件
②. 回收dev系統用戶
③. 重新進行推送
思考:理解推送過程邏輯原理,大致理解libselinux-python軟件包作用

添加授權規則
授權管理 - 授權規則 - 添加規則 選擇剛才添加的用戶,資產,系統用戶完成授權

image-20201226225825680

image-20201226225842112

如果資產中存在沒有系統用戶推送記錄的資產信息,就會輸出以下錯誤信息

image-20201226225904597

重新進行配置調整后,進行重新授權

image-20201226225932330

image-20201226225946939

上述報錯,是由於存在一些資產信息,沒有系統用戶推送記錄導致,為避免這種問題再次出現,可以將所用資產的系統用戶都推送一下

image-20201226230016934

image-20201226230038917

對未推送過系統用戶資產,進行系統用戶推送

image-20201226230104730

image-20201226230123648

image-20201226230139331

重新修改授權信息

image-20201226230207926

授權用戶進行調整,授權資產信息也重新進行調整

image-20201226230238231

image-20201226230255292

image-20201226230314637

利用資產中的連接,進行連接測試,會報錯誤信息如下圖所示

image-20201226230344594

image-20201226230359705

提示以上錯誤,是因為沒有對admin超級管理進行資產信息的授權,下面對admin用戶也進行資產授權
取消掉一個普通用戶,添加一個管理員用戶,然后重新進行授權

image-20201226230426344

授權變更完成

image-20201226230448959

④. 測試登錄
用戶下載key 登錄跳板機,會自動運行connect.py,根據提示登錄服務器
用戶登陸web 查看授權的主機,點擊后面的鏈接,測試是否可以登錄服務器
利用jumpserver即可實現連接相應的主機,進行操作管理,並且使用的系統用戶就是之前創建的dev用戶

image-20201226230523047

查看dev系統用戶的sudo定義的權限信息是否正確

image-20201226230546349

說明信息:
以上連接主機過程,需要依賴之前啟動的run_websocket.py 程序服務,否則會出現連接異常問題

⑤. 監控和結束會話
日志審計 - 在線 查看當前登錄的用戶登錄情況,點擊監控查看用戶執行的命令, 點擊阻斷,結束用戶的會話
重新建立新的瀏覽窗口,進行監控查看

image-20201226230628077

通過跳板機連接資產主機,輸入相應的命令,都會被實時監控到

image-20201226230655314

image-20201226230714623

通過資產操作抓取資產主機硬件信息

image-20201226230744218

image-20201226230812681

image-20201226230827349

可以把主機資產信息批量導出,進行資產管理

image-20201226230853078

還可以對所用資產主機進行批量執行命令,實現主機資產批量管理

image-20201226230918002

image-20201226230935498

⑥. 執行命令
測試命令的執行,命令記錄查看 批量執行命令的日志
批量執行的命令操作也是有相應操作記錄的

image-20201226231002679

⑦. 查看歷史記錄
日志審計 - 登錄歷史 查看登錄歷史,點擊統計查看命令歷史,點擊回放查看錄像
4. jumpserver軟件web界面操作-普通用戶界面操作
普通用戶進行登錄
用戶名為之前創建的普通用戶用戶名,密碼為郵件發送告知,進行登錄

image-20201226231030435

普通用戶進行資產主機連接管理,操作步驟基本和上面的admin管理員操作步驟一致

image-20201226231054145

說明信息:
普通用戶下是沒有審計功能,所以無法對資產主機進行監控管理,只有管理員admin有權限進行對運維人員的操作監控管理

上傳下載
測試文件的上傳下載,日志審計 - 上傳下載 查看上傳下載記錄
主要是對普通用戶進行監控,對系統上的資源文件,進行過哪些上傳和下載操作

image-20201226231136470

image-20201226231155328

上傳和下載操作也會被進行記錄,便於管理員進行監控管理

image-20201226231221074

  1. jumpserver軟件命令行界面操作
    要用admin用戶進行命令行操作管理

用戶進入到命令行界面

[root@jumpserver-01 jumpserver]# python connect.py
沒有該用戶,或許你是以root運行的 No that user.
[root@jumpserver-01 jumpserver]# su - admin
[admin@jumpserver-01 ~]$ cd /opt/jumpserver/
[admin@jumpserver-01 jumpserver]$ python connect.py

歡迎使用Jumpserver開源跳板機系統

1) 輸入 ID 直接登錄.
2) 輸入 / + IP, 主機名 or 備注 搜索.
3) 輸入 P/p 顯示您有權限的主機.
4) 輸入 G/g 顯示您有權限的主機組.
5) 輸入 G/g + 組ID 顯示該組下主機.
6) 輸入 E/e 批量執行命令.
7) 輸入 U/u 批量上傳文件.
8) 輸入 D/d 批量下載文件.
9) 輸入 H/h 幫助.
0) 輸入 Q/q 退出.
Opt or ID>:
普通用戶下是沒有審計功能,所以無法對資產主機進行監控管理,只有管理員admin有權限進行對運維人員的操作監控管理

切換到普通用戶oldboy進行命令行操作

[root@jumpserver-01 jumpserver]# su - oldboy

### 歡迎使用Jumpserver開源跳板機系統 ###

1) 輸入 ID 直接登錄.
2) 輸入 / + IP, 主機名 or 備注 搜索.
3) 輸入 P/p 顯示您有權限的主機.
4) 輸入 G/g 顯示您有權限的主機組.
5) 輸入 G/g + 組ID 顯示該組下主機.
6) 輸入 E/e 批量執行命令.
7) 輸入 U/u 批量上傳文件.
8) 輸入 D/d 批量下載文件.
9) 輸入 H/h 幫助.
0) 輸入 Q/q 退出.
Opt or ID>:
說明:發現直接就進入到跳板機的命令行界面,因為在/etc/profile.d 目錄當中存在一個跳板機腳本 zzjumpserver.sh
模擬利用oldboy普通用戶進行管理資產主機
通過郵件信息首先下載key密鑰信息
密鑰

image-20201226231439744

密鑰信息下載完成

image-20201226231506357

利用xshell的密鑰登錄主機方法,將密鑰進行導入,即可直接通過密鑰登錄到跳板機命令行界面

命令行選項操作說明
### 歡迎使用Jumpserver開源跳板機系統 ###
1) 輸入 ID 直接登錄.
2) 輸入 / + IP, 主機名 or 備注 搜索.
3) 輸入 P/p 顯示您有權限的主機.
4) 輸入 G/g 顯示您有權限的主機組.
5) 輸入 G/g + 組ID 顯示該組下主機.
6) 輸入 E/e 批量執行命令.
7) 輸入 U/u 批量上傳文件.
8) 輸入 D/d 批量下載文件.
9) 輸入 H/h 幫助.
0) 輸入 Q/q 退出.
Opt or ID>:
說明:發現直接就進入到跳板機的命令行界面,因為在/etc/profile.d 目錄當中存在一個跳板機腳本 zzjumpserver.sh
# 顯示有權限管理的主機信息
Opt or ID>: p
[ID ] 主機名 IP 端口 系統用戶 備注
[0 ] jumpclient-01 10.0.0.71 22 ['dev']
[1 ] dbmaster-01 10.0.0.71 22 ['dev']
# 直接輸入ID信息,進行登錄主機
Opt or ID>: 0
Last login: Tue Jun 27 03:08:36 2017 from 10.0.0.70
[dev@jumpserver-02 ~]$
# 顯示幫助信息界面
Opt or ID>: h
### 歡迎使用Jumpserver開源跳板機系統 ###
1) 輸入 ID 直接登錄.
2) 輸入 / + IP, 主機名 or 備注 搜索.
3) 輸入 P/p 顯示您有權限的主機.
4) 輸入 G/g 顯示您有權限的主機組.
5) 輸入 G/g + 組ID 顯示該組下主機.
6) 輸入 E/e 批量執行命令.
7) 輸入 U/u 批量上傳文件.
8) 輸入 D/d 批量下載文件.
9) 輸入 H/h 幫助.
0) 輸入 Q/q 退出.
# 利用搜索功能搜索主機信息
Opt or ID>: /jump
[ID ] 主機名 IP 端口 系統用戶 備注
[0 ] jumpclient-01 10.0.0.71 22 ['dev']


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM