开源JumpServer堡垒机⼿把⼿保姆级教程JumpServer 堡垒机
⼀、简介
1.总体介绍
JumpServer 是全球⾸款开源的堡垒机,使⽤ GNU GPL v2.0 开源协议,是符合 4A 规范的运维安全审计系统。
JumpServer 使⽤ Python / Django 为主进⾏开发,遵循 Web 2.0 规范,配备了业界领先的 Web
Terminal ⽅案,交互界⾯美观、⽤户体验好。
JumpServer 采纳分布式架构,⽀持多机房跨区域部署,⽀持横向扩展,⽆资产数量及并发限制。
改变世界,从⼀点点开始。
2.特⾊优势
开源: 零门槛,线上快速获取和安装;
分布式: 轻松⽀持⼤规模并发访问;
⽆插件: 仅需浏览器,极致的 Web Terminal 使⽤体验;
多云⽀持: ⼀套系统,同时管理不同云上⾯的资产;
云端存储: 审计录像云端存储,永不丢失;
多租户: ⼀套系统,多个⼦公司和部门同时使⽤;
多应⽤⽀持: 数据库,Windows远程应⽤,Kubernetes。
3.功能列表
⾝份认证登录认证资源统⼀登录与认证Authentication LDAP/AD认证
RADIUS 认证
OpenID 认证(实现单点登录)
CAS 认证 (实现单点登录)
钉钉认证(扫码登录)
企业认证 (扫码登录)
MFA认证MFA ⼆次认证(Google Authenticator)
RADIUS ⼆次认证
登录复核⽤户登录⾏为受管理员的监管与控制
登录限制⽤户登录来源 IP 受管理员控制(⽀持⿊/⽩名单)账号管理Account集中账号管理⽤户管理
系统⽤户管理
统⼀密码资产密码托管
⾃动⽣成密码
⾃动推送密码
密码过期设置
密码过期设置⾝份认证登录认证资源统⼀登录与认证
批量改密定期批量改密
多种密码策略
多云纳管对私有云、公有云资产⾃动统⼀纳管
收集⽤户⾃定义任务定期收集主机⽤户
密码匣⼦统⼀对资产主机的⽤户密码进⾏查看、更新、测试操作
授权控制Authorization多维授权对⽤户、⽤户组、资产、资产节点、应⽤以及系统⽤户进⾏授权
资产授权资产以树状结构进⾏展⽰
资产和节点均可灵活授权
节点内资产⾃动继承授权
⼦节点⾃动继承⽗节点授权
应⽤授权实现更细粒度的应⽤级授权
MySQL 数据库应⽤、RemoteApp 远程应⽤
动作授权实现对授权资产的⽂件上传、下载以及连接动作的控制
时间授权实现对授权资源使⽤时间段的限制
特权指令实现对特权指令的使⽤(⽀持⿊⽩名单)
命令过滤实现对授权系统⽤户所执⾏的命令进⾏控制
⽂件传输SFTP ⽂件上传/下载
⽂件管理实现 Web SFTP ⽂件管理
⼯单管理⽀持对⽤户登录请求⾏为进⾏控制
访问控制登录资产复核(通过 SSH/Telnet 协议登录资产)
命令执⾏复核
组织管理实现多租户管理与权限隔离安全审计Audit操作审计⽤户操作⾏为审计
会话审计
在线会话内容监控
在线会话内容审计
历史会话内容审计
录像审计⽀持对 Linux、Windows 等资产操作的录像进⾏回放审计
⽀持对 RemoteApp、MySQL 等应⽤操作的录像进⾏回放审计
指令审计⽀持对资产和应⽤等操作的命令进⾏审计
⽂件传输可对⽂件的上传、下载记录进⾏审计
数据库审计Database连接⽅式命令⽅式
Web UI⽅式
⽀持的数据库MySQL
Oracle
Mariadb
PostgreSQL
⾝份认证登录认证资源统⼀登录与认证
功能亮点语法亮点
SQL格式化
⽀持快捷键
⽀持选中执⾏
SQL历史查询
⽀持页⾯创建 DB, TABLE
会话审计命令记录
录像回放
⼆、安装配置
说明:全新安装的Linux,需要连接互联⽹,使⽤root⽤户执⾏
外置环境要求
JumpServer 所在机器的 CPU 需要⾄少 2核
JumpServer 所在机器的 内存 需要⾄少 4G
推荐使⽤外置 数据库 和 Redis, ⽅便⽇后扩展升级
关闭防⽕墙和SELinux
推荐使⽤外置数据库和Redis.
DB Version Cache Version
MySQL>=5.7Redis>=6.0
MariaDB>=10.2
systemctl stop frewalld 关闭防⽕墙
setenforce 0关闭selinux
容器镜像服务
区域镜像仓库地址配置⽂件 /opt/jumpserver/ 华北-北京⼀huaweicloud DOCKER_IMAGE_huaweicloud 华北-北京四huaweicloud DOCKER_IMAGE_huaweicloud 华南-⼴州huaweicloud DOCKER_IMAGE_huaweicloud 华东-上海huaweicloud DOCKER_IMAGE_huaweicloud 1.⾃动部署
1.1官⽅命令执⾏⼀键部署安装
这个命令是由官⽅⽂档提供,对于⽹络等各⽅⾯要求⽐较⾼,还有对GitHub的访问限制等,可能⽆法成功,笔者多次尝试后⽆法成功,因此不推荐使⽤此命令。
curl -sSL github/jumpserver/jumpserver/releases/download/v2.10.2/quick_start.sh |bash
配置⽂件/opt/jumpserver/mysql下载出现installer
安装
cd /opt/jumpserver-installer-v2.10.2
./jmsctl.sh install
1.2脚本部署安装
官⽅提供的命令由于⽹络等各⽅⾯的限制可能执⾏不成功,因此我采⽤先将shell脚本下载到本地在上传到服务器的⽅式进⾏部署。
shell脚本
#!/bin/bash
function prepare_check(){
isRoot=`id -u -n |grep root |wc -l`
if["x$isRoot"!="x1"];then
echo -e "[\033[31m ERROR \033[0m] Please use root to execute the installation script (请⽤ root ⽤户执⾏安>装脚本)"
exit1
fi
processor=`cat /proc/cpuinfo|grep"processor"|wc -l`
if[$processor -lt 2];then
echo -e "[\033[31m ERROR \033[0m] The CPU is less than 2 cores (CPU ⼩于 2核,JumpServer 所在机器的 CPU 需>要⾄少 2核)"
exit1
fi
memTotal=`cat /proc/meminfo |grep MemTotal |awk'{print $2}'`
if[$memTotal -lt 3750000];then
echo -e "[\033[31m ERROR \033[0m] Memory less than 4G (内存⼩于 4G,JumpServer 所在机器的内存需要⾄少 4G)"
exit1
fi
}
function install_soft(){
if command -v dnf > /dev/null;then
if["$1"=="python"];then
dnf -q -y install python2
ln -s /usr/bin/python2 /usr/bin/python
else
dnf -q -y install$1
fi
elif command -v yum > /dev/null;then
elif command -v yum > /dev/null;then
yum -q -y install$1
elif command -v apt> /dev/null;then
apt-get -qqy install$1
elif command -v zypper> /dev/null;then
zypper -q -n install$1
elif command -v apk > /dev/null;then
apk add -q $1
else
echo -e "[\033[31m ERROR \033[0m] Please install it first (请先安装) $1 "
exit1
fi
}
function prepare_install(){
for i in curl wget zip python;do
command -v $i&>/dev/null || install_soft $i
done
}
function get_installer(){
echo"download install script to /opt/jumpserver-installe (开始下载安装脚本到 /opt/jumpserver-installe)"
Version=$(curl -s 'api.github/repos/jumpserver/installer/releases/latest'|grep"tag_name"|head -n 1|awk -F ":"'{print $2}'|sed's/\"//g;s/,//g; s/ //g')
if[!"$Version"];then
if[!"$Version"];then
echo -e "[\033[31m ERROR \033[0m] Network Failed (请检查⽹络是否正常或尝试重新执⾏脚本)"
fi
cd /opt
if[! -d "/opt/jumpserver-installer-$Version"];then
wget -qO jumpserver-installer-$ github/jumpserver/installer/releases/download/$Version/jumpserver-installer-$ || {
rm -rf /opt/jumpserver-installer-$
echo -e "[\033[31m ERROR \033[0m] Failed to download jumpserver-installer (下载 jumpserver-installer 失败, 请检查⽹络是否正常或尝试重新执⾏脚本)"
exit1
}
tar -xf /opt/jumpserver-installer-$ -C /opt ||{
rm -rf /opt/jumpserver-installer-$Version
echo -e "[\033[31m ERROR \033[0m] Failed to unzip jumpserver-installe (解压 jumpserver-installer 失败, 请检查⽹络是否正常或尝试重新执⾏脚本)"
exit1
}
rm -rf /opt/jumpserver-installer-$
fi
}
function config_installer(){
cd /opt/jumpserver-installer-$Version
JMS_Version=$(curl -s 'api.github/repos/jumpserver/jumpserver/releases/latest'|grep"tag_name"|head -n 1|awk -F ":"'{print $2}'|sed's/\" //g;s/,//g;s/ //g')
if[!"$JMS_Version"];then
echo -e "[\033[31m ERROR \033[0m] Network Failed (请检查⽹络是否正常或尝试重新执⾏脚本)"
exit1
fi
sed -i "s/VERSION=.*/VERSION=$JMS_Version/g" /opt/jumpserver-installer-$v
./jmsctl.sh install
}
function main(){
prepare_check
prepare_install
get_installer
config_installer
}
main
安装
cd /opt/jumpserver-installer-v2.10.2
./jmsctl.sh install
安装完成后,可以使⽤如下命令启动,然后访问
./jmsctl.sh start
其它⼀些管理命令
./jmsctl.sh stop 停⽌
./jmsctl.sh restart 重启
./jmsctl.sh backup ⽀持
./jmsctl.sh upgrade 升级
./jmsctl.sh --help 更多帮助
web访问
192.168.17.167:8080
192.168.17.167:8443
默认⽤户: admin 默认密码: admin
SSH/SFTP访问
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论