技术交流QQ群:①185473046   ②190706903   ③203744115   网站地图
登录

下次自动登录
现在的位置: 首页Linux>正文
Linux系统下安装部署JumpServer堡垒机
2025年03月06日 Linux 暂无评论 ⁄ 被围观 138次+

简单介绍:

1、JumpServer是一款开源堡垒机,它可以帮助企业安全地管理服务器和设备。

2、JumpServer使用Docker和Docker Compose进行部署

3、我们使用Rocky Linux 9.x系统来安装部署JumpServer堡垒机

知识储备:

Rocky Linux 9.x系统安装配置图解教程

https://www.osyunwei.com/archives/14859.html

准备篇

1、禁用SELinux

rpm -q grubby #确认grubby软件包是否已经安装

grubby --update-kernel ALL --args selinux=0 #添加selinux=0到内核​​命令行

shutdown -r now #重启系统

getenforce #查看结果为Disabled

2、防火墙设置

Rocky Linux 9.x默认是firewalld防火墙,因为‌Docker需要iptables,我们这里卸载firewall,安装iptables作为防火墙,并清空防火墙规则

2.1关闭firewall

systemctl stop firewalld.service

systemctl disable firewalld.service

systemctl mask firewalld

systemctl stop firewalld

yum -y remove firewalld

2.2安装iptables防火墙,开启相应的端口

yum -y install iptables-services #安装

systemctl enable iptables.service #设置防火墙开机启动

systemctl start iptables.service #启动防火墙使配置生效

iptables -F #清空规则

service iptables save #保存配置规则

systemctl restart iptables.service #启动防火墙使配置生效

iptables -L -v -n #查看规则

3、设置系统时间

localectl set-locale LC_TIME=C.UTF-8 #让date默认显示为 24 小时制

vi /etc/locale.conf

LC_TIME=C.UTF-8

:wq! #保存退出

source /etc/locale.conf #使配置生效

rm -rf /etc/localtime #先删除默认的时区设置

ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #替换亚洲/上海作为默认时区

vi /etc/sysconfig/clock #添加时区

Zone=Asia/Shanghai

:wq! #保存退出

timedatectl set-local-rtc 0

hwclock --systohc -u #系统时钟和硬件时钟同步,当前系统时区不为 UTC,是CST时间,所有要加-u参数

date #显示系统时间

date -s "2025-03-06 15:24:00" #修改时间

watch -n 1 date #显示实时时间

vi /etc/chrony.conf

#pool 2.rocky.pool.ntp.org iburst #注释

server ntp.aliyun.com iburst #添加

:wq! #保存退出

systemctl enable chronyd #添加开机启动

systemctl restart chronyd #重启服务

chronyc sources -v #查看时间同步信息

4、系统参数优化

vi /etc/security/limits.conf #在最后一行添加以下代码

* soft nproc unlimited

* hard nproc unlimited

* soft nofile 1000000

* hard nofile 1000000

:wq! #保存退出

vi /etc/sysctl.conf #在最后一行添加以下代码

fs.file-max = 65535000

fs.nr_open = 65535000

kernel.pid_max=655350

vm.swappiness = 0

net.ipv4.ip_forward = 1

vm.max_map_count=262144

:wq! #保存退出

/sbin/sysctl -p

ulimit -a #查看

ulimit -n 1000000 #设置

安装篇

1、安装Docker

1.1添加docker用户组

groupadd docker

#添加普通用户myuser到docker组和wheel组,使其具有docker命令的执行权限

#如果是root用户可以不用执行,默认就有权限

usermod -aG docker myuser

usermod -aG wheel myuser

#刷新用户组

newgrp docker

1.2下载docker安装包

docker下载地址:https://download.docker.com/linux/static/stable/x86_64/

目前最新版本:https://download.docker.com/linux/static/stable/x86_64/docker-28.0.1.tgz

Docker-Compose下载地址:https://github.com/docker/compose/releases

下载最新版本:https://github.com/docker/compose/releases/download/v2.33.1/docker-compose-linux-x86_64

mkdir -p /data/soft/docker #创建docker安装包存放目录

上传下载好的安装包到/data/soft/docker目录

1.3创建docker配置、启动、关闭文件

mkdir -p /data/server/docker #创建docker数据存放目录,默认目录是/var/lib/docker

mkdir -p /data/server/docker/etc #创建docker配置文件放存放目录,默认是/etc/docker/daemon.json

chmod 755 -R /data/server/docker/ #设置权限

1.4创建启动文件

vi /data/soft/docker/docker.service #编辑

[Unit]

Description=Docker Application Container Engine

Documentation=https://docs.docker.com

After=network-online.target firewalld.service

Wants=network-online.target

[Service]

Type=notify

ExecStart=/usr/bin/dockerd --data-root=/data/server/docker --config-file=/data/server/docker/etc/daemon.json

ExecReload=/bin/kill -s HUP $MAINPID

LimitNOFILE=infinity

LimitNPROC=infinity

LimitCORE=infinity

Delegate=yes

KillMode=process

Restart=on-failure

StartLimitBurst=3

StartLimitInterval=60s

[Install]

WantedBy=multi-user.target

:wq! #保存退出

1.5设置daemon.json配置文件,修改默认存储目录和运行模式,添加镜像地址

#Docker默认使用/var/lib/docker作为存储目录,用来存放拉取的镜像和创建的容器

#/var目录一般都位于系统盘,我们修改Docker的默认存储目录到数据盘/data/server/docker

vi /data/soft/docker/daemon.json #注意格式缩进

{

"registry-mirrors": [

"http://docker.m.daocloud.io",

"http://mirror.ccs.tencentyun.com",

"http://docker.rainbond.cc"

],

"insecure-registries": [

"docker.m.daocloud.io",

"mirror.ccs.tencentyun.com",

"docker.rainbond.cc"

],

"debug": true,

"experimental": true

}

:wq! #保存退出

1.6创建安装脚本

vi /data/soft/docker/install.sh #创建安装脚本

#!/bin/bash

echo '解压docker安装包'

cd /data/soft/docker

tar -zxvf $1

echo '将docker目录移动到/usr/bin目录下'

mv docker/* /usr/bin

echo '将docker.service 移到/usr/lib/systemd/system/ 目录'

cp docker.service /usr/lib/systemd/system/

echo '将配置文件daemon.json移到/data/server/docker/etc/目录'

cp daemon.json /data/server/docker/etc/

echo '添加文件执行权限'

chmod +x /usr/lib/systemd/system/docker.service

echo '重新加载配置文件'

systemctl daemon-reload

echo '启动docker'

systemctl start docker.service

echo '设置开机自启'

systemctl enable docker.service

echo 'docker安装成功'

:wq! #保存退出

chmod +x /data/soft/docker/install.sh #添加执行权限

说明:

在Linux系统中,/usr/bin目录是用于存放用户可执行的命令或程序的标准目录之一。

将Docker的可执行文件拷贝到/usr/bin目录下是为了方便用户在任何位置都可以直接执行Docker命令,而不需要指定完整的路径。

/usr/bin目录是用于存放系统范围的可执行文件的标准目录,包括Docker的二进制文件和其他重要组件。对此目录进行任意更改可能会导致Docker无法正常运行或引发系统稳定性问题。

1.7安装docker

cd /data/soft/docker

sh install.sh docker-28.0.1.tgz

systemctl daemon-reload #重新加载配置

systemctl restart docker.service #重启docker

docker info #检查docker镜像加速器是否配置成功

1.8测试docker是否可用

docker pull hello-world #下载一个镜像实例

docker run hello-world #运行一个镜像实例

docker images hello-world #查看该镜像的信息

docker info |grep "Docker Root Dir" #查看docker数据存储目录

#相关检测命令

cat /data/server/docker/etc/daemon.json | jq .

systemctl daemon-reload

systemctl restart docker

docker info

docker info | grep Cgrou

1.9安装Docker-Compose

Docker-Compose是docker提供的一个命令行工具,用来定义和运行由多个容器组成的应用。

使用Docker-Compose,我们可以通过yaml文件定义应用程序的各个服务,并由单个命令完成应用的创建和启动。

Docker-Compose依靠Docker进行工作,必须确保已经安装了docker才能安装Docker-Compose

#把docker-compose安装在/usr/bin/目录下

#拷贝Docker-Compose到/usr/bin目录

cp /data/soft/docker/docker-compose-linux-x86_64 /usr/bin/docker-compose

#添加执行权限

chmod +x /usr/bin/docker-compose

#查看版本

docker-compose --version

2、安装JumpServer

要先注册登录才能下载

2.1下载JumpServer

https://community.fit2cloud.com/#/products/jumpserver/downloads

https://community.fit2cloud.com/#/download/jumpserver/v4-7-0

下载最新版本:jumpserver-ce-v4.7.0-x86_64.tar.gz

上传安装包jumpserver-ce-v4.7.0-x86_64.tar.gz到/opt目录

2.2安装JumpServer

cd /opt

tar zxvf jumpserver-ce-v4.7.0-x86_64.tar.gz

cd jumpserver-ce-v4.7.0-x86_64

#查看配置文件,可以默认不用修改

cat config-example.txt

#安装,根据提示选择,如果不清楚默认敲回车键就行

./jmsctl.sh install

#启动jumpserver

./jmsctl.sh start

访问地址:

http://192.168.21.190:80

Default username: admin Default password: ChangeMe

根据提示修改密码,修改成功后重新登录

jumpserver使用方法可以参考官方文档和知识库

https://docs.jumpserver.org/zh/v4/

https://kb.fit2cloud.com/categories/jumpserver

基本思路是:添加资产-添加用户-资产授权

#其他相关命令

#停止

./jmsctl.sh down

#卸载

./jmsctl.sh uninstall

#帮助

./jmsctl.sh -h

cd /opt/jumpserver/config

#修改配置文件

vi /config.txt

cd jumpserver-ce-v4.7.0-x86_64

./jmsctl.sh restart #重启后生效

#nginx代理Jumpserver

1、直接代理

# 定义服务器监听端口和域名/IP

server {

listen 8089; # 监听外部访问的端口

server_name 10.252.189.207;

# 反向代理 Jumpserver 的 HTTP 请求

location / {

proxy_pass http://192.168.137.85:8089;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

# 超时时间设置

proxy_connect_timeout 60s;

proxy_read_timeout 120s;

proxy_send_timeout 120s;

# 支持 WebSocket 协议(如果需要)

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

}

# 反向代理 Jumpserver 的 WebSocket 请求

location /ws/ {

proxy_pass http://192.168.137.85:5000; # WebSocket 真实地址和端口

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header X-Forwarded-Proto $scheme;

# 超时时间设置

proxy_connect_timeout 60s;

proxy_read_timeout 300s;

proxy_send_timeout 300s;

}

}

2、二级目录代理

location /jms {

# 将 proxy_pass 替换成对应服务地址即可

proxy_pass http://10.252.189.207:8089/;

proxy_set_header Accept-Encoding "";

rewrite "/jms/(.*)$" /$1 break;

proxy_http_version 1.1;

proxy_buffering off;

proxy_request_buffering off;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

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_redirect ~^/(.*) http://$http_host/jms/$1;

sub_filter_types *;

sub_filter_once off;

sub_filter '/static/' '/jms/static/';

sub_filter '/ui/' '/jms/';

sub_filter '/api/' '/jms/api/';

sub_filter '/core/' '/jms/core/';

sub_filter '/ws/notifications/' '/jms/ws/notifications/';

sub_filter '/luna/' '/jms/luna/';

sub_filter '/koko/' '/jms/koko/';

sub_filter '/lion' '/jms/lion/';

sub_filter '/media/' '/jms/media/';

sub_filter '/omnidb/' '/jms/omnidb/';

sub_filter '/player/' '/jms/player';

sub_filter '/theme/' '/jms/theme/';

sub_filter '/ui/assets/' '/jms/ui/assets/';

}

至此,Linux系统下安装部署JumpServer堡垒机完成。

     

  系统运维技术交流QQ群:①185473046 系统运维技术交流□Ⅰ ②190706903 系统运维技术交流™Ⅱ ③203744115 系统运维技术交流™Ⅲ

给我留言

您必须 [ 登录 ] 才能发表留言!



Copyright© 2011-2025 系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接
陕ICP备11001040号-3