Linux其他教程文章可以访问本人博客
https://blog.yangwn.top/index.php/archives.html
JumpServer
项目简介
#项目简介
JumpServer是全球首款开源的堡垒机
#项目地址
https://github.com/jumpserver/jumpserver
#项目部署官方文档
https://docs.jumpserver.org/zh/master/
#堡垒机比跳板机多了日志收集、实时监控、集中报警的功能
使用官方脚本部署
- 部署前准备
#部署要求
全新安装的 Centos7.x
需要连接互联网
使用root用户执行
#部署版本适用于
v2.7.1
#关闭防火墙和selinux
systemctl disable firewalld.service
systemctl stop firewalld.service
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
#关闭了selinux需要重启服务器生效
reboot
#不需要安装docker(脚本会自动安装docker)
- 开始部署
JumpServer
#设置容器镜像下载服务变量
export DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
#下载并且解压JumpServer
cd /opt
wget https://github.com/jumpserver/installer/releases/download/v2.7.1/jumpserver-installer-v2.7.1.tar.gz
tar -xf jumpserver-installer-v2.7.1.tar.gz
cd jumpserver-installer-v2.7.1
#配置文件(默认不修改也可以)
vim config-example.txt
#使用方式
./jmsctl.sh install #安装
./jmsctl.sh check_update #更新
#安装结束
>>> 安装完成了
1. 可以使用如下命令启动
./jmsctl.sh start
2. 其它一些管理命令
./jmsctl.sh stop
./jmsctl.sh restart
./jmsctl.sh backup
./jmsctl.sh upgrade
./jmsctl.sh --help
3. Web访问
http://192.168.1.7:8080
https://192.168.1.7:8443
默认用户: admin 默认密码: admin
4. SSH/SFTP访问
ssh [email protected] -p2222
sftp -P2222 [email protected]
使用官方容器部署
- 部署前准备
#部署要求
全新安装的 Centos7.x
#部署版本适用于
v1.4.5 至 v2.7.1
#关闭防火墙和selinux
systemctl disable firewalld.service
systemctl stop firewalld.service
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
#关闭了selinux需要重启服务器生效
reboot
#yum源准备(必须有epel、Base、docker-ce源)
wget -O /tmp/system.sh https://index.swireb.cn/shell/system.sh && sh /tmp/system.sh #通过脚本优化yum源(使用的为阿里云yum仓库)
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum clean all && yum makecache
#安装docker
yum -y install docker-ce
systemctl daemon-reload && systemctl enable --now docker
#配置docker镜像加速
vi /etc/docker/daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"],
"live-restore": true
}
systemctl daemon-reload && systemctl restart docker
- 开始部署
JumpServer
#生成随机SECRET_KEY(会写入环境变量文件中)
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
#生成随机BOOTSTRAP_TOKEN(会写入环境变量文件中)
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
#宿主机创建目录用于容器挂载数据库
mkdir -p /opt/jumpserver/{
data,mysql}
#使用内置数据库和redis(一种是使用bridge的网络模式、一种是使用的host的网络模式、任选其一)
docker run --name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-e DB_USER=jumpserver \
-e DB_PASSWORD=jumpserver \
-e DB_NAME=jumpserver \
-v /opt/jumpserver/data:/opt/jumpserver/data \
-v /opt/jumpserver/mysql:/var/lib/mysql \
jumpserver/jms_all
docker run --name jms_all -d --network host \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-e DB_USER=jumpserver \
-e DB_PASSWORD=jumpserver \
-e DB_NAME=jumpserver \
-v /opt/jumpserver/data:/opt/jumpserver/data \
-v /opt/jumpserver/mysql:/var/lib/mysql \
jumpserver/jms_all
#使用外置数据库和redis(MySQL >= 5.7 Redis >= 5.0 MariaDB >= 10.2)
docker run --name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-v /opt/jumpserver/data:/opt/jumpserver/data \
-e DB_HOST=IP \ #指定数据库地址(外置数据库地址)
-e DB_PORT=3306 \ #指定数据库端口
-e DB_USER=jumpserver \ #指定数据库用户
-e DB_PASSWORD=jumpserver \ #指定数据库密码
-e DB_NAME=jumpserver \ #指定数据库名称
-e REDIS_HOST=IP \ #指定redis地址(外置redis地址)
-e REDIS_PORT=6379 \ #指定redis端口
-e REDIS_PASSWORD= \ #指定redis密码(可以为空)
jumpserver/jms_all
#使用外置mysql创建数据库(安装自行百度)
create database jumpserver default charset 'utf8' collate 'utf8_bin';
grant all on jumpserver.* to 'jumpserver'@'%' identified by 'jumpserve';
访问JumpServer
#访问地址
http://IP
#访问密码
admin
admin
#初次访问的时候加载的有点慢(等待一会即可)
第一次登录的时候必须修改admin用户的密码