23.5 jumpserver介紹
• 官網www.jumpserver.orgphp
• 跳板機概述:
跳板機就是一臺服務器,開發戒運維人員在維護過程當中首先要統一登陸到這臺服務器,而後再登陸到目標
設備迚行維護和操做;html
• 堡壘機概述:
堡壘機,即在一個特定的網絡環境下,爲了保障網絡和數據丌受來自外部和內部用戶的入侵和破壞,而運
用各類技術手段實時收集和監控網絡環境中每個組成部分的系統狀態、安全事件、網絡活勱,以便集中
報警、及時處理及審計定責。
總結:堡壘機比跳板機多了實時收集、監控網絡環境、集中報警等功能。前端
• Jumpserver是一款使用Python, Django開發的開源跳板機系統,實現了跳板機應有的功能。基於ssh協議來管理,客戶端無需安裝agent, 助力互聯網企業高效 用戶、資產、權限、審計 管理。node
• Jumpserver 後端主要技術是LDAP,配置了LDAP 集中認證服務器, 全部服務器的認證都是由ldap完成的。其作法是:每一個用戶一個密碼,把密碼加密放到了數據庫中,當用戶輸入IP 從跳板機登錄服務器的時候,跳板機系統取出密碼,並解密,經過pexpect 模塊將密碼發送過去,來完成登陸。python
架構圖以下
mysql
組件說明
Jumpserver
現指 Jumpserver 管理後臺,是核心組件(Core), 使用 Django Class Based View 風格開發,支持 Restful API。linux
Githubandroid
Coco
實現了 SSH Server 和 Web Terminal Server 的組件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 開發。git
Githubgithub
Luna
如今是 Web Terminal 前端,計劃前端頁面都由該項目提供,Jumpserver 只提供 API,再也不負責後臺渲染html等。
Guacamole
Apache 跳板機項目,Jumpserver 使用其組件實現 RDP 功能,Jumpserver 並無修改其代碼而是添加了額外的插件,支持 Jumpserver 調用。
Jumpserver-Python-SDK
Jumpserver API Python SDK,Coco 目前使用該 SDK 與 Jumpserver API 交互。
• 因爲其擁有時尚的外觀和直觀的功能以及簡單地安裝配置等特點,是步入自動化運維的不二選擇;其後端數據存儲使用的是MySQL數據庫,所以建議使用前先行配置及部署好MySQL數據庫。
系統設置
配置郵件發送服務器
點擊頁面上邊的"郵件設置" TAB ,進入郵件設置頁面:
配置 QQ 郵箱的 SMTP 服務可參考(http://blog.csdn.net/Aaron133/article/details/78363844),僅使用只須要看完第二部分便可。
配置郵件服務後,點擊頁面的"測試鏈接"按鈕,若是配置正確,Jumpserver 會發送一條測試郵件到您的 SMTP 帳號郵箱裏面:
建立 Jumpserver 用戶
點擊頁面左側「用戶列表」菜單下的「用戶列表「,進入用戶列表頁面。
點擊頁面左上角「建立用戶」按鈕,進入建立用戶頁面,填寫帳戶,角色安全,我的等信息。
其中,用戶名即 Jumpserver 登陸帳號。用戶組是用於資產受權,當某個資產對一個用戶組受權後,這個用戶組下面的全部用戶就均可以使用這個資產了。角色用於區分一個用戶是管理員仍是普通用戶。
成功提交用戶信息後,Jumpserver 會發送一條設置"用戶密碼"的郵件到您填寫的用戶郵箱。
點擊郵件中的設置密碼連接,設置好密碼後,您就能夠用戶名和密碼登陸 Jumpserver 了。
用戶首次登陸 Jumpserver,會被要求完善用戶信息。
Linux/Unix 生成 SSH 密鑰能夠參考(http://www.javashuo.com/article/p-xdjfnsjx-dd.html)
Windows 生成 SSH 密鑰能夠參考(http://www.javashuo.com/article/p-xdjfnsjx-dd.html)
查看公鑰信息
$ cat ~/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDadDXxxx......
複製 SSH 公鑰,添加到 Jumpserver 中。
除了使用瀏覽器登陸 Jumpserver 外,還可以使用命令行登陸:
確保 Coco 服務正常
鑑於心態檢測存在延遲,您也能夠直接在 Jumpserver 主機上執行以下命令檢測 Coco 是否存活,Coco 服務默認使用 2222 端口:
$ netstat -ntpl
效果以下:
如 coco 不在線或者服務不正常,能夠嘗試重啓 coco
$ cd /opt/coco $ ./cocod restart # 請確保 jumpserver 已經正常運行。
如 guacamole 不在線或者服務不正常,能夠嘗試重啓容器
$ docker ps # 查詢正在運行的容器,記錄下容器的 <CONTAINER ID> ,能夠附加 -a 參數查詢全部容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6b15fcf0e5f3 registry.jumpserver.org/public/guacamole:latest "/init" 2 weeks ago Exited (0) 10 days ago gracious_hugle $ docker restart 6b15fcf0e5f3 # 6b15fcf0e5f3 是經過docker ps查詢到的,請不要直接複製。 # docker 用法: docker start|stop|restart|rm|rmi <CONTAINER ID>
命令行登陸 Jumpserver 使用以下命令:
$ ssh -p 2222 用戶名@Jumpserver IP地址
登陸成功後界面以下:
建立資產
建立 Linux 資產
編輯資產樹
節點不能重名,右擊節點能夠添加、刪除和重命名節點,以及進行資產相關的操做。
建立管理用戶
管理用戶是服務器的 root,或擁有 NOPASSWD: ALL sudo 權限的用戶,Jumpserver 使用該用戶來推送系統用戶、獲取資產硬件信息等。
若是使用ssh私鑰,須要先在資產上設置,這裏舉個例子供參考(本例登陸資產使用root爲例)
(1). 在資產上生成 root 帳戶的公鑰和私鑰 $ ssh-keygen -t rsa # 默認會輸入公鑰和私鑰文件到 ~/.ssh 目錄 (2). 將公鑰輸出到文件 authorized_keys 文件,並修改權限 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 400 ~/.ssh/authorized_keys (3). 打開RSA驗證相關設置 $ vim /etc/ssh/sshd_config RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys (4). 重啓 ssh 服務 $ service sshd restart (5). 上傳 ~/.ssh 目錄下的 id_rsa 私鑰到 jumpserver 的管理用戶中
這樣就可使用 ssh私鑰 進行管理服務器。
名稱能夠按資產樹來命名。用戶名root。密碼和 SSH 私鑰必填一個。
建立系統用戶
系統用戶是 Jumpserver 跳轉登陸資產時使用的用戶,能夠理解爲登陸資產用戶,如 web, sa, dba(ssh web@some-host), 而不是使用某個用戶的用戶名跳轉登陸服務器(ssh xiaoming@some-host); 簡單來講是 用戶使用本身的用戶名登陸Jumpserver, Jumpserver使用系統用戶登陸資產。
系統用戶的 Sudo 欄填寫容許當前系統用戶免sudo密碼執行的程序路徑,如默認的/sbin/ifconfig,意思是當前系統用戶能夠直接執行 ifconfig 命令或 sudo ifconfig 而不須要輸入當前系統用戶的密碼,執行其餘的命令任然須要密碼,以此來達到權限控制的目的。
# 這裏簡單舉幾個例子 Sudo /bin/su # 當前系統用戶能夠免sudo密碼執行sudo su命令(也就是能夠直接切換到root,生產環境不建議這樣操做) Sudo /usr/bin/git,/usr/bin/php,/bin/cat,/bin/more,/bin/less,/usr/bin/head,/usr/bin/tail # 當前系統用戶能夠免sudo密碼執行git php cat more less head tail # 此處的權限應該根據使用用戶的需求彙總後定製,原則上給予最小權限便可。
系統用戶建立時,若是選擇了自動推送 Jumpserver 會使用 Ansible 自動推送系統用戶到資產中,若是資產(交換機、Windows )不支持 Ansible, 請手動填寫帳號密碼。
Linux 系統協議項務必選擇 ssh 。若是用戶在系統中已存在,請去掉自動生成密鑰、自動推送勾選。
建立資產
點擊頁面左側的「資產管理」菜單下的「資產列表」按鈕,查看當前全部的資產列表。
點擊頁面左上角的「建立資產」按鈕,進入資產建立頁面,填寫資產信息。
IP 地址和管理用戶要確保正確,確保所選的管理用戶的用戶名和密碼能"牢靠"地登陸指定的 IP 主機上。資產的系統平臺也務必正確填寫。公網 IP 信息只用於展現,可不填,Jumpserver 鏈接資產使用的是 IP 信息。
資產建立信息填寫好保存以後,可測試資產是否能正確鏈接:
若是資產不能正常鏈接,請檢查管理用戶的用戶名和密鑰是否正確以及該管理用戶是否能使用 SSH 從 Jumpserver 主機正確登陸到資產主機上。
網域列表
網域功能是爲了解決部分環境沒法直接鏈接而新增的功能,原理是經過網關服務器進行跳轉登陸。
點擊頁面左側的「網域列表」按鈕,查看全部網域列表。
點擊頁面左上角的「建立網域」按鈕,進入網域建立頁面,選擇資產裏用做網域的網關服務器。
點擊網域的名稱,進入網域詳情列表。
點擊頁面的「網關」按鈕,選擇網關列表的「建立網關」按鈕,進入網關建立頁面,填寫網關信息。
IP信息通常默認填寫網域資產的IP便可(如用做網域的資產有多塊網卡和IP地址,選能與jumpserer通訊的任一IP便可),用戶名與密碼能夠在資產上面建立亦可以使用jumpserver的推送功能(須要手動輸入密碼),確認該用戶擁有執行ssh命令的權限。
保存信息後點擊測試鏈接,肯定設置無誤後到資產列表添加須要使用網關登陸的資產便可。
三、建立 Windows 資產
建立 Windows 系統管理用戶
同 Linux 系統的管理用戶同樣,名稱能夠按資產樹來命名,用戶名是管理員用戶名,密碼是管理員的密碼。
建立 Windows 系統系統用戶
目前 Windows 暫不支持自動推送,用戶必須在系統中存在且有權限使用遠程鏈接,請去掉自動生成密鑰、自動推送勾選;請確認 windows 資產的 rdp 防火牆已經開放。
Windows 資產協議務必選擇 rdp。
建立 Windows 資產
建立 Windows 資產,系統平臺請選擇正確的 Windows,端口號爲3389,IP 和 管理用戶請正確選擇,確保管理用戶能正確登陸到指定的 IP 主機上。
4、資產節點管理
4.1 爲資產樹節點分配資產
在資產列表頁面,選擇要添加資產的節點,右鍵,選擇添加資產到節點。
選擇要被添加的資產,點擊"確認"便可。
4.2 刪除節點資產
選擇要被刪除的節點,選擇"從節點刪除",點擊"提交"便可。
5、建立受權規則
節點,對應的是資產,表明該節點下的全部資產。
用戶組,對應的是用戶,表明該用戶組下全部的用戶。
系統用戶,及所選的用戶組下的用戶能經過該系統用戶使用所選節點下的資產。
節點,用戶組,系統用戶是一對一的關係,因此當擁有 Linux、Windows 不一樣類型資產時,應該分別給 Linux 資產和 Windows 資產建立受權規則。
建立的受權規節點要與資產所在的節點一致。
6、用戶使用資產
6.1 登陸 Jumpserver
建立受權規則的時候,選擇了用戶組,因此這裏須要登陸所選用戶組下面的用戶才能看見相應的資產。
用戶正確登陸後的頁面:
6.2 使用資產
6.2.1 鏈接資產
點擊頁面左邊的 Web 終端:
打開資產所在的節點:
雙擊資產名字,就連上資產了:
若是顯示鏈接超時,請檢查爲資產分配的系統用戶用戶名和密鑰是否正確,是否正確選擇 Windows 操做系統,協議 rdp,端口3389,是否正確選擇 Linux 操做系統,協議 ssh,端口22,以及資產的防火牆策略是否正確配置等信息。
接下來,就能夠對資產進行操做了。
6.2.2 斷開資產
點擊頁面頂部的 Server 按鈕會彈出選個選項,第一個斷開所選的鏈接,第二個斷開全部鏈接。
以上就是 Jumpserver 的簡易入門了,
經過web端登陸系統後界面以下:
Jumpserver擁有如下特色:
徹底開源,GPL受權
Python編寫,容易再次開發
實現了跳板機基本功能,認證、受權、審計
集成了Ansible,批量命令等
支持WebTerminal
Bootstrap編寫,界面美觀
自動收集硬件信息
錄像回放
命令搜索
實時監控
批量上傳下載
基於其特色,Jumpserver可以實現跳板機常見需求,如受權、用戶管理、服務器基本信息記錄等,同時又可批量執行腳本等功能;其中錄像回放、命令搜索、實時監控等特色,又能幫助運維人員回溯操做歷史,方便查找操做痕跡,便於管理其餘人員對服務器的操做控制。
快速安裝介紹
Jumpserver的源碼在github上,因此其安裝須要從github上直接下載源碼,而後經過其源碼中的自動安裝腳本進行執行安裝。
Github的路徑https://github.com/jumpserver/jumpserver.git
安裝建議使用 centos 6或7的 mini環境快速安裝,安裝過一些軟件後,其中可能會安裝一些不兼容的python庫,如pycrypto, django, 會影響快速安裝 。
23.六、Jumpserver安裝(0.4.0)
• yum install -y docker //首先安裝docker
• systemctl enable docker
• systemctl start docker //啓動docker服務
• curl -L https://github.com/docker/compose/releases/download/1.17.0-rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose //安裝docker-compose
• chmod 755 /usr/local/bin/docker-compose
• cd /home/
• git clone https://github.com/jumpserver/jumpserver.git //下載jumpserver源碼
• cd jumpserver/install/ #而後ls
• 配置docker加速器 http://ask.apelearn.com/question/15126
• 檢查是否有監聽8080端口的服務,若是有關閉
• screen//進入到一個虛擬終端
• docker-compose up //使用docker-compose安裝jumpserver
實例:
命令:netstat -lntp 查看運行的服務。
若是有gitlab-runsvdir.service服務,就把他停掉。或者使用命令:gitlab-ctl stop。還有systemctl stop mongod。systemctl disable mongod。
關閉沒有用的倉庫,切換到/etc/yum.repos.d目錄,把mongo.repo改成mongo.repo.1,mv zabiix.repo zabbix.repo.1,mv percona-release.repo percona-release.repo .1,,
23.七、Jumpserver安裝(0.3.2)
• 官方文檔https://github.com/jumpserver/jumpserver/wiki/v0.3.2-%E5%9F%BA%E4%BA%8E-RedHat-%E7%9A%84%E7%B3%BB%E7%BB%9F
• yum install -y git
• cd /home //要到一個空間大的目錄下面
注:不要安裝在/root、/home 等目錄下,以避免權限問題
• git clone https://github.com/jumpserver/jumpserver.git
安裝依賴環境及rpm
yum -y install epel-release
yum -y install python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel
注:安裝前最好關閉SELinux
關閉SELinux的方法:
修改/etc/selinux/config文件中的SELINUX="" 爲 disabled ,而後重啓。若是不想重啓系統,使用命令setenforce 0
• git checkout master
• cd jumpserver/install
• python install.py
• 若你的機器已經安裝過mysql,能夠先建立jumpserver庫以及對應的用戶名密碼,若沒有安裝就讓它自動安裝便可
• 安裝過程當中還須要設置一下使用的第三方郵件,建議你去申請一個免費的163郵箱
• 個人163郵箱smtp.163.com aming_test@163.com 8lFjprwrfEv1c
實例:
切換目錄cd jumpserver/install,運行pip freeze命令。
而後執行python install.py
23.八、Jumpserver使用
• 瀏覽器輸入ip:8000 訪問jumpserver
• 默認用戶名是admin,密碼是5Lov@wife
• 點擊用戶管理,選擇用戶,點擊Administrator那一行右側的更新,設置密碼
• 建立用戶組 運維
• 建立用戶 aming
• 點擊設置,默認管理用戶,該用戶爲管理員用戶,應該有sudo權限,須要在每一臺客戶機上建立該用戶(用戶名自定義,jump)
• 在一臺linux機器上生成一個密鑰對,用來做爲該管理用戶的密鑰對
• 把私鑰粘貼到默認密鑰下面
• 在客戶機上建立jump用戶,並設置sudo權限,把剛剛生成的密鑰對裏面的公鑰放到該客戶機的jump用戶家目錄.ssh/authorized_keys文件裏
• 資產管理,查看資產組,添加資產組(如,dev)
• 資產管理,查看資產,添加資產,填寫各項信息
• 受權管理,系統用戶,添加系統用戶,該用戶爲咱們登陸全部客戶機的用戶
• 受權規則,添加規則,建立受權規則
23.九、Jumpserver裏面的用戶
• jumpserver用戶用來登陸jumpserver(web界面、ssh登陸)
• 管理用戶用來自動建立客戶機上的系統用戶、批量執行命令等操做
• 客戶機上的系統用戶,用來經過jumpserver去登陸每一臺客戶機的用戶
23.十、Jumpserver使用
• 普通用戶的密碼以及密鑰下載地址、密鑰密碼都會經過郵件的方式發送給用戶
• 瀏覽器登陸普通用戶,能夠查看有權限的主機,也能夠在web界面下登陸主機、上傳和下載文件
• xshell建立新的鏈接
• ip爲jumpserver的ip,端口爲22
• 用戶名爲普通用戶名字(aming)
• 設置密鑰認證
• 鏈接後,出現登陸頁面,數據p查看全部被受權主機
• 輸入主機前面的數字能夠登陸到對應的主機下面
參考連接:https://www.jianshu.com/p/653c60987b0f
http://jumpserver.readthedocs.io/zh/docs/setup_by_centos7.html?highlight=log
資料連接 :
jenkins 官網安裝文檔: http://docs.jumpserver.org/zh/latest/quickstart.html
jenkins pipeline 文章合集 :https://blog.csdn.net/sinat_34524528/article/details/81557007
Jenkins2 入門到精通 : https://blog.csdn.net/lb245557472/article/details/77376908
jenkins+gitlab + 蒲公英實現 android 應用自動化打包分發 : https://juejin.im/post/584e49448e450a006acabc57
手把手從0開始教你搭建Jumpserver : https://mp.weixin.qq.com/s/Pz3JlJq75oagAghgVxbhMg
手把手從0開始教你搭建Jumpserver,爲服務器安全保駕護航! : https://mp.weixin.qq.com/s/Pz3JlJq75oagAghgVxbhMg
審計系統---堡壘機項目之用戶交互+session日誌寫入數據庫[完整版] : https://www.cnblogs.com/ftl1012/p/9459906.html
審計系統---堡壘機項目之監測進程腳本 : https://www.cnblogs.com/ftl1012/p/9459826.html
審計系統---堡壘機項目之strace追蹤ssh : https://www.cnblogs.com/ftl1012/p/9459819.html
審計系統---堡壘機項目之用戶交互程序開發 : https://www.cnblogs.com/ftl1012/p/9459306.html
審計系統---堡壘機項目之環境準備 : https://www.cnblogs.com/ftl1012/p/9459085.html
審計系統---堡壘機項目之表結構設計 : https://www.cnblogs.com/ftl1012/p/9458964.html
審計系統---堡壘機python下ssh的使用 : https://www.cnblogs.com/ftl1012/p/9458889.html
審計系統---paramiko模塊學習 : https://www.cnblogs.com/ftl1012/p/paramiko.html
審計系統---初識堡壘機180501【all】 : https://www.cnblogs.com/ftl1012/p/9458595.html
https://www.cnblogs.com/bigdevilking/p/9427941.html
Jumpserver(跳板機、堡壘機)啓動jms Django鏈接mysql數據庫報錯(466) : :https://www.cnblogs.com/bigdevilking/p/9434482.html