讓運維再也不背鍋的利器jumpserver堡壘機



因爲來源身份不明、越權操做、密碼泄露、數據被竊、違規操做等因素python

均可能會使運營的業務系統面臨嚴重威脅,一旦發生事故,若是不能快速定位事故緣由,運維人員每每就會背黑鍋。mysql

幾種常見的背黑鍋場景

一、因爲不明身份利用遠程運維通道***服務器形成業務系統出現異常linux

      可是運維人員沒法明確***來源,那麼領導很生氣、後果很嚴重git

二、只有張三能管理的服務器,被李四登陸過而且作了違規操做github

      可是沒有證據是李四登陸的,那麼張三隻能背黑鍋了。web

三、運維人員不當心泄露了服務器的密碼。一旦發生安全事故,那麼後果不堪設想。sql

四、某服務器的重要數據被竊。可是數據文件沒法挽回,那麼面臨的是沒法估量的經濟損失數據庫

wKiom1lUUr-SrYUUAAEh2kY_sRs399.png-wh_50

背黑鍋的緣由

其實運維工做,出現各類問題是在所不免的
不只要有很好的分析處理能力,並且還要避免問題再次發生。要清楚認識到出現問題的真實緣由:

一、沒有規範管理,人與服務器之間的界限不清晰
vim

二、沒有實名機制,登陸服務器前沒有實名驗證後端

三、沒有密碼託管,服務器的密碼太多,很難作到按期修改,本身保管怕丟失

四、沒有操做預警,對高危、敏感的操做沒法作到事前防護

五、沒有傳輸控制,對重要服務器沒法控制文件傳輸

六、沒有回溯過程,不能完整還原運維過程

解決背黑鍋的必殺技

做爲運維人員,如何擺脫以上背黑鍋的尷尬局面呢?也許堡壘機是一個破解此局面的必殺技。

一、統一入口、規範管理

提供統一入口,全部運維人員只能登陸堡壘機才能訪問服務器,梳理「人與服務器」之間的關係,防止越權登陸

wKiom1lUUyHQOJDGAAQloyxt6ts878.png-wh_50

二、利用手機APP動態口令等驗證機制

採用手機APP動態口令、OTP動態令牌、USBKEY、短信口令等雙因素身份實名鑑別機制

防止密碼被暴力破解,解決訪問身份模糊的問題

wKiom1lUUwXDf8tLAALgiTcwir0504.png-wh_50

三、託管服務器密碼,實現自動改密

經過堡壘機按期自動修改服務器的密碼,解決手工修改密碼、密碼泄露和記住密碼的煩惱。

一、可自動修改Windows、Linux、Unix、網絡設備等操做系統的密碼

二、能夠設置週期或指定時間執行改密任務

三、可設定密碼的複雜度、隨機密碼、指定密碼、固定密碼格式等

四、可經過郵件、SFTP、FTP方式自動發送密碼文件給管理員

五、提供密碼容錯機制:改密前自動備份、備份失敗不改密、改密後自動備份、自動恢復密碼等

wKiom1lUU3bTMb_kAAFEmILRpXs483.png-wh_50

四、事中控制,防止違規操做

做爲運維人員,如何擺脫以上背黑鍋的尷尬局面呢?也許堡壘機是一個破解此局面的必殺技。

一、經過命令控制策略,攔截高危、敏感的命令

二、經過命令審覈策略,審批須要執行但又不能隨意執行的命令

三、經過文件傳輸控制策略,防止數據、文件的泄露

wKiom1lUU2DwXa64AALFaqF8au8055.png-wh_50

五、精細化審計,追溯整個運維過程

堡壘機要作到文件記錄、視頻回放等精細化完整審計,快速定位運維過程:

一、不只要對全部操做會話的在線監控、實時阻斷、日誌回放、起止時間、來源用戶

來源地址、目標地址、協議、命令、操做(如對文件的上傳、下載、刪除、修改等操做等)等行爲記錄。

 

二、還要能保存SFTP/FTP/SCP/RDP/RZ/SZ傳輸的文件

爲上傳惡意文件、***、竊取數據等危險行爲起到了追蹤依據。


下面就說說堡壘機的具體安裝部署


Jumpserver 是一款由Python編寫開源的跳板機(堡壘機)系統,實現了跳板機應有的功能

基於ssh協議來管理,客戶端無需安裝agent


特色:

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


jumpserver 3.0 安裝

相對於 jumpserver 2.0 版本,在新的版本 3.0 中取消了LDAP受權,取而代之的是ssh進行推送;界面也有所變化

功能更完善,安裝更簡單,不像 2.0 的版本,難住了好多人。下面經過兩臺主機來搭建 jumpserver堡壘機!


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


1、安裝依賴包
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


2、下載 jumpserver  
cd /opt
git clone https://github.com/jumpserver/jumpserver.git
注: 若是下載失敗,則去github上面下載zip包,unzip解壓縮便可

wKiom1lUU7mQ7sCKAABHB-cz4Ro890.png-wh_50


3、執行快速安裝腳本
cd /opt/jumpserver/install

pip install -r requirement.txt

wKioL1lUU8nwDJ9DAABhzvHRs6Q179.png-wh_50

查看安裝的包
pip freeze

python install.py
輸入jumpserver的地址,默認爲:」192.168.1.200」,回車便可。
是否安裝
mysql:選擇」y」進行安裝

wKiom1lUVA-A2baxAABHsmOdrFE712.png-wh_50

MySQL 啓動後會要求用戶輸入 郵件服務器及帳戶

(後期用來發送用戶名、ssh pass、web pass、ssh key)

wKiom1lUVB3CDmAvAAB9CjHSP_A667.png-wh_50

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

wKioL1lUVH7xyLrUAAAov_Nst-M888.png-wh_50

wKiom1lUVIiCCMeTAAAtS_Ttwis940.png-wh_50

wKioL1lUVJLwu4W2AAAZoO2xJ5s524.png-wh_50

wKiom1lUVJyTQcPMAAAXa0hCuYY273.png-wh_50

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

wKiom1lUVNGjXhznAABAMQo6_-4966.png-wh_50

wKiom1lUVOWxwpJ8AAAsw3Ut_3k093.png-wh_50


4、運行 crontab

按期處理失效鏈接,按期更新資產信息
cd /opt/jumpserver
python manage.py crontab add

wKioL1lUVSDxtaKiAABPkrZkijM495.png-wh_50

注:
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端口已經被佔用,或者數據庫帳號密碼不對,請檢查


5、Web登陸
http://192.168.1.200

wKioL1lUVVqhkuciAAD73N5FbKQ976.png-wh_50

注意:
在使用jumpserver過程當中,有一步是系統用戶推送,要推送成功,client(後端服務器)要知足如下條件:
1)後端服務器須要有python、sudo環境才能使用推送用戶,批量命令等功能
2)後端服務器若是開啓了selinux,請安裝libselinux-python


6、更新代碼 cd /opt/jumpserver git pull

相關文章
相關標籤/搜索