搭建简易堡垒机

简介:

堡垒机,是在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。

我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登录服务器和日志审计。运维堡垒机的理念起源于跳板机。2000年左右,高端行业用户为了对运维人员的远程登录进行集中管理,会在机房里部署跳板机。跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维护。

堡垒机从功能上讲,它综合了核心系统运维和安全审计管控两大主干功能,从技术实现上讲,通过切断终端计算机对网络和服务器资源的直接访问,而采用协议代理的方式,接管了终端计算机对网络和服务器的访问。形象地说,终端计算机对目标的访问,均需要经过运维安全审计的翻译。打一个比方,运维安全审计扮演着看门者的工作,所有对网络设备和服务器的请求都要从这扇大门经过。因此运维安全审计能够拦截非法访问,和恶意攻击,对不合法命令进行命令阻断,过滤掉所有对目标设备的非法访问行为,并对内部人员误操作和非法操作进行审计监控,以便事后责任追踪。

安全审计作为企业信息安全建设不可缺少的组成部分,逐渐受到用户的关注,是企业安全体系中的重要环节。同时,安全审计是事前预防、事中预警的有效风险控制手段,也是事后追溯的可靠证据来源。

为什么企业需要堡垒机?

近年来数据安全事故频发,包括斯诺登事件、希拉里邮件丑闻以及携程宕机事件等,数据安全与防止泄露成为政府和企业都非常关心的议题,因此云堡垒机也应运而生。

案例一:

让我们共同回顾最具代表性的数据泄露引发的安全事故,美国著名的斯诺登事件。2013年6月,美国《华盛顿邮报》报道,美国国家安全局和联邦调查局于2007年启动了一个代号为“棱镜”的秘密监控项目,直接进入美国网际网路公司的中心服务器里挖掘数据、收集情报。洩露这些绝密文件的并非国家安全局的内部员工,而是国家安全局的外聘人员爱德华·斯诺登。

斯诺登事件若放在今天,将不可能发生,因为我们有了云堡垒机!其中的管理员角色可以设置敏感操作的事前拦截、事中断开、事后审计,并且可以做到全程无代理实时监控。类似斯诺登这样的外聘人员将无法接触到这些敏感信息,更不用说泄露出来了。并且某些云堡垒机支持录屏功能也可以帮助用户进行审计和追责。

案例二:

2015年5月28日上午11点至晚上8点,在某旅游出行平台官网及APP上登录、下单或交易时,跳转均出现问题,导致操作无法顺利完成。造成直接经济损失巨大,按照其上一季度的财报公布的数据,宕机的损失为平均每小时106.48万美元。

最终,平台回应此事称系由于员工误操作删除了服务器上的执行代码导致。不论是因为黑客攻击还是员工误操作,真金白银800万美元的经验教训告诫我们对于数据的安全和备份必须要引起重视!云堡垒机能解决这2个问题,一是攻击面小,二是可定制双机备份。

以上事实说明,云堡垒机对安全的重要程度不言而喻。

比较优秀的用于搭建堡垒机的开源软件:jumpserver。主要功能有:认证、授权、审计、自动化、资产管理等。

商业堡垒机的功能比开源的要强大,比较出名的有:齐治,Citrix XenApp等。


23.2 搭建简易堡垒机思路

堡垒机需要具有公网IP以及内网IP,其中内网IP用于和机房其他机器通信。公网IP是用于在外部登录,通过公网IP登录到堡垒机后,才能访问内网的机器,这一点和跳板机一样。

搭建堡垒机,首先需要限制端口,留出可以远程登录的端口,其他的端口都封闭掉。然后还需要配置白名单IP,规定只有哪些IP可以登录,以及禁止密码登录,只允许密钥登录等,做这些事情的目的是为了增加堡垒机的安全性。

除此之外,还需要限制登录的用户,限制为普通用户登录,和限制用户可以执行的命令等。

还需要在客户机器上做日志审计。


23.3 安装jailkit实现chroot

安装jailkit实现chroot的目的是为了限制登录的用户能够执行的命令,因为要防止登录的用户对堡垒机进行其他的操作。jailkit可以把用户限制在一个虚拟的系统中,这个虚拟系统的环境是chroot的,让用户无法直接操作真实系统。

编译安装jailkit:

[root@localhost ~]# cd /usr/local/src/
[root@localhost /usr/local/src]# wget https://olivier.sessink.nl/jailkit/jailkit-2.19.tar.bz2
[root@localhost /usr/local/src]# tar jxvf jailkit-2.19.tar.bz2
[root@localhost /usr/local/src]# cd jailkit-2.19
[root@localhost /usr/local/src/jailkit-2.19]# ./configure && make && make install
[root@localhost /usr/local/src/jailkit-2.19]# echo $?
0
[root@localhost /usr/local/src/jailkit-2.19]#

创建一个目录作为虚拟系统的根目录:

[root@localhost ~]# mkdir /home/jail

给虚拟系统初始化一些命令,让这个系统具有基本的文件结构、网络相关的以及常用命令等:

[root@localhost ~]# jk_init -v -j /home/jail/ basicshell
[root@localhost ~]# jk_init -v -j /home/jail/ editors
[root@localhost ~]# jk_init -v -j /home/jail/ netutils
[root@localhost ~]# jk_init -v -j /home/jail/ ssh

初始化完成后/home/jail/下会生成以下几个目录:

[root@localhost ~]# ls /home/jail/
bin  dev  etc  home  lib64  usr
[root@localhost ~]#

创建真实系统的用户:

[root@localhost ~]# useradd jailUser
[root@localhost ~]# passwd jailUser
更改用户 jailUser 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#

创建虚拟系统的sbin目录,并拷贝虚拟系统的shell文件:

[root@localhost ~]# mkdir /home/jail/usr/sbin
[root@localhost ~]# cp /usr/sbin/jk_lsh /home/jail/usr/sbin/jk_lsh

创建虚拟系统的用户:

[root@localhost ~]# jk_jailuser -m -j /home/jail jailUser

编辑虚拟系统用户的密码文件内容如下:

[root@localhost ~]# vim /home/jail/etc/passwd
root:x:0:0:root:/root:/bin/bash
jailUser:x:1011:1011::/home/jailUser:/bin/bash  # 改成/bin/bash后才能被远程登录

完成以上操作后,远程登录一下jailUser这个账户:
搭建简易堡垒机

登录成功:
搭建简易堡垒机

如图可以看到,这个系统可以执行的命令只有118条。

能够成功登录后就可以生成密钥,添加密钥认证了,配置完密钥后,还需要在真实系统上编辑sshd_config文件把PasswordAuthentication的值改为no,这样就能禁止远程密码登录了。

真实系统上,还需要开启防火墙规则,除了远程登录端口外其他端口都需要封闭掉,这个很简单这里就不演示了。除此之外还需要配置白名单IP,这个在hosts.allow文件里配置,hosts.deny里也需要进行相应的配置,如下示例:

[root@localhost ~]# vim /etc/hosts.allow
sshd: 192.168.77.0/24 1.1.1.1 2.2.2.2  # 白名单ip配置在这里
[root@localhost ~]# vim /etc/hosts.deny
sshd: ALL  # 设置除了白名单ip外的ip都拒绝连接

23.4 日志审计

我们还需要在客户机上做一个简单的日志审计,记录在该机器执行过的命令,以下操作是需要在所有被登录机器上做的:
1.首先配置hosts.allow以及hosts.deny文件,设置仅允许堡垒机的IP登录,其他的一律拒绝登录:

[root@localhost ~]# vim /etc/hosts.allow
sshd: 192.168.77.130  # 堡垒机的IP
[root@localhost ~]# vim /etc/hosts.deny
sshd: ALL  # 拒绝堡垒机以外的IP登录

然后在堡垒机上看看能否进行登录:
搭建简易堡垒机

如图,能够成功登录,代表没问题。

2.配置日志审计:

[root@localhost ~]# mkdir /usr/local/records # 创建日志文件存放的目录
[root@localhost ~]# chmod 777 !$
chmod 777 /usr/local/records
[root@localhost ~]# chmod +t !$
chmod +t /usr/local/records
[root@localhost ~]# vim /etc/profile  # 文件末尾增加以下内容
if [ ! -d  /usr/local/records/${LOGNAME} ]
then
    mkdir -p /usr/local/records/${LOGNAME}
    chmod 300 /usr/local/records/${LOGNAME}
fi
export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history"
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE'
[root@localhost ~]# source /etc/profile  # 让profile的配置生效

配置完成后,查看是否有生成相应的记录文件:

[root@localhost ~]# ls /usr/local/records/
root
[root@localhost ~]# ls /usr/local/records/root/
bash_history
[root@localhost ~]# cat /usr/local/records/root/bash_history 
2018-01-18 21:09:56 ##### root pts/0 (192.168.77.1) #### source /etc/profile
2018-01-18 21:10:41 ##### root pts/0 (192.168.77.1) #### ls /usr/local/records/
2018-01-18 21:10:44 ##### root pts/0 (192.168.77.1) #### ls /usr/local/records/root/
2018-01-18 21:10:46 ##### root pts/0 (192.168.77.1) #### ls /usr/local/records/root/
[root@localhost ~]# 

如上,可以看到,生成的bash_history 文件中已经记录了我刚刚敲过的命令,这样就能够记录哪个用户在哪个时间点上在这台机器上敲过的命令。

到此,一个简易的堡垒机就搭建完成了,也算不上真正意义的堡垒机吧,只能算是个跳板机。因为我们还没有使用专业的工具去搭建,所以还不太符合堡垒机的概念,但是如果机器不是那么多,只有几台,而且要求也没那么高的话,这种跳板机也就够用了。



本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/2062618,如需转载请自行联系原作者

相关文章
|
3月前
|
运维 安全 Linux
开源堡垒机JumpServer本地安装并配置公网访问地址
开源堡垒机JumpServer本地安装并配置公网访问地址
109 0
|
6月前
|
存储 运维 监控
特权账号管理系统(PAM)同堡垒机一样吗
重要介绍特权账号管理系统和堡垒机是两个不同的观念
89 0
特权账号管理系统(PAM)同堡垒机一样吗
|
9月前
WAF3.0管理控制台
WAF3.0管理控制台
135 1
|
存储 运维 NoSQL
JumpServer 堡垒机
JumpServer 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。
598 0
JumpServer 堡垒机
|
运维 测试技术 Linux
|
移动开发 运维 网络安全
如何在移动设备上使用堡垒机
堡垒机目前已经成为通用的安全设备之一,很多公司运维人员登录服务器的时候都需要从堡垒机上进行认证授权,然后登录服务器进行操作。近年来随着平板设备的普及,很多时候技术人员有从移动设备上登录堡垒机的需求,本文就是以中远麒麟堡垒机为例,说明如何通过安卓或IOS设备访问堡垒机进行运维操作。
423 1
如何在移动设备上使用堡垒机
|
运维 安全
行云管家堡垒机如何登录服务器
客户想通过堡垒机登录服务器,应如何操作?
1753 0
|
运维 监控 安全
为什么要用堡垒机,堡垒机能给公司带来什么?
堡垒机是一种IT设备,集帐号管理、授权管理、认证管理和综合审计于一体,为企业提供统一框架,整合企业应用系统、网络设备、主机系统。那么企业为什么要用堡垒机?堡垒机能给公司带来什么?
2595 0
|
新零售 运维
什么是堡垒机?个人经验推荐优质堡垒机
堡垒机是用来干什么的?简而言之一句话,堡垒机是用于解决“运维混乱”的。何谓运维混乱?当公司的运维人员越来越多,当需要运维的设备越来越多,当参与运维的岗位越来越多样性,如果没有一套好的机制,就会产生运维混乱。具体而言,你很想知道“哪些人允许以哪些身份访问哪些设备”而不可得。
2129 0