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端口
备注:配置文件修改说明
# 测试使用可以只修改数据库配置部分
# 生产使用需要配置以下参数:
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注册:会话管理-终端管理
# 测试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配置
直接通过界面配置:系统设置-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"}
在freeipa中添加一个用户即使用该用户进行jumpserver认证。