文章目录
jumpserver
一、jumpserver堡垒机
1、jumpserver简介
Jumpserver是一款由python编写, Django开发的开源跳板机/堡垒机系统, 助力互联网企业高效 用户、资产、权限、审计 管理的跳板机
1、jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统
2、Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好
3、Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发访问限制
2、jumpserver功能
1)#统一认证
2)#资产管理
3)#统一授权
4)#审计
5)#支持LDAP认证(轻型目录访问协议 Light Directory Access Protocol)
6)#Web terminal(页面站点)
7)#SSH Server
8)#支持Windows RDP (远程窗口)
3、jumpserver的特点
1)#完全开源,GPL授权
2)#Python编写,容易再次开发
3)#实现了跳板机基本功能,身份认证、访问控制、授权、审计 、批量操作等。
4)#集成了Ansible,批量命令等
5)#支持WebTerminal
6)#Bootstrap编写,界面美观
7)#自动收集硬件信息
8)#录像回放
9)#命令搜索
10)#实时监控
11)#批量上传下载
二、jumpserver的实现(安装调试)
1、jumpserver的安装
1)#Jumpserver 环境要求:
硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)
操作系统: Linux 发行版 x86_64
Python = 3.6.x
Mysql Server ≥ 5.6
Mariadb Server ≥ 5.5.56
Redis
2)#jumpserver的下载
安装Git :yum install git
使用克隆下载源代码:git clone --depth=1 https://github.com/jumpserver/jumpserver.git
2、jumpserver的调试
下载jumpserver代码—>推送jumpserver代码—>创建jumpserver目录—>编辑jumpserver代码—>使用解释器执行代码文件(运行代码脚本)
#编辑jumpserver使用脚本
[root@local ~]# vim /jumpserver/quick_start.sh
#!/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 用户执行安装脚本)"
exit 1
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核)"
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)"
exit 1
fi
function install_soft() {
dnf -q -y install python2
ln -s /usr/bin/python2 /usr/bin/python
else
dnf -q -y install $1
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
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)"
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-$Version.tar.gz https://github.com/jumpserver/installer/releases/download/$Version/jumpserver-installer-$Version.tar.gz || {
rm -rf /opt/jumpserver-installer-$Version.tar.gz
echo -e "[\033[31m ERROR \033[0m] Failed to download jumpserver-installer (下载 jumpserver-installer 失败, 请检查网络是 否正常或尝试重新执行脚本)"
exit 1
}
tar -xf /opt/jumpserver-installer-$Version.tar.gz -C /opt || {
rm -rf /opt/jumpserver-installer-$Version
echo -e "[\033[31m ERROR \033[0m] Failed to unzip jumpserver-installe (解压 jumpserver-installer 失败, 请检查网络是否正 常或尝试重新执行脚本)"
exit 1
}
rm -rf /opt/jumpserver-installer-$Version.tar.gz
fi
}
function config_installer() {
cd /opt/jumpserver-installer-$Version
JMS_Version=$(curl -s 'https://api.github.com/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 (请检查网络是否正常或尝试重新执行脚本)"
exit 1
fi
sed -i "s/VERSION=.*/VERSION=$JMS_Version/g" /opt/jumpserver-installer-$Version/static.env
./jmsctl.sh install
}
function main(){
prepare_check
prepare_install
get_installer
config_installer
}
main
4、jumpserver的使用
1)运行源代码脚本
2)执行安装成功
3)启动jumpserver
[root@local ~]# cd /jumpserver/jumpserver-installer-v2.10.2/
[root@jumpserver jumpserver-installer-v2.10.2]# ./jmsctl.sh start #启动
jms_redis is up-to-date
jms_mysql is up-to-date
jms_core is up-to-date…
…
[root@jumpserver jumpserver-installer-v2.10.2]# ./jmsctl.sh stop #停止
三、jumpserver管理测试
1、创建 Jumpserver 用户
用户管理—>用户列表—>创建用户
2、创建管理用户
资产管理—>管理用户—>创建管理用户(用户是资产服务器上存在的系统用户)
3、 创建系统用户
资产管理—>系统用户—>创建系统用户(资产服务器上存在的系统用户)
4、创建资产
资产管理—>ROOT(右击可先新建节点)—>创建资产
5、资产授权
权限管理—>资产授权—>创建授权规则
6、用户使用资产
四、jumserver管理详解
1、#浏览器web上输入主机IP地址加上8080端口号进入能录界面
2、#默认登录用户名与密码都是admin,选择登录,成功登录后进行设置用户和密码
3、创建用户和密码
4)#切换新账号使用登录,创建用户组,添加用户权限及添加多用户,为多个用护添加用户权限,添加组及多用户权限,设置用户使用
5)#用户创建完成后,进行用户资产管理,创建用户管理资产,对资产进行审计
6)#点击资产管理中的资产列表,根据公司服务器创建对应的资产,也可为其加上相应标签,在资产列表页面,右击default即可创建对应文件夹,或更名等等操作
7)#创建服务器需要的系统用户,此时用户的密码要与服务器上的用户密码对应
8)#资产管理中的“命令过滤”是针对一些危险命令的禁用的,如:rm等点击应用管理中的数据库,可以创建数据库与数据库服务器上的某个数据库连接
9)#权限管理------->资产授权,可以为用户授权
10)#权限管理---------->应用授权,为用户添加一些权限
11)#会话管理中:
可以通过会话管理,查看当前的会话,和历史会话
可以通过命令记录,查找到操作人员对机器的记录,
可以通过web终端连接到对应的服务器
也可以通过文件管理页面,完成对文件的操作
终端管理可以查看当前终端服务器的状态
12)#作业中心
可以查看任务的一些详细信息
可以让服务器批量执行命令,当然前提是权限得够
任务监控 一般很少用到了解即可
13)#日志审计
日志审计里就是所有服务器,操作时产生的日志
14)#系统设置中最重要的一点就是可以将我们的邮箱与jumpserver进行绑定,可以到达监控的目的,同时公司资产有任何问题,我们都可以知道,但是需要我们将邮箱的SMTP,与pop功能打开