搭建简易堡垒机

一.堡垒机的作用


堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动的服务器,以便集中报警、及时处理及审计定责。
它主要包含登入功能、账号管理、身份认证、资源授权、访问控制和操作审计。我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登入服务器和日志审计。
比较优秀的开源软件有jumpserver,商业堡垒机有齐治、citrix Xenapp。现在也有了云堡垒机。

二.设置简易的堡垒机(跳板机)的思路:

  • 跳板机只开通较少的服务用于登入,做防火墙规则限制
  • 用户、命令权限限制。用jailkit给用户命令限制。
  • 客户机日志审计

三.安装jailkit实现chroot

安装chroot是为了实现chroot限制用户能够执行的命令,它可以把用户限制在一个虚拟的系统里,这个虚拟的环境是chroot的,让用户无法直接操作真实的系统。

安装jailkit:

#切换到/usr/local/src目录下,这个用于存放软件包
cd /usr/local/src/

#下载源码并编译安装
wget http://olivier.sessink.nl/jailkit/jailkit-2.19.tar.bz2
tar -jxvf jailkit-2.19.tar.bz2
cd jailkit-2.19/
./configure
make && make install

生成jail目录,作为虚拟系统的根目录:

mkdir /home/jail

给虚拟系统目录生成一些用户要用到的shell,编辑器、网络相关和ssh:

jk_init -v -j /home/jail/ basicshell
jk_init -v -j /home/jail/ editors
jk_init -v -j /home/jail/ netutils
jk_init -v -j /home/jail/ ssh

创建真实系统用户:

useradd lisi  //注意,这里最好不要带有jail的用户名,可能会出现登入不了的问题
passward lisi

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

mkdir /home/jail/usr/sbin
cp /usr/sbin/jk_lsh /home/jail/usr/sbin/jk_lsh

把真实用户创建成虚拟用户:

jk_jailuser -m -j /home/jail/ lisi

编辑虚拟用户passwd文件,更改:

 1 root:x:0:0:root:/root:/bin/bash
 2 lisi:x:1004:1006::/home/lisi:/bin/bash  //后面登入终端要改成/bin/bash才能够登入成功

我们尝试登入一下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
登入成功后,查询根目录下的文件,看上图,和真实系统对比一下,其实是少了很多的。但是和真实系统/home/jail下的文件是一致的。
而且可用的命令只有118个,常用的yum都没有。

登入成功之后,可以使用密钥登入。
在虚拟用户lisi的根目录下,添加.ssh/authorized_keys,这个用来存放公钥。然后在真实系统里面的/etc/ssh/sshd_config,修改PasswordAuthentication为NO

真实系统上,还需要开启防火墙规则,除了远程端口其他都需要封闭掉,用户先登入它,然后它在ssh连接到真实的服务器上。
还需要在真实服务器上添加白名单ip:

vim /etc/hosts.allow 
sshd: 192.168.1.0/24 1.1.1.1
#添加黑名单
vim /etc/hosts.deny 
sshd ALL //意思是除了白名单其他都deny

四.日志审计

经过上面的步骤之后,真实服务器ssh登入只能通过跳板机登入,其他的都登入不了。
如果觉得还不够安全,还可以在真实服务器上创建普通用户,root用户登入无效。这样跳板机只能登入真实服务器的普通用户,拥有普通权限。需要特权的命令需要普通用户sudo。

日志审计需要在配置在被登入的机器上

#创建一个专门的记录的目录
mkdir /usr/local/records
chmod 777 /usr/local/records
#设置防删除位
chmod +t /usr/local/records

编辑配置文件:

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'
#退出后,执行
source /etc/profile  

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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值