首先,jumpserver是什麼呢?html
Jumpserver 是一款由Python編寫開源的跳板機(堡壘機)系統,實現了跳板機應有的功能。基於ssh協議來管理,客戶端無需安裝agent。python
特色:linux
徹底開源,GPL受權 Python編寫,容易再次開發 實現了跳板機基本功能,認證、受權、審計 集成了Ansible,批量命令等 支持WebTerminal Bootstrap編寫,界面美觀 自動收集硬件信息 錄像回放 命令搜索 實時監控 批量上傳下載nginx
jumpserver 3.0 安裝git
相對於 jumpserver 2.0 版本,在新的版本 3.0 中取消了LDAP受權,取而代之的是ssh進行推送;界面也有所變化,功能更完善,安裝更簡單,不像 2.0 的版本,難住了好多人。下面經過兩臺主機來搭建 jumpserver堡壘機!github
Centos 6.5 x86_64 關閉 iptables,關閉 selinux jumpserver:192.168.1.200 clients:192.168.1.210 ps:操做只針對 jumpserver,clients 不會進行操做,只是環境需求。web
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數據庫
cd /opt Git clone https://github.com/jumpserver/jumpserver.git 注: 若是下載失敗,則去github上面下載zip包,unzip解壓縮便可
vim
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)
163郵箱用受權密碼,而不是登入密碼 ,切記 。
輸入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端口已經被佔用,或者數據庫帳號密碼不對,請檢查
注意: 在使用jumpserver過程當中,有一步是系統用戶推送,要推送成功,client(後端服務器)要知足如下條件: 1)後端服務器須要有python、sudo環境才能使用推送用戶,批量命令等功能 2)後端服務器若是開啓了selinux,請安裝libselinux-python
cd /opt/jumpserver git pull
環境搭建到這一步就結束啦~
下面開始要仔細看咯
1)添加用戶
點擊用戶管理 —> 查看用戶 —> 添加用戶
輸入要添加的用戶名,姓名,權限,Mail,而且發送郵件 —> 保存
查看添加的用戶
查看用戶郵件 郵件中包含了用戶名,權限,web密碼,ssh 密鑰密碼,以及密鑰下載地址。
2)添加用戶組
點擊用戶管理 —> 查看用戶組 —> 添加用戶組
添加新的小組 —> 運維小組
查看剛纔添加的組
1)添加資產組
點擊資產管理 —> 查看資產組 —> 添加主機組
輸入組名稱,而且輸入描述組用途
2)添加資產
點擊資產管理 —> 查看資產 —> 添加資產
輸入主機名,主機IP,管理用戶名(管理員用戶,主機中必須存在的哦~ 能夠是root),端口,資產組 —> 提交保存
3)添加機房
點擊資產管理 —> 查看機房 —> 添加機房
輸入機房名稱,其餘的能夠選填 —> 保存
1)sudo
點擊權限管理 —> sudo —> 添加別名
輸入別名,系統命令,備註 —> 點擊保存
2)添加系統用戶
點擊受權管理 —> 系統用戶 —> 添加系統用戶
輸入用戶名,密碼,管理的sudo及備註 —> 單擊保存
建立好系統以後,單擊推送,將用戶名、密碼、sudo的信息推送到服務器。
選擇系統用戶,資產組 —> 單擊保存
推送成功
3)受權規則
點擊受權管理 —> 受權規則 —> 添加規則
輸入受權名稱,用戶/用戶組,資產/資產組,系統用戶,備註 —> 單擊保存
這時候建立已經完成,下一步用戶」hongxue」經過web和密鑰登陸堡壘機 192.168.1.200,並實現跳轉到服務器 192.168.1.210
1)經過web登陸 能夠看到用戶ID,用戶名,權限,key,最後登陸,用戶組,受權主機數,以及主機信息。
單擊查看主機 —> 鏈接
鏈接成功,能夠對該主機進行操做。
2)經過ssh登陸
經過郵件中收到的地址,下載key
點擊工具 —> 用戶密鑰管理者
單擊導入 —> 輸入用戶名,密碼
鏈接 jumpserver 堡壘機 192.168.1.200,輸入密鑰密碼進行登陸
登陸成功!! 從受權的列表中鏈接到服務器 192.168.1.210
!!爲了安全,建議配置nginx 反向代理 jumpserver
log_format jumpserver '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$request_time" $request_body "$http_referer" "$http_user_agent" "$http_x_forwarded_for" $scheme $http_host'; server { listen 8080 ssl; listen 80; deny all; server_name jumpserver.xxxx.com; index index.html index.htm index.PHP; ssl_certificate ssl/xxxx.com.crt; ssl_certificate_key ssl/xxxx.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; if ( $scheme = http ) { rewrite ^(.*)$ https://$host:8090$request_uri? permanent; } location / { proxy_set_header Connection ""; proxy_http_version 1.1; proxy_pass http://10.43.12.31:8090; } location ^~ /ws/ { proxy_pass http://10.43.12.31:8090/ws/; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } access_log /data0/logs/jumpserver.log jumpserver; error_log /data0/logs/jumpserver_error.log debug; }