由于有非常多的linux服务器需要管理,为了审计管理员的操作,以确认各自的职责,需要对linux服务器进行审计,通过比较选择了snoopy这个开源方案。
snoopy可以到 http://sourceforge.net/projects/snoopy/ 下载
下面记录下安装使用的注意事项
在linux 32位系统下,可以按照snoopy自带的README,执行如下命令
./configure
Make
make install
Make enable
这时会在/usr/local/lib目录下创建个snoopy.so,并在/etc/ld.so.preload里加入/usr/local/lib/snoopy.so
而在linux 64位系统下需要重点注意,不能完全按照README的来执行,如果直接按照32位的方法来,将会在执行32位程序时报错:
ERROR: ld.so: object '/usr/local/lib/snoopy.so' from /etc/ld.so.preload cannot be preloaded: ignored.
我们需要编译两个版本的snoopy,一个放在/usr/local/lib下,一个放在/usr/local/lib64下
这可以通过修改源码里的Makefile,32位版本的Makefile里修改CFLAGS,在后面添加-m32,意思就是编译32位的程序,执行make&&make install,32位版本的snoopy.so将存放在/usr/local/lib下;
64位版本修改Makefile,LIBDIR=${exec_prefix}/lib64 ,执行make&&make install,64位版本的snoopy.so将存放在/usr/local/lib64下
最后我们在/etc/ld.so.preload加入/usr/local/$LIB/snoopy.so,意思就是自动寻找32位的so文件和64位的so文件
这时我们已经可以在本地记录下登录到系统的用户执行的所有命令,但是这还不够,我们需要一个集中日志服务器,这里我们使用syslog-ng,通过这个日志服务器将所有需要审计的服务器的日志同步过来,linux shell审计的任务就此完成。