前介
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/
5、執行快速安裝腳本
cd /opt/jumpserver/install
pip install -r requirement.txt
查看安裝的包 pip freeze
python install.py 輸入jumpserver的地址,默認為:”192.168.1.200”,回車即可。 是否安裝MySQL:選擇”y”進行安裝
MySQL 啟動后會要求用戶輸入 郵件服務器及賬戶(后期用來發送用戶名、ssh pass、web pass、ssh key)
163郵箱用授權密碼,而不是登入密碼 ,切記 。
輸入smtp信息之后發現報錯了,是python的pycrypto模塊問題,需要卸載重裝: pip uninstall pycrypto easy_install pycrypto
安裝之后繼續 python install.py 進行安裝,並且輸入 web管理員用戶名和管理員密碼,ok
運行 crontab,定期處理失效連接,定期更新資產信息 cd /opt/jumpserver python manage.py crontab add
注:
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的
- 管理用戶: 用於管理資產的用戶,一般為root或sudo配置的無密碼登錄用戶
- 系統用戶: 登錄資產時使用的用戶, 為了安全不直接使用root用戶,而是使用普通用戶(通過root授予相應的權限)
4A標准
- auth
- authorized
- audit
- account
二、jumpserver部署
直接參考官方網站,簡單暴力(但需要網速較好,因為要下載大量的軟件包,python模塊與docker鏡像等)
https://jumpserver.readthedocs.io/zh/master/
安裝完成后,使用瀏覽器訪問http://IP就可以了
部署問題:
除了官方文檔上的問題解決外,還有一個坑
因為軟件包隨着時間的不同,可能版本會有變化,如果在安裝python模塊時出現下面的問題,請解決,否則即使能部署成功,但后面的功能也會受影響
解決思路:
(py3) [root@vm5 ~]# pip install urllib3==1.22
(py3) [root@vm5 ~]# pip install future==0.16.0
(py3) [root@vm5 ~]# pip install jms-storage==0.0.22
注意: pip install
會自動卸載原版本,安裝你指定的版本.但也有可能會出現新的報錯。總之全解決,直到沒有報錯才繼續。
三、郵箱授權
admin(運維老大)創建個用戶(運維小弟),還要幫你創建密碼?
不好意思,我小弟太多管不過來,而且我是管理員,不屑於知道你密碼。
那你就配置個郵箱吧,發郵件鏈接給你自己改。
四、jumpserver系統設置
五、創建jumpserver普通用戶
張三登錄自己的郵箱自行設置密碼
六、創建管理用戶
七、創建系統用戶
八、創建資產
九、創建授權規則
十、連接測試
10.1 命令連接進行管理
為了安全,建議配置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進行管理
點擊web終端就會跳到web管理終端
點擊文件管理就會跳到文件管理界面
十一、管理員查看信息
admin管理員可以進行會話的管理與查看, 命令歷史記錄,錄像的回放等功能
更多功能請自行挖掘,覺得功能還不夠,請自行二次開發.