堡壘機介紹:
官方網站:https://www.jumpserver.org/
在一個特定網絡環境下,為了保障網絡和數據不受外界入侵和破壞,而運用各種技術手段實時收集和監控網絡環境中每一個組成部分的系統狀態、安全事件、網絡活動,以便集中報警、及時處理及審計定責。我們又把堡壘機叫做跳板機,簡易的跳板機功能簡單,主要核心功能是遠程登錄服務器和日志審計。
JumpServer 是全球首款開源的堡壘機,使用 GNU GPL v2.0 開源協議,並使用python/django開發
下面讓我們看一下如何安裝jumpserver,其實jumpserver的安裝非常簡單,前提條件只需要docker就可以,首先我們需要在裝有docker的主機上安裝部署
一、下載鏡像jumpserver、mysql(要求5.7以上)、redis(6.0版本以上)
1. docker pull jumpserver/jms_all:1.5.6
2. docker pull mysql:5.7
3. docker pull redis:5.0
二、部署mysql:
把mysql:5.7打標簽上傳到鏡像倉庫(或者直接寫本地倉庫的)
docker tag mysql: 5.7 192.168.149.12/apps/mysql:5.7(這是我的倉庫地址,要換成你的倉庫地址)
創建mysql的dockercompose文件目錄,並且要導入mysql.cnf ,mysqld.cnf文件
mkdir /data/docker-compose/mysql5.7
開始寫docker-compose
vim /data/docker-compose/mysql5.7/docker-compose.yml
version: '3'
services:
mysql:
image: 192.168.149.12/apps/mysql:5.7 (或者直接本地倉庫mysql:5.7)
container_name: jms_mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'zzx.com'
expose:
- 3306
ports:
- '3306:3306'
volumes:
- /data/docker-compose/mysql5.7/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
- /data/docker-compose/mysql5.7/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf
啟動:docker-compose up -d
測試連接mysql
mysql -u root -h 192.168.149.12 -p'zzx.com' (物理機必須有mysql服務)
創建jumpserver庫並指定utf8編碼
create database jumpserver default charset 'utf8mb4';
給jumpserverku授予權限
grant all on jumpserver.* to 'jumpserver'@'%' identified by 'zzx.com';
三、部署redis:
把redis:5.0打標簽上傳到鏡像倉庫(或者直接寫本地倉庫的)
docker tag redis:5.0 192.168.149.12/apps/redis:5.0(這是我的倉庫地址,要換成你的倉庫地址)
創建redis的dockercompose文件目錄
mkdir /data/docker-compose/redis5.0
開始編寫docker-compose
vim /data/docker-compose/redis5.0/docker-compose.yml
version: '3'
services:
jms_redis:
image: 192.168.149.12/apps/redis:5.0
container_name: jms_redis
restart: always
expose:
- 6379
ports:
- '6379:6379'
啟動:docker-compose up -d
四、部署jumpserver:
創建jumpserver的dockercompose文件目錄
mkdir /data/docker-compose/jumpserver
生成加密秘鑰(生成隨機加密秘鑰和初始化token,下方第一段腳本對應SECRET_KEY,第二段腳本對應BOOTSTRAP_TOKEN)
if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi
if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi
編寫jumpserver的docker-compose
vim /data/docker-compose/jumpserver/docker-compose
version: '2'
services:
jms_all:
image: jumpserver/jms_all:1.5.6
container_name: jms_all
restart: always
environment:
- SECRET_KEY=VM5waokwV8j4CgWtMYmYYE8Qgpt0ErcSRw3R2yAOpR2WIdqsSR
- BOOTSTRAP_TOKEN=bmwWF4ejqQ1beVZR
- DB_HOST=192.168.149.12 #ip要寫對
- DB_PORT=3306
- DB_USER='jumpserver'
- DB_PASSWORD="zzx.com"
- DB_NAME=jumpserver
- REDIS_HOST=192.168.149.12 #ip要寫對
- REDIS_PORT=6379
- REDIS_PASSWORD=
volumes:
- /opt/jumpserver:/opt/jumpserver/data/media
ports:
- '8000:80'
- '2222:2222'
啟動:docker-compose up -d
訪問:http://192.168.149.12:8000/
jumpserver使用:
1:登錄web:
默認賬戶admin,密碼admin
2:用戶和組管理:
用戶管理–用戶列表界面,管理創建用戶,用戶相當於是公司的運維人員
2.1:創建用戶:
創建jumpserver用戶zhangxiaoming
2.2:設置用戶密碼
2.3:組管理:
用戶管理–用戶組界面,創建用戶組,比如DBA在一組,網絡在一組,后期會對組授權資產連接權限 ,創建MySQL組並添加zhangxiaoming如下:
2.4:測試zhangxiaoming登錄:
打開其他瀏覽器測試zhangxiaoming用戶是否可以登錄到jumpserver
2.5:當前用戶資產
當前用戶zhangxiaoming還未有任何資產可用
3:資產管理:
資產管理–管理用戶界面,創建系統用戶,此用戶用於推送到后端服務器自動創建,如果此賬戶已經存在於后端服務器則不會再重新創建,而是直接使用,后期jumpserver的普通賬戶(zhangxiaoming)會使用此賬戶登陸並管理資產信息(服務器),推薦的賬戶名稱:mysql nginx tomcat www
3.1:創建系統用戶
創建系統賬戶:
3.2:創建管理用戶:
資產管理–系統用戶界面,創建管理用戶,該管理用戶用於jumpserver登陸服務器統計資產信息以及推送系統用戶的時候使用,所以此用戶一定是一個可以登錄的具備超級權限的用戶(如后端服務器的root賬戶或者具有root權限的其他用戶)。
創建管理用戶:
3.3:創建資產:
資產管理–資產列表界面 創建資產,資產就是物理機 虛擬機等
創建資產:
資產狀態:
測試資產可連接性:
更新和刪除資產:
資產導入和導出:
4:授權管理
權限管理–授權管理界面,創建授權規則,將資產授權給某個jumpserver的登陸賬戶,即第一步創建的賬戶:
4.1:創建資產授權規則
4.2:資產授權規則詳細信息
具體其他功能可參考如下官方文檔,非常詳細:
https://docs.jumpserver.org/