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