环境:虚拟机 centos7。

0x00 安装

  • 设置yum源:yum-config-manager –add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 使用root权限更新yum包:yum -y update
  • 切换目录:cd /opt
  • 下载:https://github.com/jumpserver/installer/releases/download/v3.10.9/jumpserver-installer-v3.10.9.tar.gz
  • 解压:tar -xf jumpserver-installer-v3.10.9.tar.gz
  • 切换目录:cd jumpserver-installer-v3.10.9/
  • 安装:./jmsctl.sh install

如果安装过程较慢记得给docker加速:

# 1.创建一个目录
sudo mkdir -p /etc/docker

# 2.编写配置文件
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://reg-mirror.qiniu.com"
]
}
EOF

# 3.重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker

常用使用方法和一些默认配置:

  • 位置:cd /opt/jumpserver-installer-v3.10.9
  • 启动:./jmsctl.sh start
  • 停止:./jmsctl.sh stop
  • 重启:./jmsctl.sh restart
  • 卸载:./jmsctl.sh uninstall
  • 后台默认密码:admin/admin(首次进入会要求改密码)
  • ssh:ssh -p2222 admin@<ip>
  • ftp:sftp -P2222 admin@<ip>

0x01 离线安装

  • docker离线安装包下载:戳我
  • 将离线安装包解压:tar -xf docker.tgz
  • 解压的docker文件夹全部移动至/usr/bin目录:cp -p docker/* /usr/bin
  • 将docker注册为系统服务:vim /usr/lib/systemd/system/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
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target
  • 添加文件权限:chmod +x /etc/systemd/system/docker.service
  • 重载配置文件:systemctl daemon-reload
  • 启动docker:systemctl start docker
  • 设置开机自启:systemctl enable docker.service
  • (验证):systemctl status docker / docker -v
  • jumpserver离线安装包下载:戳我
  • cd /opt
  • tar -xf jumpserver-offline-installer-v3.10.9-amd64.tar.gz
  • cd jumpserver-offline-installer-v3.10.9-amd64
  • ./jmsctl.sh install

0x02 使用

eg:员工张三(zhangsan),其运维服务器192.168.187.128。现在需要添加服务器到jumpserver,并允许张三登录。

  • 控制台 -> 用户管理 -> 用户列表 -> 创建账号“zhangsan”
  • 控制台 -> 资产管理 -> 设置资产树 -> 创建资产-主机
  • 账号 -> 添加 (支持密码/ssh密钥文件)
  • 资产管理 -> 资产授权 -> 创建资产授权规则。(这里注意节点)
  • 如果张三忘记密码,管理员重置步骤如下:
[root@jmupserver ~]# docker exec -it jms_core /bin/bash #进入容器内部
root@94b823ed3113:/opt/jumpserver# cd /opt/jumpserver/apps/
root@94b823ed3113:/opt/jumpserver/apps# python manage.py shell
Python 3.8.13 (default, Mar 17 2022, 06:22:23)
Type 'copyright', 'credits' or 'license' for more information
IPython 8.1.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: from users.models import User
In [2]: u = User.objects.get(username='test') #test 是您要修改的用户名
In [3]: u.reset_password('password') #password 是您要重置的密码
In [4]: u.save()
In [5]: exit
root@94b823ed3113:/opt/jumpserver/apps#
  • 连接空闲时间超过30分钟会断开连接,可以在设置里调大
系统设置 -> 安全设置 -> 会话安全 -> 连接最大空闲时间 (分)
  • 资源清理
docker exec -it jms_core /bin/bash
/opt/jumpserver/data/media/replay/
系统设置 -> 系统任务 -> 定期清理
  • 录像回放/下载
审计台 -> 会话审计 -> 会话记录 -> 回放会话/下载录像
  • 备份数据库
./jmsctl.sh backup_db
  • 恢复数据库
./jmsctl.sh restore_db <文件名>

0x03 远程应用发布机搭建

环境:Windows Server 2016

  • 工作台->Web终端->帮助->下载->openSSH-win64.msi->放到发布机上安装
  • 发布机:查看本地服务->看到OpenSSH代表安装成功
  • 堡垒机:系统设置->远程应用->应用发布机->添加
  • 堡垒机:系统设置->远程应用->应用发布机->详情->初始化安装部署
  • 发布机:服务器管理->添加角色和功能->安装远程桌面授权
  • 发布机:服务器管理->工具->RemoteDeskServices->远程桌面管理器->激活服务器
  • 发布机:连接方法->Web 服务器
  • 访问activate.microsoft.com,输入产品ID进行激活
  • 继续下一步,选择每用户访问许可,数量自己定,协议号6565792

0x04 排雷

  • 空间不足(failed to register layer write no space left on device):戳我
  • 安装centos7图形化界面:戳我
  • 无法连接远程应用发布机:考虑关闭防火墙
  • 初始化安装部署卡死:考虑更改协议,从ssh变成winrm,然后在发布机用管理员权限powershell执行如下命令:
set-executionpolicy remotesigned
winrm quickconfig
winrm set winrm/config/service/auth '@{Basic="true"}'
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
  • Download Jumpserver Tinker installer 报错:堡垒机->系统设置->远程应用->应用发布机->更新->自动化->Core 服务地址,必须完整填写jumpserver登录的地址,必须带http,或https,不要127.0.0.1