一、Jumpserver介绍
Jumpserver是全球首款完全开源的堡垒机,使用GNU GPL v2.0开源协
议,是符合4A的专业运维审计系统。
Jumpserver使用Python/Django进行开发,遵循Web2.0规范,配备了业界领先的Web Terminal解决方案,交互界美观,用户体验好。
二、核心功能
- 身份验证
1.1 登录认证
1.1.1 资源统一登录和认证
1.1.2 LDAP认证
1.1.3 支持OpenID,实现单点登录
1.2 多因子认证
1.2.1 MFA(Goole Authenticator) - 账号管理
2.1 集中账号管理
2.1.1 系统用户管理
2.1.2 管理用户管理
2.2 统一密码管理
2.2.1 资产密码托管
2.2.2 自动生成密码
2.2.3 密码自动推送
2.2.4 密码过期设置
2.3 批量密码更改(X-PACK)
2.3.1 定期批量修改密码
2.3.2 生成随机密码
2.4 多云环境的资产纳管(X-PACK)
2.4.1 对私有云、公有云资产统一纳管 - 授权控制
3.1 资产授权管理
3.1.1 资产树
3.1.2 资产或资产组灵活授权
3.1.3 节点内资产自动继承授权
3.2 RemoteApp(X-PACK)
3.2.1 实现更细粒度的应用级授权
3.3 组织管理(X-PACK)
3.3.1 实现多租户管理,权限隔离
3.4 多维度授权
3.4.1 可对用户、用户组或系统角色授权
3.5 指令限制
3.5.1 限制特权指令使用,支持黑白名单
3.6 统一文件传输
3.6.1 SFTP 文件上传/下载
3.6.2 文件管理
3.6.3 Web SFTP 文件管理 - 安全审计
4.1 会话管理
4.1.1 在线会话管理
4.1.2 历史会话管理
4.2 录像管理
4.2.1 Linux录像支持
4.2.2 Windows录像支持
4.3 指令审计
4.3.1 指令记录
4.4 文件传输审计
4.1.1上传/下载记录审计
三、Jumpserver部署
- 安装部署Docker
[root@jumpserver ~]# yum update
[root@jumpserver ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@jumpserver ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@jumpserver ~]# yum install docker-ce
- 设置ustc镜像
[root@jumpserver ~]# cat /etc/docker/daemon.json #写入一下内容
{
"registry-mirrors": ["加速地址"] #可在阿里云获取
}
- 安装mysql5.7
[root@jumpserver ~]# mkdir -p /data/mysql/data
[root@jumpserver ~]# docker run -d --name=tcd_mysql --restart=always \-e MYSQL_ROOT_PASSWORD=abc@123 -p 3306:3306 -v /data/mysql/data/:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
[root@jumpserver ~]# docker ps -a
- 创建jumpserver数据库
[root@jumpserver ~]# docker exec -it tcd_mysql /bin/bash
root@9806b783620d:/# mysql -uroot -pabc@123
mysql> create database jumpserver default charset 'utf8mb4';
mysql> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'abc@123;
mysql> flush privileges;
mysql> exit
root@9806b783620d:/# mysql -ujumpserver -pabc@123
mysql> show databases;
#jumpserver数据库已经准备完成
5. 安装Redis用户jumpserver存储会话信息
[root@jumpserver ~]# mkdir -p /data/redis/data
[root@jumpserver ~]# docker run -d -it --name=tcd_redis -p 6379:6379 -v /data/redis/data:/data --restart=always --sysctl net.core.somaxconn=1024 redis:4.0.10 --requirepass "abc@123"
[root@jumpserver ~]# docker ps -a
- 生成密钥
[root@jumpserver ~]# 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
[root@jumpserver ~]# 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
- 安装jumpserver
[root@jumpserver ~]# mkdir -p /data/jumpserver
[root@jumpserver ~]# docker run -d --name=tcd_jumpserver -h jumpserver --restart=always \
>-v /data/jumpserver:/opt/jumpserver/data/media \
>-v 80:80 \
>-p 2222:2222 \
>-e SECRET_KEY=$SECRET_KEY \
>-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
>-e DB_HOST=192.168.XXX.XXX \ # 安装数据库的服务器
>-e DB_PORT=3306 \
>-e DB_USER=jumpserver \
>-e DB_PASSWORD="abc@123" \
>-e DB_NAME=jumpserver \
>-e REDIS_HOST=192.168..XXX.XXX \ # 安装redis的服务器
>-e REDIS_PORT=6379 \
>-e REDIS_PASSWORD="abc@123" \
jumpserver/jms_all:v2.5.0
- 验证
浏览器输入:192.168.XXX.XXX:80