網路上不是官方網站密密麻麻的英文解說, 就是對岸同胞的簡體博客文章, 老實說, 很雜很亂看不懂

若你是使用FreeBSD系統為伺服器架站基礎, 又不想看英文或簡體中文, 那你看這篇就對了!!

以下內容將以FreeBSD為基礎講解說明, 其他作業系統, 請自行依樣畫葫蘆地對照修改

整體流程大致如下:

* 更新系統

* 安裝SAMBA

* 設定SAMBA

* 設定FIREWALL

* 檢查設定

* 啟動服務

完整討論請接著看下去...

首先, 請先完成作業系統安裝設定 ( 前置作業不在這裡討論 )

切換至 root 帳號

$ su - root

更新ports套件

(這部分屬前置作業, 省略不談)

安裝SAMBA套件

# cd /usr/ports/net/samba34

# make install

順利安裝完成後 就可以把它清掉了

# make clean

接著 調整分享資料夾設定

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

基本參數設定

workgroup = MYGROUP  #設定群組名稱

server string = Welcome to my samba server #設定歡迎訊息 (自訂)

load printer = no #如果沒有印表機 請改為no 若有則保留預設值yes

其餘保持預設值即可

接著設定分享資料夾

[samba]                                                   #登入samba後顯示的資料夾名稱  

comment = my private samba              #對此設定的註解, 可有可無  

path = /mnt/samba_mount_point       #分享資料夾的實體路徑  

public = no                                             #所有人都看得到? 若為私人資料夾請設定為no 

 writeable = yes                                     #是否提供寫入功能? 請依需求設定  

read only = no                                       #是否為唯讀資料夾? 請依需求設定  

powseable = no                                   #是否可以被瀏覽? 請依需求設定  

valid users = user1[,user2,...]             #登入此資料夾的使用者名稱烈表 (多帳號請以半形逗號區隔)  

create mask = 0664                             #檔案建立遮罩  

directory mode = 0755                        #資料夾建立遮罩

若有多組資料夾則依樣畫葫蘆即可分享多個資料夾

在啟動samba服務前, 請先輸入以下指令檢查設定檔是否輸入正確

# testparm

若正確無誤, 那麼就啟動samba服務吧!!

# service samba start (service smbd start / service nmbd start)

首次執行此命令可能會出現警告訊息, 這時請在執行一次相同指令即可

最後, 設定服務於開機時自動啟動

# echo "samba_enable=YES" >> /etc/rc.conf

到此, samba伺服器設定就算完成了

接著新增samba服務使用者 (與系統帳號無關)

新增samba帳號

# smbpasswd -a user1

接著依提示設定使用者密碼 (重覆輸入兩次)

請注意, 這邊的帳號與smb.conf設定相關, 請依自己伺服器設定帳號修改smb.conf設定檔

伺服器設定, 使用者帳號, 都設定完成了, 應該可以登入了吧?

不, 還不行!! 防火牆還沒設定呢!! 預設是沒有samba服務的, 目前用者還無法順利連線!!

查看防火牆設定 (若已經將samba相關通訊埠開放請跳過本段說明)

# ipfw -a list

若在此時系統回應command not found, 表示你的系統尚不支援防火牆, 請看本篇文末說明

若先前設定過, 那麼輸入以上指令後應該會看到

04100   xxxx   xxxx allow ip from any to any dst-port 137

04200   xxxx   xxxx allow ip from any to any dst-port 138

04300   xxxx   xxxx allow ip from any to any dst-port 139

應該會看到類似這樣的輸出 (關鍵是137, 138, 139這幾組數字)

若沒有表示你還沒有讓防火牆開放samba服務通行

(或是你的samba服務port被更動過, 例外狀況, 這邊不討論)

新增防火牆例外

# vi /etc/rc.firewall

$ add pass all from any to any 137

$ add pass all from any to any 138

$ add pass all from any to any 139

↑ 請在適當的地方加入上面三行指令 ↑

每台電腦的設定檔可能會有所不同, 請自行依情況調整

這邊用比較懶人的做法 any to any, 最簡單, 但其實不太妥當

若希望服務安全一些, 請分別針對 source & destination 設定

完成後再用指令 ipfw -a list 檢查自訂條件是否已經被防火牆接受

若防火牆設定之後, 卻發現 ipfw -a list 指令列出來的沒有新增的條件

若有, 恭喜您, 你的設定都完成了

若沒有, 則表示你的設定有問題, 請再檢查一次設定檔 ( rc.firewall )

常見的錯誤狀況是誤將指令錯置於 flush 之前, 導致指令下達後被清掉而無法順利套用

若您在設定防火牆時系統回應 command not found

請在kernel設定檔加入以下文字

options         IPFIREWALL              # required for IPFW

完成後重新編譯更動後的 KERNEL 設定檔

重新開機後再繼續防火牆設定操作

KERNEL 重編請參考官方網站說明 → 請點此處

附註:

若你是使用FreeBSD 8.1R (含早期版本), 且硬碟容量大於 2TB 請注意 FreeBSD 系統限制

此部分於 FreeBSD 8.2R 已獲得完整支援 ( FreeBSD 8.2R 發佈時間為 2011-02-24 )

FreeBSD版本升級至8.2R請參考官方網站說明 → 請點此處

大容量硬碟相關設定未在此處列出, 將另開新聞張發文討論 :)

以上操作順利完成的話, 恭喜, SAMBA伺服器已經架設完成囉

參考來源