运维堡垒机----Gateone
简介:
参考:https://www.cnblogs.com/caoxiaojian/p/5146789.html
运维堡垒机的理念起源于跳板机。2000年左右,高端行业用户为了对运维人员的远程登录进行集中管理,会在机房里部署跳板机。跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维护。
但跳板机并没有实现对运维人员操作行为的控制和审计,使用跳板机过程中还是会有误操作、违规操作导致的操作事故,一旦出现操作事故很难快速定位原因和责任人。
2004年,人们认识到跳板机的不足,提出了以下运维操作管理理念:
理念一:唯有控制才能真正解决问题
审计是事后行为,从来没有事前审计一说
审计可以发现问题,但是无法防止问题发生
只有在事前严格控制,才能从源头真正解决问题
理念二:系统账号无法确认用户身份
系统账号的作用只是区分工作角色
多人共用一个系统账号是合理的
运维人员的流动不应影响系统账号
理念三:人为操作难免会出问题
人有失手,马有失蹄
不怕出问题,就怕出问题找不到原因
只要机器能做的,就不要人做
在这些理念的指引下,2005年前后,奇智科技研发出世界第一台运维堡垒机,自此运维堡垒机以一个独立的产品形态被广泛部署,有效地降低了运维操作风险,使运维操作管理变得更简单、更安全!
同时,首台运维堡垒机的访问代理模式,对运维人员的身份认证、对运维操作的访问控制和审计等功能,都被运维堡垒机产品一直沿用至今。
Gateone
安装部署
直接git下来就行
github地址:
https://github.com/liftoff/GateOne
git clone https://github.com/liftoff/GateOne.git
或者直接wget
wget https://codeload.github.com/liftoff/GateOne/zip/master
unzip master.zip
cd GateOne-master/
python setup.py install
gateone # 执行启动命令
# 默认使用443端口
配置文件
[root@linux-node1 ~]# tree /etc/gateone/
/etc/gateone/
├── conf.d
│ ├── 10server.conf
│ ├── 20authentication.conf
│ └── 50terminal.conf
└── ssl
├── certificate.pem
└── keyfile.pem
![Image 堡垒机安装搭建实例_第1张图片](http://img.e-com-net.com/image/info8/5c5eb16e5b8a45879c803c77ad19dda3.jpg)
他是可以进行日志回放的,但是他也不是进行视频的录制,而是将他的内容存放到log中,通过javascript的方式展示出来。
下面咱们分析下他是怎么回放的
[root@linux-node1 logs]# cd /usr/lib/python2.7/site-packages/gateone-1.2.0-py2.7.egg/gateone/applications/terminal/
[root@linux-node1 terminal]# ./logviewer.py --flat /var/lib/gateone/users/ANONYMOUS/logs/20160120105930970679-192.168.56.1.golog
其实就是使用上面的那个简本对日志数据进行的回放
gateone还可以嵌入到其他的平台中,嵌入方式如下:
[root@linux-node1 hello_embedded]# ll
total 20
-rw-r--r-- 1 root root 1050 Nov 23 02:26 certificate.pem
-rwxr-xr-x 1 root root 2248 Nov 23 02:26 hello_embedded_world.py
-rw-r--r-- 1 root root 1679 Nov 23 02:26 keyfile.pem
-rw-r--r-- 1 root root 176 Nov 23 02:26 README
drwxr-xr-x 3 root root 4096 Nov 23 02:26 static
[root@linux-node1 hello_embedded]# pwd
/usr/local/src/GateOne-master/gateone/tests/hello_embedded
[root@linux-node1 hello_embedded]# ./hello_embedded_world.py --address=192.168.56.11
Now listening on https://192.168.56.11:443
这里的端口是可以自己指定的 --port=8888
然后访问
![Image 堡垒机安装搭建实例_第2张图片](http://img.e-com-net.com/image/info8/fbaf65ffa51242b9b4f57fe95081e4ea.jpg)
作者: 曹小贱
出处: http://www.cnblogs.com/caoxiaojian/
参考:http://www.magedu.com/71831.html
https://blog.csdn.net/preamble_1/article/details/75353265
首先,jumpserver是什么呢?
Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,完成了跳板机应有的功用。根据ssh协议来办理,客户端无需装置agent。
特点:
完全开源,GPL授权 Python编写,容易再次开发 实现了跳板机基本功能,认证、授权、审计 集成了Ansible,批量命令等 支持WebTerminal Bootstrap编写,界面美观 自动收集硬件信息 录像回放 命令搜索 实时监控 批量上传下载
jumpserver 3.0 安装
相对于 jumpserver 2.0 版本,在新的版本 3.0 中取消了LDAP授权,取而代之的是ssh进行推送;界面也有所变化,功能更完善,安装更简单,不像 2.0 的版本,难住了好多人。下面通过两台主机来搭建 jumpserver堡垒机!
Centos 6.5 x86_64 关闭 iptables,关闭 selinux jumpserver:192.168.1.200 clients:192.168.1.210 ps:操作只针对 jumpserver,clients 不会进行操作,只是环境需求。
一、安装依赖包
yum -y install epel-release yum clean all && yum makecache yum -y update yum -y install git python-pip MySQL-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel
二、下载 jumpserver
cd /opt Git clone https://github.com/jumpserver/jumpserver.git 注: 如果下载失败,则去github上面下载zip包,unzip解压缩即可
![堡垒机安装搭建实例_第3张图片](http://img.e-com-net.com/image/info8/965d5a27bca64d07985a4076886b5420.jpg)
三、执行快速安装脚本
cd /opt/jumpserver/install
pip install -r requirement.txt
![堡垒机安装搭建实例_第4张图片](http://img.e-com-net.com/image/info8/e0867d0ad94f4035a171b68799fa1860.jpg)
查看安装的包 pip freeze
python install.py 输入jumpserver的地址,默认为:”192.168.1.200”,回车即可。 是否安装MySQL:选择”y”进行安装
![堡垒机安装搭建实例_第5张图片](http://img.e-com-net.com/image/info8/fa18d5f370f1479bb9ef38333aae9bff.jpg)
MySQL 启动后会要求用户输入 邮件服务器及账户(后期用来发送用户名、ssh pass、web pass、ssh key)
163邮箱用授权密码,而不是登入密码 ,切记 。
![堡垒机安装搭建实例_第6张图片](http://img.e-com-net.com/image/info8/1c325e0f5b6247d2909c4774956caaeb.jpg)
输入smtp信息之后发现报错了,是python的pycrypto模块问题,需要卸载重装: pip uninstall pycrypto easy_install pycrypto
![堡垒机安装搭建实例_第7张图片](http://img.e-com-net.com/image/info8/8e3a5c7ded4c490c8a5dd4f8852f3dd6.jpg)
![手把手教你用jumpserver搭建堡垒机!](http://img.e-com-net.com/image/info8/6464d14f21ed44409c09b36ea299187c.jpg)
![手把手教你用jumpserver搭建堡垒机!](http://img.e-com-net.com/image/info8/fdd28f994f584afabf211d4ef9843609.jpg)
安装之后继续 python install.py 进行安装,并且输入 web管理员用户名和管理员密码,ok
![堡垒机安装搭建实例_第8张图片](http://img.e-com-net.com/image/info8/bd9c4ba87c5748958f5a7b8f6243b79c.jpg)
![堡垒机安装搭建实例_第9张图片](http://img.e-com-net.com/image/info8/836b0aae8b78425d839993bac9ee45b5.jpg)
运行 crontab,定期处理失效连接,定期更新资产信息 cd /opt/jumpserver python manage.py crontab add
![堡垒机安装搭建实例_第10张图片](http://img.e-com-net.com/image/info8/dab35113934b40af9201e5b24ffa2ccb.jpg)
注: 1)根据提示输入相关信息,完成安装,安装完成后,请访问web,继续查看后续文档 2)如果启动失败,请返回上层目录,手动运行 ./service.sh start 启动 3)如果 ./service.sh start 启动失败 cd /opt/jumpserver python manage.py runserver 0.0.0.0:80 python run_websocket.py 4)如果启动失败,可能是由于80端口和3000端口已经被占用,或者数据库账号密码不对,请检查
五、Web登录
http://192.168.1.200
![堡垒机安装搭建实例_第11张图片](http://img.e-com-net.com/image/info8/9b4f17ba72294455b1a90ed4e704cf6e.jpg)
注意: 在使用jumpserver过程中,有一步是系统用户推送,要推送成功,client(后端服务器)要满足以下条件: 1)后端服务器需要有python、sudo环境才能使用推送用户,批量命令等功能 2)后端服务器如果开启了selinux,请安装libselinux-python
六、更新代码
cd /opt/jumpserver git pull
环境搭建到这一步就结束啦~
下面开始要仔细看咯
一、用户管理
1)添加用户
点击用户管理 —> 查看用户 —> 添加用户
![堡垒机安装搭建实例_第12张图片](http://img.e-com-net.com/image/info8/6f221a664fc5456db4c3698009c49f1b.jpg)
输入要添加的用户名,姓名,权限,Mail,并且发送邮件 —> 保存
![堡垒机安装搭建实例_第13张图片](http://img.e-com-net.com/image/info8/c748e6b2b4f64d84a1941ec6fd69d9df.jpg)
查看添加的用户
![堡垒机安装搭建实例_第14张图片](http://img.e-com-net.com/image/info8/597ea0a9728f41ab94cfc55bf6dbd406.jpg)
查看用户邮件 邮件中包含了用户名,权限,web密码,ssh 密钥密码,以及密钥下载地址。
![堡垒机安装搭建实例_第15张图片](http://img.e-com-net.com/image/info8/3de031bf773045d3a3284a645409f08f.jpg)
2)添加用户组
点击用户管理 —> 查看用户组 —> 添加用户组
![堡垒机安装搭建实例_第16张图片](http://img.e-com-net.com/image/info8/80f2254210c94d37a6b7d3dc52e801eb.jpg)
添加新的小组 —> 运维小组
![堡垒机安装搭建实例_第17张图片](http://img.e-com-net.com/image/info8/45cdc04ba0ff463f89b59f70c62f48f4.jpg)
查看刚才添加的组
![堡垒机安装搭建实例_第18张图片](http://img.e-com-net.com/image/info8/2ba499d3248941268c2712fded71c744.jpg)
二、资产管理
1)添加资产组
点击资产管理 —> 查看资产组 —> 添加主机组
![堡垒机安装搭建实例_第19张图片](http://img.e-com-net.com/image/info8/cc9cbfd8a4ea4fc298e08f382f1340cc.jpg)
输入组名称,并且输入描述组用途
![堡垒机安装搭建实例_第20张图片](http://img.e-com-net.com/image/info8/fd0f72785de9412c8faf06b38f435d5b.jpg)
2)添加资产
点击资产管理 —> 查看资产 —> 添加资产
![堡垒机安装搭建实例_第21张图片](http://img.e-com-net.com/image/info8/7df108cff8b743fb932b9439dc220fc1.jpg)
输入主机名,主机IP,管理用户名(管理员用户,主机中必须存在的哦~ 可以是root),端口,资产组 —> 提交保存
![堡垒机安装搭建实例_第22张图片](http://img.e-com-net.com/image/info8/96c3243e88334040a2ea425d4ef01c9f.jpg)
3)添加机房
点击资产管理 —> 查看机房 —> 添加机房
![堡垒机安装搭建实例_第23张图片](http://img.e-com-net.com/image/info8/3a08110d17104b5f81bc8ba60a866f64.jpg)
输入机房名称,其他的可以选填 —> 保存
![堡垒机安装搭建实例_第24张图片](http://img.e-com-net.com/image/info8/da3b812ff34e4c5ca05608c93774c0c7.jpg)
三、权限管理
1)sudo
点击权限管理 —> sudo —> 添加别名
![堡垒机安装搭建实例_第25张图片](http://img.e-com-net.com/image/info8/75b3e25167314b0780f4acf5e9527f12.jpg)
输入别名,系统命令,备注 —> 点击保存
![堡垒机安装搭建实例_第26张图片](http://img.e-com-net.com/image/info8/e5901f1bf3d14da5bfac3f80d4ae4826.jpg)
2)添加系统用户
点击授权管理 —> 系统用户 —> 添加系统用户
![堡垒机安装搭建实例_第27张图片](http://img.e-com-net.com/image/info8/eeabfae037c74370a964c70fd003a9b7.jpg)
输入用户名,密码,管理的sudo及备注 —> 单击保存
![堡垒机安装搭建实例_第28张图片](http://img.e-com-net.com/image/info8/690e85d912c1423db098080925cf33a2.jpg)
创建好系统之后,单击推送,将用户名、密码、sudo的信息推送到服务器。
![堡垒机安装搭建实例_第29张图片](http://img.e-com-net.com/image/info8/168d85bba193488a97b8678222d00eab.jpg)
选择系统用户,资产组 —> 单击保存
![堡垒机安装搭建实例_第30张图片](http://img.e-com-net.com/image/info8/f79cf99131ee403095dc57ae41cf60f1.jpg)
推送成功
![手把手教你用jumpserver搭建堡垒机!](http://img.e-com-net.com/image/info8/454bf73873fb4cf3927218f7dfd998d3.jpg)
3)授权规则
点击授权管理 —> 授权规则 —> 添加规则
![堡垒机安装搭建实例_第31张图片](http://img.e-com-net.com/image/info8/5c14a4a68d1141d5bef81d749960c8a5.jpg)
输入授权名称,用户/用户组,资产/资产组,系统用户,备注 —> 单击保存
四、登录
这时候创建已经完成,下一步用户”hongxue”通过web和密钥登录堡垒机 192.168.1.200,并实现跳转到服务器 192.168.1.210
1)通过web登录 可以看到用户ID,用户名,权限,key,最后登录,用户组,授权主机数,以及主机信息。
![堡垒机安装搭建实例_第32张图片](http://img.e-com-net.com/image/info8/d0faea6841f94eb0815b58a73c9bbf3d.jpg)
单击查看主机 —> 连接
![堡垒机安装搭建实例_第33张图片](http://img.e-com-net.com/image/info8/b6bff96c632b4b8884287a808aaba9ac.jpg)
连接成功,可以对该主机进行操作。
![堡垒机安装搭建实例_第34张图片](http://img.e-com-net.com/image/info8/88f03c4a98264a188f98f2b9d508d4a4.jpg)
2)通过ssh登录
通过邮件中收到的地址,下载key
![堡垒机安装搭建实例_第35张图片](http://img.e-com-net.com/image/info8/fd99f76c618e4d70b4ccd72d5c2c1060.jpg)
点击工具 —> 用户密钥管理者
![堡垒机安装搭建实例_第36张图片](http://img.e-com-net.com/image/info8/fefcf994cdd34ff48ff78834f5df1cb7.jpg)
单击导入 —> 输入用户名,密码
![堡垒机安装搭建实例_第37张图片](http://img.e-com-net.com/image/info8/61f1adabbf1945a9b447d8834a12de61.jpg)
连接 jumpserver 堡垒机 192.168.1.200,输入密钥密码进行登录
![堡垒机安装搭建实例_第38张图片](http://img.e-com-net.com/image/info8/6d95c041697f4c57baaad7713ce2444f.jpg)
登录成功!! 从授权的列表中连接到服务器 192.168.1.210
![堡垒机安装搭建实例_第39张图片](http://img.e-com-net.com/image/info8/33a9120a8e7c40948f4aa463e60496f5.jpg)
!!为了安全,建议配置nginx 反向代理 jumpserver
log_format jumpserver '$remote_addr – $remote_user [$time_local] “$request” $status $body_bytes_sent “$request_time” $request_body “$http_referer” “$http_user_agent” “$http_x_forwarded_for” $scheme $http_host';
server {
listen 8080 ssl;
listen 80;
deny all;
server_name jumpserver.xxxx.com;
index index.html index.htm index.PHP;
ssl_certificate ssl/xxxx.com.crt;
ssl_certificate_key ssl/xxxx.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
if ( $scheme = http ) {
rewrite ^(.*)$ https://$host:8090$request_uri? permanent;
}
location / {
proxy_set_header Connection “”;
proxy_http_version 1.1;
proxy_pass http://10.43.12.31:8090;
}
location ^~ /ws/ {
proxy_pass http://10.43.12.31:8090/ws/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “upgrade”;
}
access_log /data0/logs/jumpserver.log jumpserver;
error_log /data0/logs/jumpserver_error.log debug;
}