Skip to content

jumpserver 开源堡垒机

官网地址

安装与使用

官方安装文档

Centos7安装Jumpserver

# 关闭防火墙与SELinux
systemctl disable firewalld.service
systemctl stop firewalld.service

vim /etc/selinux/config

# 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文。
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
  • 准备python3和虚拟环境
yum install epel-release gcc.x86_64 -y
yum install python36.x86_64 python36-devel.x86_64 -y

# 建立python虚拟环境
cd /opt/
python3.6 -m venv py3
source /opt/py3/bin/activate

# 自动载入python虚拟环境配置(个人觉得没有必要)
  • 安装Jumpserver
git clone https://github.com/jumpserver/jumpserver.git

# 解决环境依赖
cd /opt/jumpserver/requirements
yum install $(cat rpm_requirements.txt) -y # rpm包依赖

pip install --upgrade pip setuptools
pip install -r requirements.txt # python库依赖

# 安装Redis
yum install redis.x86_64 -y
systemctl start redis.service

# 安装MySQL
yum install mariadb-devel.x86_64 mariadb-libs.x86_64 mariadb-server.x86_64 mariadb.x86_64 -y

# 配置数据库
# 数据库:jumpserver
create database jumpserver default charset 'utf8';

# 修改jumpserver配置文件
cd /opt/jumpserver/ && cp config_example.py config.py
# 修改数据库部分,按照官网来进行修改

# 初始化数据库
cd /opt/jumpserver/utils/
bash make_migrations.sh

# 运行Jumpserver
cd /opt/jumpserver
./jms start all # 后台运行指定-d参数

# 访问:admin/admin
# 我这里因为jumpserver和freeipa在同一台服务器上,为了积极端口冲突,我修改为8888端口

jumpserver-1

备注:配置文件修改说明

# 测试使用可以只修改数据库配置部分
# 生产使用需要配置以下参数:
SECRET_KEY = '****'
BOOTSTRAP_TOKEN = '*****'

安装SSH Server 和 WebSocket Server

# 激活python3环境
cd /opt
git clone https://github.com/jumpserver/coco.git

# 安装依赖
cd /opt/coco/requirements/
yum install $(cat rpm_requirements.txt) -y
pip install -r requirements.txt

# 修改配置文件
cd /opt/coco
mkdir keys logs
cp conf_example.py conf.py

vim conf.py # 按照官网进行配置
# 这里的BOOTSTRAP_TOKEN记得与jumpserver的BOOTSTRAP_TOKEN一致
# 一定要修改jumpserver的地址

# 启动
cd /opt/coco/
./cocod start # -d 后台运行
# 停止任务 ./cocod stop

# 访问jumpserver接受coco注册:会话管理-终端管理

jumpserver-2

# 测试coco
ssh -p 2222 admin@ipa.bloodzer0.com
# 密码就是admin的密码

配置开机自启

  • jumpserver
sed -i "s/START_TIMEOUT = 15/START_TIMEOUT = 40/g" /opt/jumpserver/jms

vim /usr/lib/systemd/system/jms.service
[Unit]
Description=jms
After=network.target mariadb.service redis.service

[Service]
Type=forking
Environment="PATH=/opt/py3/bin"
ExecStart=/opt/jumpserver/jms start all -d
ExecReload=
ExecStop=/opt/jumpserver/jms stop

[Install]
WantedBy=multi-user.target
  • coco
vim /usr/lib/systemd/system/coco.service
[Unit]
Description=coco
After=network.target jms.service

[Service]
Type=forking
Environment="PATH=/opt/py3/bin"
ExecStart=/opt/coco/cocod start -d
ExecReload=
ExecStop=/opt/coco/cocod stop

[Install]
WantedBy=multi-user.target

系统使用

  • 用户管理

创建管理用户:管理用户是服务器的 root,或拥有 NOPASSWD: ALL sudo 权限的用户,Jumpserver 使用该用户来推送系统用户、获取资产硬件信息等。

创建系统用户:创建一个系统用户:系统用户是 Jumpserver 跳转登录资产时使用的用户,可以理解为登录资产用户,如 web, sa, dba。(此用户需要在系统初始化的时候安装好)

添加普通用户:此用户用于登录jumpserver

LDAP配置

freeipa安装

直接通过界面配置:系统设置-LDAP设置

LDAP地址:ldap://ipa.bloodzer0.com:389
绑定DN:cn=users,cn=accounts,dc=bloodzer0,dc=com
密码:# 你设置的LDAP密码
用户OU:cn=users,cn=accounts,dc=bloodzer0,dc=com
用户过滤器:(uid=%(user)s)
LDAP属性映射:{"username": "uid", "name": "cn", "email": "mail"}

jumpserver-3

在freeipa中添加一个用户即使用该用户进行jumpserver认证。