Windows的網路芳鄰及Unix的Samba ports

轉貼:http://www.dotblogs.com.tw/benjamin/archive/2009/08/08/9934.aspx

Windows的網路芳鄰及Unix的Samba

都是建構於NetBIOS(原由IBM發展)之上
使用的是CIFS(Common Internet File System)檔案系統
以網路芳鄰來說 防火牆需要開啟UDP 137、138及TCP 139、445 port
137:NetBIOS Name Service
138:NetBIOS Datagram Service
139:NetBIOS Session Service
445:Microsoft-DS

NFS則是由Sun發展而來的服務
使用的是Network File System檔案系統
因NFS使用的埠號不固定
故需透過RPC(Remote Procedure Call)協定來紀錄及告知使用的埠號
流程是 NFS Server啟動時主動向RPC註冊自己使用哪幾個1024以下的port
而client端要存取NFS時就向RPC的TCP 111 port詢問NFS使用哪幾個port
待RPC回覆client後 client就能成功的存取NFS Server的資源

另外一提的是NetBIOS為標準的協定
但WINS就是Microsoft自家的了

而當初NetBIOS是為了應因小型網路通訊而生之協定
故NetBIOS無法跨越router 只能在區網中運作
因此後來發展了NetBIOS over TCP/IP (NetBT)可跨越router之協定

轉貼:Samba-vscan 安裝實錄

“檔案共享”是一般中小企業最常見的伺服器服務之一, 而一套搭配 Windows Server 運作的伺服器端 (Server-based) 防毒軟體動輒數萬元以上, 難道沒有更經濟的選擇嗎?

Linux 的 Samba 除了可以提供 Windows 作業系統的 File Sharing, 還能當 WINS, Printer Server. 而 Samba-vscan 是 Samba 的外掛模組, 它提供了 Samba 環境的 Server-based 掃毒功能, 能在第一時間防止使用者將病毒檔案置入伺服器中. 以下是 Samba-vscan + ClamAV 的實際安裝過程:

安裝 Samba-vscan

範例環境: Fedora Core 2, 預設已安裝 samba 3.0.3 (binary installation) 和 clamav (source installation)

Step 1: 下載 Samba Source

確定目前安裝的 Samba 版本
#rpm -q samba
samba-3.0.3-5 → 目前安裝的 samba 版本為 3.0.3

至 Samba 官方網站下載對應的 Source
#wget http://us2.samba.org/samba/ftp/old-versions/samba-3.0.3.tar.gz

Samba Source (old versions) 官方下載網頁
Samba 官方網頁

Step 2: 下載 Samba-vscan

#wget http://www.openantivirus.org/snapshots/samba-vscan-0.3.5CVS-16-12-2003.tar.bz2

samba-vscan 官方下載網頁

Step 3: 安裝 Samba-vscan

#tar -zxf samba-3.0.3.tar.gz
#tar -jxf samba-vscan-0.3.5CVS-16-12-2003.tar.bz2
#cd samba-3.0.3
#./configure
#make headers
#cp -ra ../samba-vscan-0.3.5CVS-16-12-2003 ./examples/VFS
#cd ./examples/VFS/samba-vscan-0.3.5CVS-16-12-2003
#./configure
#make
#cp vscan-clamav.so /usr/lib/samba/vfs
#cp ./clamav/vscan-clamav.conf /etc/samba

Step 4: 修改相關設定

#vi /etc/samba/vscan-clamav.conf

目標: clamd socket name = /var/run/clamd
動作: 修改 clamd socket 路徑 (請參考 clamd.conf: LocalSocket /path/to/clamd)

目標: infected file action = quarantine
動作: 預設將感染病毒的檔案隔離到 /tmp, 若想直接刪除受感染的檔案, 將 = quarantine 改成 = delete 即可

#vi /usr/local/etc/clamd.conf

目標: #ScanRAR
動作: 把 # 拿掉, 變成 ScanRAR

#vi /etc/samba/smb.conf

目標: [global] 區
動作: 加入以下二列

vfs object = vscan-clamav
vscan-clamav:config-file = /etc/samba/vscan-clamav.conf

Step 5: 啟動相關 daemon

(1)於 /etc/cron.hourly 建立一可執行的 bash script file, 內容為:

#!/bin/sh

/usr/local/bin/freshclam > /dev/null 2>&1

每小時系統將自動更新 clamav virus database

(2)#/usr/local/sbin/clamd (啟動 clamav daemon)

(3)#service smb restart (重新啟動 samba daemon)

測試 samba-vscan 是否正常運作

於 Windows 環境中下載病毒檔案, 然後將病毒檔案放進 samba 資料夾,
如果該檔案無法置入 samba 資料夾中, 即表示 samba-vscan 已正常運作.

Windows 出現警告訊息 (Windows 2000/XP 需啟動 Messenger 服務; Windows 95/98/ME 需執行 WinPopup 才能收到訊息):

http://cha.homeip.net/blog/archives/samba-vscan.jpg

/var/log/messages 記錄:

Apr 25 16:13:45 linuxhostname smbd_vscan-clamav[18752]: ALERT – Scan result: ‘/path/to/eicar_com.zip’ infected with virus ‘Eicar-Test-Signature’, client: ‘local.area.network.ip
Apr 25 16:13:45 linuxhostname smbd_vscan-clamav[18752]: INFO: file ‘/path/to/eicar_com.zip’ removed successfully

Samba 啟用稽核記錄及資源回收筒功能

目的:
啟用 “資源回收筒" 功能, 可救回誤刪的檔案.
啟用稽核記錄, 可追查誰動了哪個檔案.
環境: Fedora 9, Samba 3.2.11-0.28.fc9
啟用 Samba extd_auditrecycle 模組

建立資源回收筒目錄

mkdir -p /share/smbshare /share/recycle
chmod 1777 /share/smbshare
chmod 777 /share/recycle

設定/etc/smb.conf 啟用稽核記錄及資源回收筒

vi /etc/samba/smb.conf

[global]
log level = 0 vfs:0
log file = /var/log/samba/log.%m
max log size = 0
[share]
path = /share/smbshare
comment = Shared Folder
create mask = 0770
directory mask = 0775
public = yes
writeable = yes
<span style="color: #3366ff;">vfs objects = extd_audit recycle</span>
<span style="color: #3366ff;">recycle: keeptree = yes</span>
<span style="color: #3366ff;">recycle: repository = ../recycle/%u</span>
<span style="color: #3366ff;">recycle: exclude = .tmp|.temp</span>
<span style="color: #3366ff;">recycle: versions = yes</span>
<span style="color: #3366ff;">[recycle]</span>
<span style="color: #3366ff;">path = /share/recycle/%u</span>
<span style="color: #3366ff;">comment = Recycle Bin</span>
<span style="color: #3366ff;">browseable = no</span>
<span style="color: #3366ff;">writable = yes</span>

/etc/init.d/smb restart

參考資料:
http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/VFS.html