1、堡垒机介绍
在一个特定网络环境下,为了保障网络和数据不受外界入侵和破坏,而运用各种技术手段限制用户的到来,以及实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责;
2、堡垒机具备条件
具备堡垒机的条件是,该机器有公司和私网,其中私网和机房其他机器互通;我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登录服务器和日志审计。
3、使用软件实现跳板机
跳板机主要可以记录用户登录信息以及执行的命令,同时跳板机只有ssh的命令权限,我们使用jailkit实现;跳板机的用户只能使用有限的资源和命令,这样就能保证跳板机的安全性。
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 #把需要的命令导入到虚拟环境中-这是命令库文件
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复制到 /home/jail/usr/sbin/jk_lsh
useradd zhangsan #创建用户
passwd zhangsan
jk_jailuser -m -j /home/jail zhangsan #创建虚拟用户
vim /home/jail/etc/passwd #把zhangsan那一行的/usr/sbin/jk_lsh改为/bin/bash
按2个tab建可以看到只有以下命令:
4、实现客户机命令设计
日志审计以下操作是需要在所有被登录机器上做的;
问题:我们如何记录自己服务器执行过的命令,有人说使用history但是如果终端是非正常退出的,使用history是不记录命令的,以下就是实现记录命令的代理,大家可以测试一下,Linux中的PROMPT_COMMAND会记录下出现提示符前面的命令,利用这个特性可以实现记录所有用户的操作记录;
mkdir /usr/local/records
chmod 777 !$
chmod +t !$
vi /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'
安装后执行命令记录如下:
说明:如果在收集这些日志,在我们被入侵后就可以审计了。