1. 程式人生 > >讓運維不再背鍋的利器jumpserver堡壘機

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

配置文件 example server1 服務器 數據庫



由於來源身份不明、越權操作、密碼泄露、數據被竊、違規操作等因素

都可能會使運營的業務系統面臨嚴重威脅,一旦發生事故,如果不能快速定位事故原因,運維人員往往就會背黑鍋。

幾種常見的背黑鍋場景

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堡壘機