免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > linux > 简单构建Linux操作审计系统

简单构建Linux操作审计系统

时间:2011-11-06 13:59来源:未知 整理:寂涯网络 点击:

前言
 
如果你的企业有比较多的linux服务器在运行,你是否想知道运维人员、开发人员或者
黑客在机器上进行了什么样的操作;如果某天有台机器上的重要文件被删除了,你是否很想
知道是谁在什么时候删的?
恩,你现在需要一款审计产品为解决这个问题,市面上有些不同的叫法,有的称之为堡
垒机,有的称之为运维管理审计系统。有没有免费的方案、或者自己容易实现的方案?有,
本文将教你一步步构建自己的linux操作审计系统。
 
方案分析
Linux 操作基础知识
正如大家都知道Windows服务器一般都通过远程桌面(RDP协议)进行管理一样,Linux
的操作一般都是通过SSH登录然后在shell 里敲命令。Ssh登录服务器成功之后,你敲入ls
回车就类似于在windows机器的 cmd里敲入 dir 回车的效果一样,列目录嘛,其它shell
 
  命令也是类似。我们要想知道别人在机器上进行了什么操作,就得知道这些人在 shell里执
行了什么命令。从某种程度上讲,shell就是人下达指令与机器硬件打交道的一个界面。你
在这个界面上输入什么命令,shell会获取并执行它,自然它本身就知道输入的命令是啥。
Linux默认的 shell为/bin/bash,具体你可以cat /etc/passwd一下看效果:
zsf:x:500:500::/home/zsf:/bin/bash
而 bash 本身就有记录命令的功能,即 history。可以执行 history 命令显示你之前执行了
什么命令。但history有其固有的缺陷,比如默认有大小限制、可轻易被人篡改或清空或不
记录。而history分散在各机器上既无法保证其完整性也不方便审计,所以我们需要将之统
一收集上来。
方案基本思路
收集 history的思路比较简单,即将history写入文件并上报(如rsync)到服务端或
者写入 syslog由 syslog实时的发到远程日志服务器。相对讲后者更容易实现一些。将收集
到的 history 进行后续处理则可以写入文件保存或者写入数据库供日后查询。而如何收集
history,则可以从bash的现有功能或者源代码着手考虑。  

方案实施
环境准备
日志服务器环境:Red Hat Enterprise Linux Server release 5.5(32位)
IP:192.168.14.167
从 syslog-ng 官方网站 http://www.balabit.com 下载 syslog-ng、eventlog源代码至
/usr/local/src目录
待审计的客户端环境:Red Hat Enterprise Linux Server release 5.5(32位)
IP:192.168.14.107
http://ftp.gnu.org/gnu/bash/bash-4.1.tar.gz 下载 bash4.1 版本源代码至
/usr/local/src目录
将 history 写入 syslog
前面我们说到bash本身就有history的功能,可以从bash 的现有功能或者源代码着手
实现。
先说bash的现有功能,我们登录机器后得到的shell前面会有个称之为命令提示符的东
西,比如[root@linuxtest ~]#,而如果你cd /tmp之后,命令提示符会变为[root@linuxtest  

tmp]#,这与bash的一些环境变量有关,我们可以修改让其变成更有意义的东西比如提示我
们现在在哪台机器上操作、现在在哪个目录等。其中有个变量叫 PROMPT_COMMAND,其作用
为执行当前命令之后会再将PROMPT_COMMAND里的内容当做bash命令执行 。那我们

 
PROMPT_COMMAND设置为history 1然后执行别的命令看效果:
 
[root@linuxtest tmp]# export PROMPT_COMMAND='history 1'
  473  export PROMPT_COMMAND='history 1'
[root@linuxtest tmp]# echo "test"
test
  475  echo "test"
[root@linuxtest tmp]# echo "testaaa"
testaaa
  476  echo "testaaa"
[root@linuxtest tmp]#  

这样思路就有了,利用
 
PROMPT_COMMAND将当前执行的命令通过logger命令写入syslog,
再加上当前用户名,去掉history 1 中显示的数字就完美了。我们在全局配置文件
/etc/bashrc里加上就可以记录所有用户了,简单的看下系统日志
 
下面我们说说改bash源代码的方法。可能有读者说改源代码这种事情好麻烦,其实bash
4.1 就提供了这样的功能,你只需要启用它就可以了。如果不是这个版本则需要再进行相应
修改,也不是非常难的事。bash4.1 版本增加了将 history 记录到 syslog 的功能,于是下

本页地址 http://www.jybase.net/linux/20111106576.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com