讓運維不再背鍋的利器jumpserver堡壘機
由於來源身份不明、越權操作、密碼泄露、數據被竊、違規操作等因素
都可能會使運營的業務系統面臨嚴重威脅,一旦發生事故,如果不能快速定位事故原因,運維人員往往就會背黑鍋。
幾種常見的背黑鍋場景
1、由於不明身份利用遠程運維通道攻擊服務器造成業務系統出現異常
但是運維人員無法明確攻擊來源,那麽領導很生氣、後果很嚴重
2、只有張三能管理的服務器,被李四登錄過並且做了違規操作
但是沒有證據是李四登錄的,那麽張三只能背黑鍋了。
3、運維人員不小心泄露了服務器的密碼。一旦發生安全事故,那麽後果不堪設想。
4、某服務器的重要數據被竊。但是數據文件無法挽回,那麽面臨的是無法估量的經濟損失
背黑鍋的原因
其實運維工作,出現各種問題是在所難免的
不僅要有很好的分析處理能力,而且還要避免問題再次發生。要清楚認識到出現問題的真實原因:
1、沒有規範管理,人與服務器之間的界限不清晰
2、沒有實名機制,登錄服務器前沒有實名驗證
3、沒有密碼托管,服務器的密碼太多,很難做到定期修改,自己保管怕丟失
4、沒有操作預警,對高危、敏感的操作無法做到事前防禦
5、沒有傳輸控制,對重要服務器無法控制文件傳輸
6、沒有回溯過程,不能完整還原運維過程
解決背黑鍋的必殺技
作為運維人員,如何擺脫以上背黑鍋的尷尬局面呢?也許堡壘機是一個破解此局面的必殺技。
1、統一入口、規範管理
提供統一入口,所有運維人員只能登錄堡壘機才能訪問服務器,梳理“人與服務器”之間的關系,防止越權登錄
2、利用手機APP動態口令等驗證機制
采用手機APP動態口令、OTP動態令牌、USBKEY、短信口令等雙因素身份實名鑒別機制
防止密碼被暴力破解,解決訪問身份模糊的問題
3、托管服務器密碼,實現自動改密
通過堡壘機定期自動修改服務器的密碼,解決手工修改密碼、密碼泄露和記住密碼的煩惱。
1、可自動修改Windows、Linux、Unix、網絡設備等操作系統的密碼
2、可以設置周期或指定時間執行改密任務
3、可設定密碼的復雜度、隨機密碼、指定密碼、固定密碼格式等
4、可通過郵件、SFTP、FTP方式自動發送密碼文件給管理員
5、提供密碼容錯機制:改密前自動備份、備份失敗不改密、改密後自動備份、自動恢復密碼等
4、事中控制,防止違規操作
作為運維人員,如何擺脫以上背黑鍋的尷尬局面呢?也許堡壘機是一個破解此局面的必殺技。
1、通過命令控制策略,攔截高危、敏感的命令
2、通過命令審核策略,審批需要執行但又不能隨意執行的命令
3、通過文件傳輸控制策略,防止數據、文件的泄露
5、精細化審計,追溯整個運維過程
堡壘機要做到文件記錄、視頻回放等精細化完整審計,快速定位運維過程:
1、不僅要對所有操作會話的在線監控、實時阻斷、日誌回放、起止時間、來源用戶
來源地址、目標地址、協議、命令、操作(如對文件的上傳、下載、刪除、修改等操作等)等行為記錄。
2、還要能保存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 不會進行操作,只是環境需求。
一、安裝依賴包
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
二、下載 jumpserver
cd /opt
git clone https://github.com/jumpserver/jumpserver.git
註: 如果下載失敗,則去github上面下載zip包,unzip解壓縮即可
三、執行快速安裝腳本
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)
輸入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端口已經被占用,或者數據庫賬號密碼不對,請檢查
五、Web登錄
http://192.168.1.200
註意:
在使用jumpserver過程中,有一步是系統用戶推送,要推送成功,client(後端服務器)要滿足以下條件:
1)後端服務器需要有python、sudo環境才能使用推送用戶,批量命令等功能
2)後端服務器如果開啟了selinux,請安裝libselinux-python
六、更新代碼
cd /opt/jumpserver
git pull
讓運維不再背鍋的利器jumpserver堡壘機