-
什么是跳板机(堡垒机)?
堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。
跳板机属于内控堡垒机范畴,是一种用于单点登陆的主机应用系统。2000年左右,高端行业用户为了对运维人员的远程登录进行集中管理,会在机房里部署跳板机。跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维护。但跳板机并没有实现对运维人员操作行为的控制和审计,使用跳板机过程中还是会有误操作、违规操作导致的操作事故,一旦出现操作事故很难快速定位原因和责任人。此外,跳板机存在严重的安全风险,一旦跳板机系统被攻入,则将后端资源风险完全暴露无遗。同时,对于个别资源(如telnet)可以通过跳板机来完成一定的内控,但是对于更多更特殊的资源(ftp、rdp等)来讲就显得力不从心了。
1.1 运维堡垒机
人们逐渐认识到跳板机的不足,需要更新、更好的安全技术理念来实现运维操作管理,需要一种能满足角色管理与授权审批、信息资源访问控制、操作记录和审计、系统变更和维护控制要求,并生成一些统计报表配合管理规范来不断提升IT内控的合规性的产品。在这些理念的指导下,2005年前后,运维堡垒机开始以一个独立的产品形态被广泛部署,有效地降低了运维操作风险,使得运维操作管理变得更简单、更安全。
2.jumpserver开源跳板机
Jumpserver是完全开源的堡垒机项目,安全,透明,免费,方便二次开发,由于其拥有简洁的外观和直观的功能以及简单的安装配置,是中小型公司自动运维的首选,其后端可以支持使用Sqlite,Mysql等数据库,拥有很强的通用性
Jumpserver v0.4.0 beta版新功能预览:
<1> 实现了一个ssh server:Coco项目
v0.3版本及之前,使用linux自带的ssh server和connect完成跳转,本次版本使用paramiko实现了一个ssh server, 不再依赖linux的ssh server,也就意味着不需要依赖linux 的用户认证,可以实现更多的认证方式 如: google auth. 用户登录 Coco,会通过调用jumpserver api完成认证,用户的输入会发送到jumpserver,用来审计。
<2> 实现了一个新的 web terminal
之前版本的web terminal功能简陋,这里我们想提供给大家一个更易用的 web terminal,于是我们写了 Luna项目,界面更加简洁,实用。 和Coco一样,需要调用jumpserver api完成认证,审记。 Luna是由 Flask Flask-socketio angular实现。
<3> 重构了 Jumpserver
新版本Jumpserver使用 python3, django最新版本来实现,并且使用Django Class Base View, 更通用一些(可能会比较难以理解)
3.jumpserver v0.4.0 版本安装过程
环境
- 系统 CentOS-7-x86_64-Mini-1511
- Python 版本3.6.2 大部分功能兼容2.7
- 系统安装目录
/opt/jumpserver
/opt/coco
3.1.1 安装基本工具和库,准备repo环境
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 配置本地软件仓库 wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install sqlite-devel git #安装必要工具 yum -y install sshpass python-devel libffi-devel openssl-devel zlib-devel yum -y install gcc gcc-c++ redis yum groupinstall “Development Tools” -y
3.1.2 安装python 3.6 和虚拟环境
Python安装
在 https://www.python.org/downloads/release/python-362/ 下载对应的python源码包
tar xf /opt/Python-3.6.2.tgz -C /opt #将源码包解压到指定目录 cd /opt/Python3.6.2 ./configure --prefix=/usr/local/python36 #设定Python3.6的安装目录 make && make install #编译安装 Python mv /usr/bin/python /usr/bin/python_old2 #替换旧版本Python ln -sv /usr/bin/python36/python3 /usr/bin/python #将Python36作为默认的Python
PATH=$PATH:/usr/local/python36/bin #添加命令路径
Notice:
安装新版本的Python可能会导致原有的Yum不可用
解决方法:
vim /usr/bin/yum #!/usr/bin/python //将这一行修改为 #!/usr/bin/python_old2 或者之前python对应的版本 vim /usr/libexec/urlgrabber-ext-down #!/usr/bin/python //将这一行修改为 #!/usr/bin/python_old2 或者之前python对应的版本
Docker环境安装
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 安装需求包 sudo yum-config-manager --enable extras # 启用扩展包组 sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo # 添加repo仓库 sudo yum-config-manager --enable docker-ce-edge # 启用或关闭docker-ce仓库源 sudo yum-config-manager --disable docker-ce-edge yum list docker-ce.x86_64 --showduplicates |sort -r # 列出docerk-ce版本 以便使用下面命令安装 sudo yum install docker-ce-<VERSION>
3.2 Jumpserver安装
3.2.1 从GitHub上下载仓库代码
cd /opt git clone https://github.com/jumpserver/jumpserver.git cd jumpserver git checkout dev
3.2.2 安装依赖文件
cd requirements sudo yum -y install `cat rpm_requirements.txt`
3.2.3 准备默认配置文件
cd .. cp config_example.py config.py vim config.py // 默认使用的是 DevelpmentConfig 所以应该去修改这部分 class DevelopmentConfig(Config): EMAIL_HOST = 'smtp.exmail.qq.com' EMAIL_PORT = 465 EMAIL_HOST_USER = 'ask@jumpserver.org' EMAIL_HOST_PASSWORD = 'xxx' EMAIL_USE_SSL = True // 端口是 465 设置 True 否则 False EMAIL_USE_TLS = False // 端口是 587 设置为 True 否则 False SITE_URL = 'http://localhost:8080' // 发送邮件会使用这个地址
3.2.4 初始化sqlite数据库
cd utils sh make_migrations.sh sh init_db.sh
3.2.5 启动服务
iptables -F # 暂时关闭清空iptables限制
setenforce 0 # 暂时解除selinux限制
systemctl restart redis
systemctl restart docker cd /opt/jumpserver-dev python run_server.py
4 访问Web页面测试服务
访问 http://your_ipaddress:8080
默认账号 admin
默认密码 admin
5 安装COCO组件
5.1 从GitHub上下载代码
cd /opt git clone https://github.com/jumpserver/coco.git
5.2 安装依赖关系包
cd coco pip3 install -r requirements/requirements.txt -i https://pypi.doubanio.com/simple
5.3 启动coco
python run_server.py
5.4 允许coco注册使用
访问jumpserver页面

在应用程序-终端-coco-Accept 允许coco访问,这时coco就可以使用2222端口了
使用ssh连接测试

参考:
https://github.com/jumpserver/jumpserver.git
https://github.com/jumpserver/coco.git
http://baike.baidu.com/link?url=FBeRKS_KQ8fsfA3HLmA3XZw1acuR13Zw3TTVvm11lhmtUJkjdrClECMo_yifqhdKILS4kpiTrK5wPQ2xk38jZh3gtp-jY-XK6M9d0rkuu_9ZWb0icRO6KtfY7da_GKm5
https://docs.docker.com/engine/installation/linux/docker-ce/centos/

浙公网安备 33010602011771号