docker部署jumpserver堡垒机_jumpserver


实验环境

cat /etc/redhat-release 

CentOS Linux release 7.8.2003 (Core)

jumpserver_master              192.168.10.12

jumpserver_linux客户端       192.168.10.13

jumpserver_windows客户端  192.168.10.20


软件安装

echo SELINUX=disabled > /etc/sysconfig/selinux

systemctl stop firewalld  NetworkManager && systemctl disable firewalld  NetworkManager

sed -i 's/https/http/g' /etc/yum.repos.d/*.repo 

sed -i 's/gpgcheck=1/gpgcheck=0/g' /etc/yum.repos.d/*.repo


cp -pv /etc/sysctl.conf /etc/sysctl.conf.bak

cat >> /etc/sysctl.conf << EOF

> net.ipv4.tcp_syncookies = 1

> net.ipv4.tcp_tw_reuse = 1

> net.ipv4.tcp_tw_recycle = 1

> net.ipv4.tcp_fin_timeout = 10

> net.ipv4.ip_forward= 1

> EOF  &&   sysctl -p


cp -pv /etc/ssh/sshd_config  /etc/ssh/sshd_config.bak

sed -i "s/#PermitRootLogin yes/PermitRootLogin no/g" /etc/ssh/sshd_config  && systemctl restart sshd   禁止root登入系统


yum install -y    yum-utils  docker-ce-18.06.3.ce  

systemctl daemon-reload

systemctl start docker && systemctl enable docker

docker --version

Docker version 18.06.2-ce, build 6d37f41


docker pull  mysql:5.7

docker pull  redis:6.0.4

docker pull jumpserver/jms_all:1.5.2


docker run -itd --name mysql   \

  -p 3306:3306 --restart=always  \

  -v /etc/localtime:/etc/localtime \

  -v /usr/local/docker/mysql:/var/lib/mysql  \

 -e  MYSQL_ROOT_PASSWORD=root123   mysql:5.7   \

--character-set-server=utf8 --collation-server=utf8_bin


docker logs -f mysql | grep 3306

[Note] Server hostname (bind-address): '*'; port: 3306

Version: '5.7.40'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  MySQL Community Server (GPL)


docker exec -it mysql /bin/bash -c "mysql -uroot -proot123"

mysql> create database jms default charset 'utf8mb4';

mysql> grant all on jms.* to 'jms'@'%' identified by 'jms123@root';

mysql> flush privileges;


docker exec -it mysql /bin/bash -c "mysql -ujms -pjms123@root"

mysql> 


docker run -itd  --name redis  \

  -p 6379:6379  --restart=always  \

  -v /etc/localtime:/etc/localtime \

  -v /usr/local/docker/redis:/data  redis:6.0.4   \

  --appendonly yes  --requirepass "root123"  \


docker logs -f redis | grep 6379

|`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379


docker exec -it redis redis-cli -a root123

Warning: Using a password with '-a' option on the command line interface may not be safe.


127.0.0.1:6379> set key test

OK

127.0.0.1:6379> get key

"test"

127.0.0.1:6379>


配置jumpserver登入秘钥

SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`

BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`

echo $SECRET_KEY && echo $BOOTSTRAP_TOKEN

u6txDIt4qX8lmGmQ4Ufbu2rojJ1L3IRxPLcpi5qcYrudhLXoqu

6c0el2a1xWtLpMlb   


docker run -itd --name jms  \

   --restart=always  -v /etc/localtime:/etc/localtime \

   -v /usr/local/docker/jumpserver/:/opt/jumpserver/data  \

  -p 80:80   -p 2222:2222 \

  -e SECRET_KEY=$SECRET_KEY    \

  -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \

  -e DB_HOST="mysql"    -e DB_PORT=3306 \

  -e DB_NAME="jms"    -e DB_USER="jms" \

  -e DB_PASSWORD="jms123@root"   --link mysql:mysql \

  -e REDIS_HOST="redis"     -e REDIS_PORT="6379" \

  -e REDIS_PASSWORD="root123"    --link redis:redis \

 jumpserver/jms_all:1.5.2   &&  docker logs -f   jms


docker logs -f   jms   jumpserver容器启动日志

gunicorn is running: 30

flower is running: 41

daphne is running: 45

celery_ansible is running: 47

celery_default is running: 48

celery_node_tree is running: 51

check_asset_perm_expired is running: 61

beat is running: 65

Starting guacd: guacd[84]: INFO: Guacamole proxy daemon (guacd) version 1.2.0 started

SUCCESS

Using CATALINA_BASE:   /config/tomcat9

Using CATALINA_HOME:   /config/tomcat9

Using CATALINA_TMPDIR: /config/tomcat9/temp

Using JRE_HOME:        /usr

Using CLASSPATH:       /config/tomcat9/bin/bootstrap.jar:/config/tomcat9/bin/tomcat-juli.jar

Using CATALINA_OPTS:    

Tomcat started.

Jumpserver ALL 1.5.2

进入容器命令 docker exec -it jms_all /bin/bash


jumpserver服务端备份数据库

docker exec -it mysql  mysqldump -uroot -proot123  jms> /root/jms15.sql  

docker exec -it mysql /bin/bash -c "du -sh  /root/jms15.sql"

152K    /root/jms15.sql     容器导出数据库到宿主机

 docker cp mysql:/root/jms15.sql /root/   复制容器备份文件到宿主机


jumpserver服务端备份/导入容器

docker save jumpserver/jms_all:1.5.2 >  /root/jumpserve15_images.tar.gz   导出容器

docker load  -i   <  /root/jumpserver15_images.tar.gz    导入容器


jumpserver服务端修改admin密码

docker exec -it jms /bin/bash  

[root@117ed8924d32 opt]# source /opt/py3/bin/activate

(py3) [root@117ed8924d32 opt]# python /opt/jumpserver/apps/manage.py changepassword admin

Changing password for user 'Administrator(admin)'

Password:  

Password (again):  

Password changed successfully for user 'Administrator(admin)'

(py3) [root@117ed8924d32 opt]#    jumpserver修改admin用户密码 


netstat -tuplna | grep LISTEN

tcp     0     0 0.0.0.0:3306   0.0.0.0:*     LISTEN      24808/docker-proxy

tcp     0     0 0.0.0.0:6379   0.0.0.0:*     LISTEN      1186/docker-proxy

tcp     0     0 0.0.0.0:80      0.0.0.0:*      LISTEN      3944/docker-proxy 

tcp     0     0 0.0.0.0:2222   0.0.0.0:*     LISTEN      3925/docker-proxy   


http://serverip/

 docker部署jumpserver堡垒机_jumpserver_02

用户名 admin  密码 admin

 docker部署jumpserver堡垒机_jumpserver_03


jumpserver服务端配置

创建用户

 docker部署jumpserver堡垒机_jumpserver_04


 docker部署jumpserver堡垒机_jumpserver_05


 docker部署jumpserver堡垒机_jumpserver_06


 docker部署jumpserver堡垒机_jumpserver_07


 docker部署jumpserver堡垒机_jumpserver_08

创建用户组

 docker部署jumpserver堡垒机_jumpserver_09

 docker部署jumpserver堡垒机_jumpserver_10


管理用户是资产(被控服务器)上的root用户, 用于推送系统用户、获取资产硬件信息

创建linux管理账户

 docker部署jumpserver堡垒机_jumpserver_11


创建windows管理账户

 docker部署jumpserver堡垒机_jumpserver_12


 docker部署jumpserver堡垒机_jumpserver_13


系统用户 Jumpserver跳转登录资产时使用的用户,登录资产用户,如 web (ssh web@some-host)

用户使用自己的用户名登录Jumpserver, Jumpserver使用系统用户登录资产。 系统用户创建,选择自动推送 Jumpserver会使用ansible自动推送系统用户到资产中

创建llinux系统账户

 docker部署jumpserver堡垒机_jumpserver_14


 docker部署jumpserver堡垒机_jumpserver_15


 docker部署jumpserver堡垒机_jumpserver_16


创建windows系统账户

 docker部署jumpserver堡垒机_jumpserver_17


 docker部署jumpserver堡垒机_jumpserver_18


 docker部署jumpserver堡垒机_jumpserver_19


 docker部署jumpserver堡垒机_jumpserver_20

添加linux服务器资产

 docker部署jumpserver堡垒机_jumpserver_21


 docker部署jumpserver堡垒机_jumpserver_22


 docker部署jumpserver堡垒机_jumpserver_23

 docker部署jumpserver堡垒机_jumpserver_24


 docker部署jumpserver堡垒机_jumpserver_25


添加windows服务器资产

 docker部署jumpserver堡垒机_jumpserver_26


 docker部署jumpserver堡垒机_jumpserver_27

 docker部署jumpserver堡垒机_jumpserver_28

 docker部署jumpserver堡垒机_jumpserver_29


 docker部署jumpserver堡垒机_jumpserver_30


 docker部署jumpserver堡垒机_jumpserver_31


linux服务器资产授权

 docker部署jumpserver堡垒机_jumpserver_32

 docker部署jumpserver堡垒机_jumpserver_33


 docker部署jumpserver堡垒机_jumpserver_34


windows服务器资产授权

 docker部署jumpserver堡垒机_jumpserver_35

 docker部署jumpserver堡垒机_jumpserver_36


 docker部署jumpserver堡垒机_jumpserver_37


 docker部署jumpserver堡垒机_jumpserver_38


客户端web验证登入

 docker部署jumpserver堡垒机_jumpserver_39


 docker部署jumpserver堡垒机_jumpserver_40


 docker部署jumpserver堡垒机_jumpserver_41


 docker部署jumpserver堡垒机_jumpserver_42

 docker部署jumpserver堡垒机_jumpserver_43


命令行客户端登入堡垒机

ssh -p 2222 wyh@192.168.10.12

wyh@192.168.10.12's password:   属于用户密码


 wyh, 欢迎使用Jumpserver开源跳板机系统  

1) 输入 ID 直接登录 或 输入部分 IP,主机名,备注 进行搜索登录(如果唯一).

2) 输入 / + IP, 主机名 or 备注 搜索. 如: /ip

3) 输入 p 显示您有权限的主机.

4) 输入 g 显示您有权限的节点.

5) 输入 g + 节点ID 显示节点下主机. 如: g1

6) 输入 s 中/英文切换.

7) 输入 h 帮助.

8) 输入 r 刷新最新的机器和节点信息.

0) 输入 q 退出.


Opt> 1


Last login: Tue Oct 17 09:33:26 2023 from 192.168.10.12

[wyh@centos7-1 ~]$ su - root

Password:  

Last login: Tue Oct 17 09:36:20 CST 2023 from 192.168.10.19 on pts/2

[root@centos7-1 ~]# uptime && uname -a

09:39:21 up 17 min,  5 users,  load average: 0.00, 0.04, 0.09

Linux centos7-1 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

[root@centos7-1 ~]# 


xshell6客户端验证登入验证

 docker部署jumpserver堡垒机_jumpserver_44


 docker部署jumpserver堡垒机_jumpserver_45


 docker部署jumpserver堡垒机_jumpserver_46


 docker部署jumpserver堡垒机_jumpserver_47

 docker部署jumpserver堡垒机_jumpserver_48

 docker部署jumpserver堡垒机_jumpserver_49