JumpServer介紹:

跳板機(openvpn):就是一台服務器,維護人員在維護過程中,首先要統一登陸到這台服務器上,然後從這台服務器再登陸到目標設備進行維護。但是跳板機沒有實現對運維人員操作行為的控制和審計,此外,跳板機存在嚴重的安全風險,一旦跳板機系統被入侵,則後端的資源將被完全暴露。

堡壘機(JumpServer):可以理解為加強版的跳板機,添加了角色管控,授權審批,信息訪問控制,操作記錄和審計,系統變更和維護控制要求等

堡壘機4個核心能力:4A

Authentication:身份鑑別-->防止身份冒用和複用

Authorization:授權控制-->防止內部誤操作和權限濫用

Accounting:賬號管理-->人員和資產管理

Auditing:安全審計-->溯源保障和事故分析的依據

 

JumpServer安裝:

環境要求:

硬件配置:2CPU+4Gmem+50G存儲 (最低)

操作系統:Linux發行版x86_64

Python=3.6x

Mysql Server>=5.6 或者Mariadb Server>=5.5.56 數據庫編碼要求utf8

Redis

安裝方法:

手動部署:一步一步實現,需要手動安裝各個組件

急速部署:資產數量不多,或者測試體驗的用户可以使用腳本快速部署

容器部署:基於docker實現

分佈式部署:適用於多資產的大型環境

基於容器部署:

外置數據庫要求:

mysql版本要大於等於5.6

mariadb版本要大於等於5.5.6

數據庫編碼要求utf8

基於容器安裝完畢後可以通過以下方式訪問:

瀏覽器訪問:http://容器所在服務器IP

默認管理員賬號密碼:admin/admin

ssh訪問: ssh -p 2222 容器所在服務器Ip

xshell鏈接,默認ssh端口為2222

1 安裝mysql服務

1.1 在宿主機準備MySQL的配置文件

#準備相關配置目錄
mkdir -p /etc/mysql/mysql.conf.d/
mkdir -p /etc/mysql/conf.d
mkdir -p /data

#生成配置文件,指定字符集
tee /etc/mysql/mysql.conf.d/mysqld.cnf <<EOF
[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
symbolic-links=0
character-set-server=utf8
EOF

#生成配置文件,指定字符集
tee /etc/mysql/conf.d/mysql.cnf <<EOF
[mysql]
default-character-set=utf8
EOF

1.2 啓動MySQL容器

將宿主機設置好的配置文件掛在到mysql容器中

docker run -d -p 3306:3306 --name mysql --restart always \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=jumpserver \
-e MYSQL_USER=jumpserver \
-e MYSQL_PASSWORD=123456 \
-v /data/mysql:/var/lib/mysql \
-v /etc/mysql/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v /etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf \
mysql:5.7.30

測試mysql容器是否安裝好

[root@centos7 imagesFile]# docker exec -it mysql sh
# mysql -p123456
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> show variables like 'collation%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

mysql> exit
Bye
# cat /var/lib/mysql/jumpserver/db.opt                      
default-character-set=utf8
default-collation=utf8_general_ci
# cat /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
symbolic-links=0
character-set-server=utf8
# cat /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8

# mysql -p123456
mysql> select user,host from mysql.user;
+---------------+-----------+
| user          | host      |
+---------------+-----------+
| jumpserver    | %         |
| root          | %         |
| mysql.session | localhost |
| mysql.sys     | localhost |
| root          | localhost |
+---------------+-----------+
[root@centos7 imagesFile]# yum -y install mysql
[root@centos7 imagesFile]# mysql -ujumpserver -p123456 -h10.0.0.13
MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| jumpserver         |
+--------------------+
2 rows in set (0.00 sec)

2 安裝redis服務

2.1 啓動redis

[root@centos7 imagesFile]# docker run -d -p 6379:6379 --name redis --restart always redis:5.0.9
[root@centos7 imagesFile]# docker ps -a|grep redis
81cd196e11b6   redis:5.0.9    "docker-entrypoint.s…"   9 minutes ago   Up 9 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp              redis
#驗證redis
[root@centos7 imagesFile]# yum -y install redis
[root@centos7 imagesFile]#[root@centos7 imagesFile]# redis-cli -h 10.0.0.13
10.0.0.13:6379> info
# Server
redis_version:5.0.9
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:9f4bb002aa1b31e6

3 部署JumpServer

3.1 生成key和容器部署啓動JumpServer

# vim JumpserverKeyCreate.sh
#!/bin/bash
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
[root@centos7 scripts]# tail -n2 ~/.bashrc
SECRET_KEY=72eFYdTIxYiqL2RObPilUvamb9zbj1ujDQRLqZAhJSaLkPGQIE
BOOTSTRAP_TOKEN=HfIILpAlMGtqWaeI

[root@centos7 scripts]# cat JumpserverDockerStart.sh 
#!/bin/bash
docker run --name jms_all -d \
  -v /opt/jumpserver/data:/opt/jumpserver/data \
  -p 80:80 \
  -p 2222:2222 \
  --restart always \
  -e SECRET_KEY=72eFYdTIxYiqL2RObPilUvamb9zbj1ujDQRLqZAhJSaLkPGQIE \
  -e BOOTSTRAP_TOKEN=HfIILpAlMGtqWaeI \
  -e DB_HOST=10.0.0.13 \
  -e DB_PORT=3306 \
  -e DB_USER=root \
  -e DB_PASSWORD=123456 \
  -e DB_NAME=jumpserver \
  -e REDIS_HOST=10.0.0.13 \
  -e REDIS_PORT=6379 \
  -e REDIS_PASSWORD='' \
  --privileged=true \
  jumpserver/jms_all:v2.19.2

#啓動後查看容器日誌
[root@centos7 scripts]# docker run --name jms_all -d \
>   -v /opt/jumpserver/data:/opt/jumpserver/data \
>   -p 80:80 \
>   -p 2222:2222 \
>   --restart always \
>   -e SECRET_KEY=72eFYdTIxYiqL2RObPilUvamb9zbj1ujDQRLqZAhJSaLkPGQIE \
>   -e BOOTSTRAP_TOKEN=HfIILpAlMGtqWaeI \
>   -e DB_HOST=10.0.0.13 \
>   -e DB_PORT=3306 \
>   -e DB_USER=root \
>   -e DB_PASSWORD=123456 \
>   -e DB_NAME=jumpserver \
>   -e REDIS_HOST=10.0.0.13 \
>   -e REDIS_PORT=6379 \
>   -e REDIS_PASSWORD='' \
>   --privileged=true \
>   jumpserver/jms_all:v2.19.2
ab0780e484ae4aa2cf6688b52aae20eb6efccf952eb95bcc8c4c28b68c199237
[root@centos7 scripts]# docker logs -f jms_all

Starting supervisor: supervisord.

Time: 2025-12-25 17:38:13
The Installation is Complete.
    --------------------------------------------------
    | Documentation:    https://docs.jumpserver.org/ |
    | Official Website: https://www.jumpserver.org/  |
    --------------------------------------------------

       ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗
       ██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
       ██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝
  ██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
  ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
   ╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

                                                                   Version: v2.19.2

Default Access:
username: admin  password: admin

LOG_LEVEL: ERROR
JumpServer Logs:

3.2 登陸驗證JumpServer

瀏覽器輸入:http://10.0.0.13,自動跳轉到登陸界面,初始賬號和密碼admin/admin

第一次登陸之後,需要修改密碼,然後才能正常登陸界面

雲計算 - 【JumpServer-初識篇】一鍵搭建JumpServer堡壘機、對接server服務器,只需要25分鐘_centos

 

念念不忘,必有迴響。