相信诸位对堡垒机(跳板机)不会陌生,为了保证服务器安全,加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有身份认证,授权,访问控制,审计等功能。
Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。
支持常见系统:
CentOS, RedHat, Fedora, Amazon Linux
Debian
SUSE, Ubuntu
FreeBSD
其他ssh协议硬件设备
Jumpserver 后端主要技术是LDAP,配置了LDAP 集中认证服务器, 所有服务器的认证都是由ldap完成的。其做法是:每个用户一个密码,把密码加密放到了数据库中,当用户输入IP 从跳板机登陆服务器的时候,跳板机系统取出密码,并解密,通过pexpect 模块将密码发送过去,来完成登录。
架构图如下
Jumpserver 是完全开源的项目,安全,透明,免费,方便二次开发;因为jumpserver本身已包含大部分跳板机的功能,一些中小型企业可以直接安装并使用;
基于代码开源的情况,有技术实力的团队可以根据其源码进行适合自己的二次开发;
由于其拥有时尚的外观和直观的功能以及简单地安装配置等特色,是步入自动化运维的不二选择;其后端数据存储使用的是MySQL数据库,因此建议使用前先行配置及部署好MySQL数据库。
通过web端登录系统后界面如下:
特点介绍
Jumpserver拥有以下特点:
完全开源,GPL授权
Python编写,容易再次开发
实现了跳板机基本功能,认证、授权、审计
集成了Ansible,批量命令等
支持WebTerminal
Bootstrap编写,界面美观
自动收集硬件信息
录像回放
命令搜索
实时监控
批量上传下载
基于其特点,Jumpserver能够实现跳板机常见需求,如授权、用户管理、服务器基本信息记录等,同时又可批量执行脚本等功能;其中录像回放、命令搜索、实时监控等特点,又能帮助运维人员回溯操作历史,方便查找操作痕迹,便于管理其他人员对服务器的操作控制。
快速安装介绍
Jumpserver的源码在github上,所以其安装需要从github上直接下载源码,然后通过其源码中的自动安装脚本进行执行安装。
Github的路径https://github.com/jumpserver/jumpserver.git
安装建议使用 centos 6或7的 mini环境快速安装,安装过一些软件后,其中可能会安装一些不兼容的python库,如pycrypto, django, 会影响快速安装 。
安装步骤:
安装git
yum -y install git
下载jumpserver
cd /opt
git clone https://github.com/jumpserver/jumpserver.git
注:不要安装在/root、/home 等目录下,以免权限问题
安装依赖环境及rpm
yum -y install epel-release
yum -y install python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel
注:安装前最好关闭SELinux
关闭SELinux的方法:
修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。如果不想重启系统,使用命令setenforce 0
执行安装脚本
cd jumpserver/install
pip install -r requirements.txt
ps:pip命令安装相关环境时,默认使用国外的源,此处如果网速不稳定很可能总是失败,因此可以指定国内镜像的源,如使用豆瓣镜像源的命令:pip install -r requirements.txt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip freeze]
python install.py
输入命令后,会提示相关信息,按照提示进行填写相关配置
最后,提示安装完成!
之后需要运行crontab,定期处理失效连接,定期更新资产信息
cd .. && python manage.py crontab add
注:
根据提示输入相关信息,完成安装,完成安装后,请访问web,继续查看后续文档
如果启动失败,请返回上层目录,手动运行 ./service.sh start启动
如果./service.sh start启动失败
请进入jumpserver目录,手动运行
python manage.py runserver 0.0.0.0:80
python run_websocket.py
如果启动失败,可能是由于 80端口(web访问端口)和3000端口(WebTerminal使用的端口)已经被占用,或者数据库账号密码不对,请检查
安装过中所填写的配置信息,均可在安装完成后通过修改jumpserver.conf文件进行修改,记得修改后重新启动应用
安装过jumpserver的服务器,会由于jumpserver的原因使某些该服务器中非jumpserver的用户无法登陆,因为jumpserver会在每个用户登录的时候去读取/etc/profile.d/zzjumpserver这个脚本因此你需要编辑/etc/profile.d/zzjumpserver.sh这个脚本
如图,你应该将你需要直接登录系统的用户按照这样的格式来加入,图上的例子就代表着"admin" "root" 等用户可以直接登录系统而不用进入jumpserver的认证界面。
简单功能使用介绍
Jumpserver的操作比较简单,可以通过web端进行用户管理、服务器管理以及授权操作。
通过web端控制台,管理员可以添加服务器,并设置服务器的管理员用户(管理用户是服务器存在的root或拥有sudo的用户,用来推送系统用户),然后就可以将创建的其他人员的jumpserver用户进行授权。
授权后的用户可收到授权邮件,邮件中有登录服务器的私钥及其密码。
之后用户可以下载私钥并通过ssh客户端进行登录跳板机。
之后在终端的提示下进行相关操作,比如查看本人所有可以访问的服务器。
之后输入对应ID,就可以直接使用已授权的服务器用户登录该服务器。
总结
以上就是Jumpserver的大致介绍,关于其中更多细节,各位看官可自行下载安装进行体验。同时,文中所述或许有不足之处,烦请各位大牛不吝赐教。
相关链接:
jumpserver官方网站:http://www.jumpserver.org
jumpserver官方论坛:http://bbs.jumpserver.org
源码git地址:https://github.com/jumpserver/jumpserver
本人博客地址:http://www.iskymao.com
本文作者:毛宾奇(点融黑帮),目前就职于点融网Loan Business团队,Java开发工程师。专注于Java Web开发,业余喜欢学习运维知识,了解前端开发,实践移动端开发。