Samba日志分析html
随着咱们文件共享安全级别的提升,愈来愈多的状况下须要对日志进行记录并审计。Linux平台下的Samba服务的配置文件是smb.conf,有很多图形化配置工具例如Webmin、smbconftool、SWAT及RedHat提供的system-config-samba等工具均可觉得您简化配置smb.conf的过程,但这些工具的细致程度却没法知足samba的需求,对于如何分析samba日志的问题,没有现成的工具,咱们必须对其日志结构有所了解。mysql
1 .Samba默认提供的日志web
具体怎么配置samba就不讲了,下面的实例用以跟踪查询客户端经过SMB访问共享资源的状况。命令netstat –na |grep ESTABLISHED 表明显示TCP已链接状况,如图1所示。sql
图 1 Samba日志分析数据库
如图1中倒数第二行的PID 10600,表明smbd的进程ID号,用“ps -ef |grep 10600”可查看到。与此同时,系统会把samba进程启动日志写到/var/log/messages中。浏览器
一般,全部客户机访问日志都放在一个日志里不但查询不便并且文件容易变得很大不便于管理,如何作到将每一个客户端的链接信息存放在单独的文件呢?咱们须要在smb.conf上动点脑筋了。在smb.conf文件中已有一行代码能够实现以上目的。安全
log file = /var/log/samba/%m.log服务器
去掉前面的";"号而后,重启smbd服务,若是担忧日志过大则启用下面这条命令ide
max log size = 500 最大日志容量为500KB工具
注意:PID起什么做用呢?一般你们不会关注PID号,有时在调试故障时却能发现问题。
这里解释PID在调试故障时发挥得做用,如图2所示。
图2 strace分析PID
#ps -ef |grep smb
上述命令用于查找samba进程列表,根据所连用户身份(这里是test用户)能够轻松的指导PID是13778就是该用户的进程,接着运行带有两个参数的strace命令限制于文件相关的系统调用输出。“-p 13778”参数告诉strace使用这个进程ID链接到运行的进程中。这条命令执行后,结果输出会比较长。你会看到smb会不停的扫描目录看看有无变化,当用户尝试有问题的操做时,就会很是详细的信息了,这些信息给用户解决问题(尤为是权限带来的问题,例如出现拒绝访问等权限问题)带来了不小的帮助。
若是你以为记录日志不详细,那么还能够经过log level参数来调整日志记录级别,级别越高,记录越详细。Samba使用LOG_DAEMON将日志级别分为10级,下表1列出经常使用的4级。
表1 Samba日志级别
类型 |
级别 |
LOG_ERR |
0 |
LOG_WARNING |
1 |
LOG_NOTICE |
2 |
LOG_INFO |
3 |
使用审计模块得到更多详细信息,下面介绍samba的full_audit模块,方法以下:
在全局配置项目中加入以下代码
#Audit settings
full_audit:prefix = %u|%I|s
full_audit:failure = connect
full_audit:sucess = connect disconnect opendir mkdir rmdir closedir open close fchmod chown fchown chdir
full_audit:facility = local5
full_audit:priority = notice
%u:表示用户
%I: 用户IP地址
%S Samba服务器共享名称
同时在共享目录例如[public]配置项下,添加
vfs object=full_audit
修改完smb.conf配置保存退出而后用testparm测试配置文件正确性。下面为 samba审计日志一条样本:
#cat 192.168.150.154.log.old |grep audit
Initialising custom vfs hooks from [full_audit]
Module ‘/usr/lib/samba/vfs/full_audit.so’ loaded
[2013/05/05 04:02:06,0] modules/vfs_full audit.c:log_success(689)
下面咱们将升级日志记录到Mysql数据库并经过web发布以便查询。
为了使用 Mysql数据库记录 samba audit log日志, 并实现通WEB方式查阅Samba审计日志,咱们作了以下实验,首先在Centos Linux 5.5系统下用源代码方式安裝 Samba ,而后到SMBD Audit 官网: http://smbdaudit.sourceforge.net/下载smb_audit软件,具体步骤以下:
1)下载 smb_audit-0.3.7
#cd /usr/local/src/
#wget "http://sourceforge.net/settings/mirror_choices?projectname=smbdaudit&filename=smbdaudit/smb_audit-0.3.7/smb_audit-0.3.7.i386.tar.bz2"
#tar jxf smb_audit-0.3.7.i386.tar.bz2
2.)创建 MySQL 资料库
cd /usr/local/src/smb_audit-0.3.7
mysql -u root -p -A mysql
mysql> create database smbd;
mysql> grant all on smbd.* to 'smbd'@'localhost' identified by 'smbd001';
mysql> exit
mysql -p smbd < smbd_mysql.sql
3).从新编译 mysql_audit.so 给 samba-3.0.28 使用
#cd /usr/local/smb_audit-0.3.7/src2
#yum install mysql-devel
#mv 3.0.28a 3.0.28a-bak
#ln -s /usr/local/src/samba-3.0.28/source 3.0.28a
#cp 3.0.28a/popt/popt.h 3.0.28a/include/
#make
#cp mysql_audit.so /opt/samba/lib/vfs/
4).配置 smb.conf 使用 mysql_audit
#vi /etc/samba/smb.conf
#vfs object = mysql_audit
#service smb restart
5).WEB配置
#cd /var/www/html/
#ln -s /usr/local/src/smb_audit-0.3.7 smb_audit
6).浏览器访问效果http://ip/smb_audit/ ,如图3所示。
图3 经过web浏览samba日志
有关Samba传输安全你们可参考博文:http://chenguang.blog.51cto.com/350944/237380