一、堡垒机介绍、搭建简易堡垒机、安装jailkit实现chroot、日志审计
admin
2023-02-28 11:42:05
0

一、堡垒机介绍

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

我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登录服务器和日志审计。

比较优秀的开源软件jumpserver,它的功能主要为认证、授权、审计、自动化、资产管理。

商业堡垒机:齐治, Citrix XenApp。


二、搭建简易堡垒机

比较适合小型的企业,公司没多少机器,但是为了登录,安全,可以搭建一个简单的堡垒机(跳板机)。

功能:登录公司内网服务器,查找,审计你登录到机器里做了哪些操作。

具备堡垒机的条件是,该机器有公司和私网,其中私网和机房其他机器互通(局域网)。

设计堡垒机思路:

跳板机安全设置(iptables端口限制、登录限制sshd_config)

用户、命令权限限制(jailkit) http://blog.chinaunix.net/uid-28310119-id-3503318.html

客户机器日志审计,唯一的不足是不能在跳板机上做,只能在客户机上做。

http://www.68idc.cn/help/server/linux/2014042190951.html


三、安装jailkit实现chroot

# cd /usr/local/src
# wget https://olivier.sessink.nl/jailkit/jailkit-2.19.tar.bz2
# tar jxvf jailkit-2.19.tar.bz2
# cd jailkit-2.19
# ./configure && make && make install
# mkdir /home/jail   //创建一个目录,作为虚拟系统的根目录

下面这四条命令就是把常用的一些命令、文件搞到虚拟系统的目录里去。

# jk_init -v -j /home/jail/ basicshell        //这条命令就是把shell相关的命令、库文件搞到虚拟系统的根目录下去。
# jk_init -v -j /home/jail/ editors           //编辑器vi,vim搞过去。
# jk_init -v -j /home/jail/ netutils          //网络相关的。
# jk_init -v -j /home/jail/   ssh             //远程登录时用到的。
# mkdir /home/jail/usr/sbin
# cp /usr/sbin/jk_lsh /home/jail/usr/sbin/jk_lsh   //相当于是虚拟系统的一个shell,把它复制过去。
1、# useradd zhangsan    //原系统创建一个用户,如果需要创建多个用户,就从这一步开始,执行这四步:1-4。
2、# passwd zhangsan
3、# jk_jailuser -m -j /home/jail zhangsan    //在虚拟系统里创建一个用户
# cd /home/jail/
[root@wbs jail]# cat etc/passwd  //虚拟用户zhangsan
root:x:0:0:root:/root:/bin/bash
zhangsan:x:1122:1122::/home/zhangsan:/usr/sbin/jk_lsh
//usr/sbin/jk_lsh这个shell是虚拟系统的shell,这个shell不能登录,所以需要改成/bin/bash,这样才能登录虚拟用户zhangsan
4、# vim /home/jail/etc/passwd //把zhangsan那一行的/usr/sbin/jk_lsh改为/bin/bash
# ls /home/jail/   //可以看到常用的命令,库文件都在虚拟系统的根目录下了。
bin  dev  etc  home  lib64  usr



新建一个会话窗口,IP即本机的IP,用户名zhangsan,密码zhangsan,登录,会看到两行“bash: /usr/bin/id: No such file or directory”,因为要执行/etc/profile,在这个里面没有这个命令,不用关心。

$ ls -l /    //可以看到只有那6个目录

按两下Tab键可以看到只有117个可用的命令,就都是bin下的命令。

创建密钥登录,在.ssh目录下添加密钥,还需要在原系统的# vi /etc/ssh/sshd_config设定只允许密钥登录,将PasswordAuthentication yes改为no。

还要限定iptables规则,把不需要的端口全部限制,不用的服务关掉。

还要限定登录的源IP:
# vi /etc/hosts.allow
新增:
sshd: 192.168.149.0/24 1.1.1.1 2.2.2.2
# vi /etc/hosts.deny     //除了允许的网段和IP,其他的全部拒绝,这样就可以增加机器的安全系数。
sshd: ALL


四、日志审计

下面的操作是在客户端上做的一些限制,限制来源IP。

到另一台机器,先限制/etc/hosts.allow和deny

在hosts.allow里新增sshd: 192.168.149.133    (跳板机IP)

在hosts.deny里新增sshd: ALL

这时候再重新登录这一台机器就不能登录了。

到zhangsan那一台可以登录:

# ssh root@192.168.149.129

这样就做成了一个跳板机。

登录对方用户的时候用zhangsan,因为现在这台机器是zhangsan,所以对方机器也需要创建一个zhangsan的用户。


以下操作是需要在所有被登录机器上做的

# mkdir /usr/local/records
# chmod 777 !$
# chmod +t !$
# vi /etc/profile //添加
 if [ ! -d  /usr/local/records/${LOGNAME} ]     //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'

重新再登录这台机器
# cd /usr/local/records/
[root@MRX records]# ls
root
[root@MRX records]# cd root/
[root@MRX root]# ls
bash_history
[root@MRX root]# tail bash_history 
2019-10-01 19:32:06 ##### root pts/0 (192.168.149.1) #### 2019/10/01 19:19:58 vim /etc/profile
2019-10-01 19:32:17 ##### root pts/0 (192.168.149.1) #### 2019/10/01 19:32:17 ls
2019-10-01 19:32:34 ##### root pts/0 (192.168.149.1) #### 2019/10/01 19:32:34 cd /usr/local/records/
2019-10-01 19:32:35 ##### root pts/0 (192.168.149.1) #### 2019/10/01 19:32:35 ls
2019-10-01 19:32:37 ##### root pts/0 (192.168.149.1) #### 2019/10/01 19:32:37 cd root/
2019-10-01 19:32:38 ##### root pts/0 (192.168.149.1) #### 2019/10/01 19:32:38 ls

这个不像系统里history,它只有在你正常退出这个终端后才会记录这些命令,敲过的命令仅仅只是保存在内存里的,并没有记录到文件里,要想记录到文件里,必须要正常的退出,如果断电了或者其他原因退出了,这些命令就记不进去。但是这个日志审计就没问题。

[root@MRX root]# useradd zhangsan    //创建一个zhangsan用户
[root@MRX root]# passwd zhangsan

再到跳板机登录它:

[zhangsan@wbs ~]$ ssh zhangsan@192.168.149.129

//然后随意执行一些命令,再到客户端上看,就可以看到zhangsan用户敲过的命令。

[root@MRX records]# ls
root  zhangsan

这种方法并不完美,是可以破解的,这只是一个简单的堡垒机,要想做一个完美的堡垒机,还需要借助一些专业的工具、软件。

相关内容

热门资讯

国家防总提升针对广东的应急响应... 今年第12号台风“红霞”已于7月25日早晨加强为台风级。预计,“红霞”将于25日夜间至26日早晨在香...
美媒爆猛料:两国首次直接袭击伊... 多名知情人士向美国《华尔街日报》透露,巴林和科威特在7月初对伊朗境内军事目标实施了秘密空袭,知情人士...
郑丽文:只有中国国民党可以确保... 据凤凰卫视报道,国民党今天(7月25日)举行“全代会”,党主席郑丽文与党内提名的县市长参选人一同造势...
透视上半年消费外贸外资走势 新华社北京7月23日电 题:稳中提质 韧性增强——透视上半年消费外贸外资走势新华社记者谢希瑶、王聿昊...
水龙头出水小怎么解决 水龙头出水小可能是由多种原因引起的,以下是一些常见的解决方法:1. 清洁水龙头:水龙头使用时间长了,...
小神童洗衣机启动后不出水直接洗 有可能是洗衣机的进水阀被烧坏了,需要换一个新的进水阀安装上即可。另外不建议自己擅自拆卸洗衣机内部进行...
祝贺景德镇! 海报制作:苗夏阳正在韩国釜山举行的联合国教科文组织第48届世界遗产大会25日通过决议将“景德镇手工瓷...
中央空调不制冷怎么办-中央空调... 中央空调,是电器股份有限公司主要产品之一,但是由于中央空调使用环境和使用方式的不同,在使用过程中就会...
空调不出水不制冷怎么回事 内罩长期不清洗,当然房间密封性差的话也会导致这种现象;其次就是外机问题,如果外机积满灰尘,会成空调制...
空调不出水,不制冷 原因有多种,可能是电源插头没有接牢、制冷剂不足、空调短时间休息间隙、空调滤网积灰等等。很多情况可以自...