让运维再也不背锅的利器jumpserver堡垒机



因为来源身份不明、越权操做、密码泄露、数据被窃、违规操做等因素python

均可能会使运营的业务系统面临严重威胁,一旦发生事故,若是不能快速定位事故缘由,运维人员每每就会背黑锅。mysql

几种常见的背黑锅场景

一、因为不明身份利用远程运维通道***服务器形成业务系统出现异常linux

      可是运维人员没法明确***来源,那么领导很生气、后果很严重git

二、只有张三能管理的服务器,被李四登陆过而且作了违规操做github

      可是没有证据是李四登陆的,那么张三只能背黑锅了。web

三、运维人员不当心泄露了服务器的密码。一旦发生安全事故,那么后果不堪设想。sql

四、某服务器的重要数据被窃。可是数据文件没法挽回,那么面临的是没法估量的经济损失数据库

wKiom1lUUr-SrYUUAAEh2kY_sRs399.png-wh_50

背黑锅的缘由

其实运维工做,出现各类问题是在所不免的
不只要有很好的分析处理能力,并且还要避免问题再次发生。要清楚认识到出现问题的真实缘由:

一、没有规范管理,人与服务器之间的界限不清晰
vim

二、没有实名机制,登陆服务器前没有实名验证后端

三、没有密码托管,服务器的密码太多,很难作到按期修改,本身保管怕丢失

四、没有操做预警,对高危、敏感的操做没法作到事前防护

五、没有传输控制,对重要服务器没法控制文件传输

六、没有回溯过程,不能完整还原运维过程

解决背黑锅的必杀技

做为运维人员,如何摆脱以上背黑锅的尴尬局面呢?也许堡垒机是一个破解此局面的必杀技。

一、统一入口、规范管理

提供统一入口,全部运维人员只能登陆堡垒机才能访问服务器,梳理“人与服务器”之间的关系,防止越权登陆

wKiom1lUUyHQOJDGAAQloyxt6ts878.png-wh_50

二、利用手机APP动态口令等验证机制

采用手机APP动态口令、OTP动态令牌、USBKEY、短信口令等双因素身份实名鉴别机制

防止密码被暴力破解,解决访问身份模糊的问题

wKiom1lUUwXDf8tLAALgiTcwir0504.png-wh_50

三、托管服务器密码,实现自动改密

经过堡垒机按期自动修改服务器的密码,解决手工修改密码、密码泄露和记住密码的烦恼。

一、可自动修改Windows、Linux、Unix、网络设备等操做系统的密码

二、能够设置周期或指定时间执行改密任务

三、可设定密码的复杂度、随机密码、指定密码、固定密码格式等

四、可经过邮件、SFTP、FTP方式自动发送密码文件给管理员

五、提供密码容错机制:改密前自动备份、备份失败不改密、改密后自动备份、自动恢复密码等

wKiom1lUU3bTMb_kAAFEmILRpXs483.png-wh_50

四、事中控制,防止违规操做

做为运维人员,如何摆脱以上背黑锅的尴尬局面呢?也许堡垒机是一个破解此局面的必杀技。

一、经过命令控制策略,拦截高危、敏感的命令

二、经过命令审核策略,审批须要执行但又不能随意执行的命令

三、经过文件传输控制策略,防止数据、文件的泄露

wKiom1lUU2DwXa64AALFaqF8au8055.png-wh_50

五、精细化审计,追溯整个运维过程

堡垒机要作到文件记录、视频回放等精细化完整审计,快速定位运维过程:

一、不只要对全部操做会话的在线监控、实时阻断、日志回放、起止时间、来源用户

来源地址、目标地址、协议、命令、操做(如对文件的上传、下载、删除、修改等操做等)等行为记录。

 

二、还要能保存SFTP/FTP/SCP/RDP/RZ/SZ传输的文件

为上传恶意文件、***、窃取数据等危险行为起到了追踪依据。


下面就说说堡垒机的具体安装部署


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 不会进行操做,只是环境需求。


1、安装依赖包
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


2、下载 jumpserver  
cd /opt
git clone https://github.com/jumpserver/jumpserver.git
注: 若是下载失败,则去github上面下载zip包,unzip解压缩便可

wKiom1lUU7mQ7sCKAABHB-cz4Ro890.png-wh_50


3、执行快速安装脚本
cd /opt/jumpserver/install

pip install -r requirement.txt

wKioL1lUU8nwDJ9DAABhzvHRs6Q179.png-wh_50

查看安装的包
pip freeze

python install.py
输入jumpserver的地址,默认为:”192.168.1.200”,回车便可。
是否安装
mysql:选择”y”进行安装

wKiom1lUVA-A2baxAABHsmOdrFE712.png-wh_50

MySQL 启动后会要求用户输入 邮件服务器及帐户

(后期用来发送用户名、ssh pass、web pass、ssh key)

wKiom1lUVB3CDmAvAAB9CjHSP_A667.png-wh_50

输入smtp信息以后发现报错了,是python的pycrypto模块问题,须要卸载重装:
pip uninstall pycrypto
easy_install pycrypto

wKioL1lUVH7xyLrUAAAov_Nst-M888.png-wh_50

wKiom1lUVIiCCMeTAAAtS_Ttwis940.png-wh_50

wKioL1lUVJLwu4W2AAAZoO2xJ5s524.png-wh_50

wKiom1lUVJyTQcPMAAAXa0hCuYY273.png-wh_50

安装以后继续 python install.py 进行安装,而且输入 web管理员用户名和管理员密码,ok

wKiom1lUVNGjXhznAABAMQo6_-4966.png-wh_50

wKiom1lUVOWxwpJ8AAAsw3Ut_3k093.png-wh_50


4、运行 crontab

按期处理失效链接,按期更新资产信息
cd /opt/jumpserver
python manage.py crontab add

wKioL1lUVSDxtaKiAABPkrZkijM495.png-wh_50

注:
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端口已经被占用,或者数据库帐号密码不对,请检查


5、Web登陆
http://192.168.1.200

wKioL1lUVVqhkuciAAD73N5FbKQ976.png-wh_50

注意:
在使用jumpserver过程当中,有一步是系统用户推送,要推送成功,client(后端服务器)要知足如下条件:
1)后端服务器须要有python、sudo环境才能使用推送用户,批量命令等功能
2)后端服务器若是开启了selinux,请安装libselinux-python


6、更新代码 cd /opt/jumpserver git pull

相关文章
相关标签/搜索