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