日志审计-sh2log


:Mr.zhou  阅读: 1,873 次

  sh2log 是一款嗅探工具,可以捕获所有的物理终端、虚拟终端的键盘输入和控制台输出。sh2log 分为 Server 端和 Client 端。Client 端将该服务器的所有操作记录下来发送至 Server 端。

  通过在集群环境中部署 sh2log 。可实现日志审计功能。在 Server 端可以重放所有 Client 端的操作。

  约定

  审计服务端:IP 172.16.1.200;审计日志存放路径 /data/history/;daemon (sh2logd)存放路径 /etc/init.d/;日志解析命令 parser 存放路径 /usr/local/sbin/

  被审计端:IP 172.16.1.10

  被审计端:IP 172.16.1.20

  一、配置审计服务端

  下载软件包

[root@log-server ~]# ifconfig eth0|awk -F "[ :]+" '/inet addr/{print $4}'
172.16.1.200
[root@log-server ~]# mkdir -p /server/tools
[root@log-server ~]# mkdir -p /data/history
[root@log-server ~]# cd /server/tools
[root@log-server tools]# wget -q http://www.z-dig.com/repos/sh2log-1.0.tar.gz
[root@log-server tools]# ls
sh2log-1.0.tar.gz
[root@log-server tools]# tar xf sh2log-1.0.tar.gz 
[root@log-server tools]# ls
sh2log-1.0  sh2log-1.0.tar.gz
[root@log-server tools]# 
[root@log-server tools]# cd sh2log-1.0
[root@log-server sh2log-1.0]# ls
config.h  Makefile  parser.c  rc4.h       sh2log.c   sha1.c
GPL.txt   NEWS.txt  rc4.c     README.txt  sh2logd.c  sha1.h
[root@log-server sh2log-1.0]# 

  修改 config.h 文件中的 CONNECT_IP 为 服务端的IP。其他项可以根据需求更改。

[root@log-server sh2log-1.0]# cat config.h 
#ifndef _CONFIG_H
#define _CONFIG_H

#define CONNECT_IP      "172.16.1.200"
#define SERVER_PORT     40119
#define REAL_SHELL_DIR  "/bin/shells"
#define MAX_LOG_SIZE    (1048576 * 256)
#define BUFSIZE         4096

char *secret = "\xBA\x36\xF7\x2A\x50\x8E\x5B\xD3" \
               "\x95\xF9\x34\xD3\x52\x26\x46\x74";

#endif
[root@log-server sh2log-1.0]# 

  默认情况下,日志保存路径为当前启动 daemon 的目录。修改 sh2logd.c 将日志保存目录改为 /data/history

  安装编译依赖 libX11-devel

[root@log-server sh2log-1.0]# yum -y install libX11-devel
...
Installed:
  libX11-devel.x86_64 0:1.6.0-6.el6                                                      

Dependency Installed:
  libXau-devel.x86_64 0:1.0.6-4.el6              libxcb-devel.x86_64 0:1.9.1-3.el6       
  xorg-x11-proto-devel.noarch 0:7.7-9.el6       

Dependency Updated:
  libX11.x86_64 0:1.6.0-6.el6             libX11-common.noarch 0:1.6.0-6.el6            
  libxcb.x86_64 0:1.9.1-3.el6            

Complete!
[root@log-server sh2log-1.0]#
[root@log-server sh2log-1.0]# make

Please specify the target:

        make linux
        make freebsd
        make openbsd
        make cygwin
        make sunos
        make irix
        make hpux
        make aix
        make osf

[root@log-server sh2log-1.0]# make linux
gcc -g -w -Wall -o sh2log  rc4.c sha1.c sh2log.c -lutil -DLINUX
gcc -g -w -Wall -o sh2logd rc4.c sha1.c sh2logd.c
gcc -g -w -Wall -o parser  rc4.c sha1.c parser.c -lX11 -L/usr/X11R6/lib
[root@log-server sh2log-1.0]# 
[root@log-server sh2log-1.0]# ls
config.h  Makefile  parser    rc4.c  README.txt  sh2log.c  sh2logd.c  sha1.h
GPL.txt   NEWS.txt  parser.c  rc4.h  sh2log      sh2logd   sha1.c
[root@log-server sh2log-1.0]# mkdir /bin/shells/
[root@log-server sh2log-1.0]# cp -p /bin/{sh,bash} /bin/shells/
[root@log-server sh2log-1.0]# rm -f /bin/{sh,bash}
[root@log-server sh2log-1.0]# cp -p sh2log /bin/bash
[root@log-server sh2log-1.0]# cp -p sh2log /bin/sh
[root@log-server sh2log-1.0]# 

  parser 为解析日志文件的命令

[root@log-server sh2log-1.0]# cp sh2logd /etc/init.d/
[root@log-server sh2log-1.0]# cp parser /usr/local/sbin/

  启动

[root@log-server sh2log-1.0]# /etc/init.d/sh2logd 

  加入开机启动

[root@log-server ~]# echo '/etc/init.d/sh2logd' >> /etc/rc.local
[root@log-server ~]# tail -n 1 /etc/rc.local 
/etc/init.d/sh2logd
[root@log-server ~]# 

  二、配置被审计端

  也需要修改 config.h 文件中的 CONNECT_IP 为 服务端的IP。

[root@Nginx-1 ~]# ifconfig eth0|awk -F "[ :]+" 'NR==2{print $4}'
172.16.1.10
[root@Nginx-1 ~]# 
[root@Nginx-1 ~]# mkdir -p /server/tools
[root@Nginx-1 ~]# cd /server/tools
[root@Nginx-1 tools]# wget -q http://www.z-dig.com/repos/sh2log-1.0.tar.gz
[root@Nginx-1 tools]# ls
sh2log-1.0.tar.gz
[root@Nginx-1 tools]# tar xf sh2log-1.0.tar.gz 
[root@Nginx-1 tools]# cd sh2log-1.0
[root@Nginx-1 sh2log-1.0]# yum -y install libX11-devel
[root@Nginx-1 sh2log-1.0]# make linux
[root@Nginx-1 sh2log-1.0]# mkdir /bin/shells/
[root@Nginx-1 sh2log-1.0]# cp -p /bin/{sh,bash} /bin/shells/
[root@Nginx-1 sh2log-1.0]# rm -f /bin/{sh,bash}
[root@Nginx-1 sh2log-1.0]# cp -p sh2log /bin/bash
[root@Nginx-1 sh2log-1.0]# cp -p sh2log /bin/sh

  退出终端再次登陆即可生效。

172.16.1.20 配置同 172.16.1.10

  三、查看效果

[root@log-server ~]# ls /data/history/
history-20150823-110111.bin
[root@log-server ~]# 
[root@log-server ~]# parser /data/history/history-20150823-110111.bin 

 SID        SOURCE IP    UID    PID    START DATE      END DATE      DURATION

   1     [172.16.1.10]     0 ( 1455)  23/08 11:02 | 23/08 11:11  X     8m 22s
   2     [172.16.1.20]     0 ( 1646)  23/08 11:14 | 23/08 11:15  X     1m 36s

In interactive mode, use Enter to fast forward, Space to pause and q to quit.
Note that xterm is required for window resizing.

Session ID -> 2

Interactive mode (y/n) ? n

23/08 11:14:00 -> 
23/08 11:14:00 -> 
23/08 11:14:00 -> 
23/08 11:14:00 -> 
23/08 11:14:01 -> clear
23/08 11:14:31 -> ls
23/08 11:15:27 -> date
23/08 11:15:29 -> clear
23/08 11:15:36 -> cd /etc        cd /
23/08 11:17:16 -> RM     rm       cat /etc/hosts
23/08 11:17:31 -> >/etc/hsots


转载请注明原文链接:http://www.z-dig.com/log-audit-sh2log.html



正文部分到此结束