运维堡垒机介绍:
运维堡垒机的理念起源于跳板机。2000年左右,高端行业用户为了对运维人员的远程登录进行集中管理,会在机房里部署跳板机。跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后
从这台服务器再登录到目标设备进行维护。
但跳板机并没有实现对运维人员操作行为的控制和审计,使用跳板机过程中还是会有误操作、违规操作导致的操作事故,一旦出现操作事故很难快速定位原因和责任人。
2004年,人们认识到跳板机的不足,提出了以下运维操作管理理念:
理念一:唯有控制才能真正解决问题
审计是事后行为,从来没有事前审计一说
审计可以发现问题,但是无法防止问题发生
只有在事前严格控制,才能从源头真正解决问题
理念二:系统账号无法确认用户身份
系统账号的作用只是区分工作角色
多人共用一个系统账号是合理的
运维人员的流动不应影响系统账号
理念三:人为操作难免会出问题
人有失手,马有失蹄
不怕出问题,就怕出问题找不到原因
只要机器能做的,就不要人做
在这些理念的指引下,2005年前后,奇智科技研发出世界第一台运维堡垒机,自此运维堡垒机以一个独立的产品形态被广泛部署,有效地降低了运维操作风险,使运维操作管理变得更简单、更安全!
同时,首台运维堡垒机的访问代理模式,对运维人员的身份认证、对运维操作的访问控制和审计等功能,都被运维堡垒机产品一直沿用至今。
虚拟化: 应用虚拟化 xenapp
Gate One网址:http://liftoffsoftware.com/Products/GateOne
GitHub地址:https://github.com/liftoff/GateOne
环境搭建要求:
System:Centos7.3(1611)
address:192.168.1.120
GateOne:Version: 1.2.0
python:2.6+
tornado:4.0+
html5lib:1.0b10
setuptools:35.0.2
下载GateOne项目
工作的方式:以日志的方式记录下来,以js的方式呈现回放的效果
下载Gata One项目(下载到/root/目录下)
# git clone https://github.com/liftoff/GateOne
官方手册
http://liftoff.github.io/GateOne/About/index.html
下载python的pip安装包,如果pip已有,可以略过
# wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
解压并安装pip
# tar -zxvf pip-9.0.1.tar.gz
# cd pip-9.0.1
# python setup.py install
安装git
# yum install -y git
运行Gate One的安装
# cd GateOne/
# pip install --upgrade tornado
# pip install --upgrade setuptools
# python setup.py install
启动gataone服务
# systemctl start gateone.service
# gateone
录像的日志保存路径
# cd /var/lib/gateone/users/ANONYMOUS/logs
回放日志的保存路径
# cd /usr/lib/python2.7/site-packages/gateone-1.2.0-py2.7.egg/gateone/applications/terminal
日志中保存的操作信息如何查看?
# ./logviewer.py --flat /var/lib/gateone/users/ANONYMOUS/logs/20170526225242834206-192.168.1.105.golog
注:
20170526225242834206-192.168.1.105.golog回放日志的名称
查看日志回放的内容,通过gateone页面中呈现出来
演示效果图
嵌入gateone到web页面中
编辑配置文件
# vim /etc/gateone/conf.d/10server.conf
修改如下内容
"origins": ["*","localhost", "127.0.0.1", "linux-node1", "192.168.1.120"],
"auth":"None"
查看gateone的web嵌入效果
# cd /root/GateOne/gateone/tests/hello_embedded
在指定的ip地址和端口上运行gateone的测试页面
# python hello_embedded_world.py --address=192.168.1.120 --port=8888
注:
--address=ip 指定运行的ip地址
--port= port 执行运行的端口号
默认不加为ip为127.0.0.1,port为80
运行geteone服务
# gateone
清除iptables规则以及关闭selinux
# iptables -F
# setenforce 0
打开了chrome或者Firefox输入https://192.168.1.120:8888/
如何自己创建一个html页面并且把gateone的功能嵌入到页面中,其实很简单哦~
桌面或者其他的巴拉巴拉的地方创建一个base.html的页面,然后把以下的内容复制到advaced.html中即可,下面的代码来源于https://192.168.1.120:8888/中的Advanced Embedding段落
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="target-densitydpi=device-dpi, width=device-width, initial-scale=1.0, minimum-scale=1.0, user-scalable=0" />
<body>
<script src="https://192.168.1.120/static/gateone.js"></script>
<div id="gateone_container" style="position: relative; width: 70em; height: 30em;">
<div id="gateone"></div>
</div>
<script>
window.onload = function() {
// Initialize Gate One:
GateOne.init({
url: 'https://192.168.1.120/',
theme: 'black',
fontSize: '110%'
});
}
</script>
</body>
</html>
嵌入到web页面中的效果