開源堡壘機_jumpserver


前介

1、jumperver介紹

​ Jumpserver 是一款由Python編寫開源的跳板機(堡壘機)系統,實現了跳板機應有的功能。基於ssh協議來管理,客戶端無需安裝agent。

​ 特點:

​ 完全開源,GPL授權 Python編寫,容易再次開發 實現了跳板機基本功能,認證、授權、審計 集成了Ansible,批量命令等 支持WebTerminal Bootstrap編寫,界面美觀 自動收集硬件信息 錄像回放 命令搜索 實時監控 批量上傳下載

2、jumpserver 2.0安裝

​ Centos 6.5 x86_64 關閉 iptables,關閉 selinux jumpserver:192.168.1.200 clients:192.168.1.210 ps:操作只針對 jumpserver,clients 不會進行操作,只是環境需求。

3、安裝依賴包

yum -y install epel-release yum clean all && yum makecache yum -y update yum -y install git python-pip MySQL-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel

4、下載jmpserver

cd /opt Git clone https://github.com/jumpserver/jumpserver.git

注: 如果下載失敗,則去github上面下載zip包,unzip解壓縮即可

jumpserver下載地址:

https://github.com/jumpserver/jumpserver

https://github.com/jumpserver/jumpserver/release

jumpserver官網指導文檔

https://jumpserver.readthedocs.io/zh/master/

1.PNG

5、執行快速安裝腳本

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

2.PNG

查看安裝的包 pip freeze

python install.py 輸入jumpserver的地址,默認為:”192.168.1.200”,回車即可。 是否安裝MySQL:選擇”y”進行安裝

3.PNG

MySQL 啟動后會要求用戶輸入 郵件服務器及賬戶(后期用來發送用戶名、ssh pass、web pass、ssh key)

163郵箱用授權密碼,而不是登入密碼 ,切記 。

4.PNG

輸入smtp信息之后發現報錯了,是python的pycrypto模塊問題,需要卸載重裝: pip uninstall pycrypto easy_install pycrypto

5.PNG

6.PNG

7.PNG

8.PNG

安裝之后繼續 python install.py 進行安裝,並且輸入 web管理員用戶名和管理員密碼,ok

9.PNG

10.PNG

運行 crontab,定期處理失效連接,定期更新資產信息 cd /opt/jumpserver python manage.py crontab add

11.PNG

注:

1)根據提示輸入相關信息,完成安裝,安裝完成后,請訪問web,繼續查看后續文檔

2)如果啟動失敗,請返回上層目錄,手動運行 ./service.sh start 啟動

3)如果 ./service.sh start 啟動失敗 cd /opt/jumpserver python manage.py runserver 0.0.0.0:80 python run_websocket.py

4)如果啟動失敗,可能是由於80端口和3000端口已經被占用,或者數據庫賬號密碼不對,請檢查

6、更新代碼

cd /opt/jumpserver 
git pull

Linux中的環境搭建到這一步就結束,下一步就是web頁面的操作


操作

一、jumpserver架構圖

jumpserver架構圖.png

主要難理解的三個用戶概念:

  1. 用戶: 指上圖中的運維老大或運維小弟,用來通過公網登錄jumpserver的
  2. 管理用戶: 用於管理資產的用戶,一般為root或sudo配置的無密碼登錄用戶
  3. 系統用戶: 登錄資產時使用的用戶, 為了安全不直接使用root用戶,而是使用普通用戶(通過root授予相應的權限)

4A標准

  • auth
  • authorized
  • audit
  • account

二、jumpserver部署

直接參考官方網站,簡單暴力(但需要網速較好,因為要下載大量的軟件包,python模塊與docker鏡像等)

https://jumpserver.readthedocs.io/zh/master/

安裝完成后,使用瀏覽器訪問http://IP就可以了

jumpserver登錄主頁.png

部署問題:

除了官方文檔上的問題解決外,還有一個坑

因為軟件包隨着時間的不同,可能版本會有變化,如果在安裝python模塊時出現下面的問題,請解決,否則即使能部署成功,但后面的功能也會受影響

解決思路:

(py3) [root@vm5 ~]# pip install urllib3==1.22
(py3) [root@vm5 ~]# pip install future==0.16.0

pip安裝錯誤圖.png

(py3) [root@vm5 ~]# pip install jms-storage==0.0.22

注意: pip install會自動卸載原版本,安裝你指定的版本.但也有可能會出現新的報錯。總之全解決,直到沒有報錯才繼續。

三、郵箱授權

admin(運維老大)創建個用戶(運維小弟),還要幫你創建密碼?

不好意思,我小弟太多管不過來,而且我是管理員,不屑於知道你密碼。

那你就配置個郵箱吧,發郵件鏈接給你自己改。

郵件授權.png

郵件授權2.png

郵件授權3.png

郵件授權4.png

郵件授權5.png

四、jumpserver系統設置

1.png

jumpserver1.png

jumpserver2.png

jumpserver3.png

五、創建jumpserver普通用戶

創建用戶1.png

NdskUP.png

創建用戶3.png

NdsVC8.png

張三登錄自己的郵箱自行設置密碼

NdsZ8S.png

Nds35V.png

NdsJ8U.png

NdsY2F.png

NdsdbR.png

Ndsy8O.png

六、創建管理用戶

Ndsvaq.png
NdsxI0.png
NdsjZn.png

七、創建系統用戶

NdyFsJ.png

NdyiM4.png

NdykL9.png

NdyCzF.png

八、創建資產

Ndyhy4.png

Ndy4OJ.png

8

NdyWSU.png

九、創建授權規則

Nd6Ckt.png

Nd6PtP.png

Nd6S0A.png

Nd6pTI.png

十、連接測試

10.1 命令連接進行管理

連接測試1.png

連接測試2.png

連接測試3.png

為了安全,建議配置nginx 反向代理 jumpserver

log_format jumpserver '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$request_time" $request_body "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $scheme $http_host';
server {
listen 8080 ssl;
listen 80;
deny all;
server_name jumpserver.xxxx.com;
index index.html index.htm index.PHP;
ssl_certificate ssl/xxxx.com.crt;
ssl_certificate_key ssl/xxxx.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
if ( $scheme = http ) {
rewrite ^(.*)$ https://$host:8090$request_uri? permanent;
}
location / {
proxy_set_header Connection "";
proxy_http_version 1.1;
proxy_pass http://10.43.12.31:8090;
}
location ^~ /ws/ {
proxy_pass http://10.43.12.31:8090/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_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
access_log /data0/logs/jumpserver.log jumpserver;
error_log /data0/logs/jumpserver_error.log debug;
}

10.2 登錄web進行管理

用戶登錄連接測試.png

用戶登錄執行命令.png

點擊web終端就會跳到web管理終端

web終端登錄.png

點擊文件管理就會跳到文件管理界面

文件管理.png

十一、管理員查看信息

admin管理員可以進行會話的管理與查看, 命令歷史記錄,錄像的回放等功能

連接會話查看.png

連接會話查看2.png

連接會話查看3.png

更多功能請自行挖掘,覺得功能還不夠,請自行二次開發.


免責聲明!

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



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