- 在這個章節中,我們要教大家跳的是熱情有勁的巴西 SAMBA 舞蹈.....喔不~搞錯了~是要向大家介紹 SAMBA 這個好用的伺服器啦!咦!怪了!怎麼伺服器的名稱會使用 SAMBA 呢?還真是怪怪的呢!那麼這個 SAMBA 伺服器的功能是什麼呢?另外,他最早是經由什麼樣的想法而開發出來的呢?呵呵!底下就讓我們慢慢的談一談吧!
首页 > IT基础架构 > 网络安全 > 簡易 SAMBA 伺服器
簡易 SAMBA 伺服器 |
原理:
|
簡易 SAMBA 伺服器 |
原理:
|
註:或許您會發現在 Windows 網路設定裡面常常看到 NetBEUI 這個咚咚,那是什麼呢?事實上,那個是 NetBIOS Extened User Interface 的簡寫,也是 IBM 在 NetBIOS 發展出來之後的改良版本。雖然這兩者的技術不太相同,不過,我們只要知道一些簡單的概念就可以了!所以,在這裡我們不針對 NetBEUI 來介紹。


| [root@test root]# rpm -qa | grep samba samba-common-2.2.7a-8.9.0 redhat-config-samba-1.0.4-1 samba-2.2.7a-8.9.0 samba-client-2.2.7a-8.9.0 注意一下,上面顯示的例子是 Red Hat 9 的檔案,其中那個 redhat-config-samba 是 Red Hat 額外提供的設定功能,可以不用安裝他啦! |
| [root@test root]# wget http://ftp.nsysu.edu.tw/Unix/Samba/samba-2.2.8a.tar.gz 註:上面的網址只是一個範例,請自行到中山大學下載! [root@test root]# cd /usr/local/src [root@test src]# tar -zxvf /root/samba-2.2.8a.tar.gz 這個時候會有一個目錄跑出來: /usr/local/src/samba-2.2.8a [root@test src]# cd samba-2.2.8a #(在這個目錄中察看一下 README 喔!) [root@test samba-2.2.8a]# cd source [root@test source]# ./configure --prefix=/usr/local/samba > --with-automount --with-smbmount --with-pam > --with-mmap --with-quotas --with-libsmbclient 還是要重複的給他強調一下: 1. 請先以 ./configure --help 察看一下 configure 的一些相關的參數用法 2. 如果發生任何錯誤,請不要往下進行 make 的動作,因為還是不對的! 3. 萬一發生任何錯誤時,通常是由於一些函式庫找不到的緣故,請參考此目錄 下的 config.log 這個檔案的內容,裡面會記錄一些錯誤的歷程。 [root@test source]# make #(開始進行編譯!) 這個過程會花一些時間,因為他會將原始碼 (source code) 以您剛剛的設定 並以 gcc 這個 compiler 來進行編譯喔!所以會花一些時間的啦! [root@test source]# make install 將剛剛編譯完成的可執行 binary 檔案安裝到 /usr/local/samba 裡面去! 在這個例子當中,未來您在設定 SAMBA 時,必需要到 /usr/local/samba 當中喔! |
| [root@test root]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak.raw [root@test root]# vi /etc/samba/smb.conf # 這個檔案本身就是很詳細的說明檔,限於篇幅,我們沒有將註解的部分寫下來, # 這裡的目的是想讓大家瞭解 smb.conf 的內容規劃咯! [global] workgroup = birdhouse server string = Linux Samba Server netbios name = birdlinux client code page = 950 printcap name = /etc/printcap load printers = yes printing = lprng log file = /var/log/samba/log.%m max log size = 500 # 那個 500 數字是 Kb 喔! security = user encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # 上面的幾行當中,注意 [global] ,由 [global] 到底下的 [Webpage] 之間的設定 # 都是 [global] 的設定項目!而 [global] 的主要內容都是與主機的設定有關! # 比較重要的有底下幾個設定值: # workgroup 工作群組:同一個區域網路內,要具有相同的 workgroup # netbios name 主機名稱:這個主機名稱就是 netbios 的名字!請注意,如果你 # 沒有設定 netbios name 的話,預設的 NetBIOS name 會以 # HOSTNAME 來替代! # server string 這個是主機的說明,隨便寫寫沒關係! # security 這個重要,是用來規定 SAMBA 主機的安全登入項目,有底下幾種: # share :不進行安全登入,亦即沒有設定帳號與密碼 # user :設定主機的密碼檔作為登入的驗證檔案,這與底下的 # smb passwd file 有關喔! # domain :就是讓您的 SAMBA 作為 PDC 囉! # log file 登錄檔放置的目錄所在喔! # 其他相關的幾個設定項目請參考 man 5 smb.conf 我們底下也會列出幾個常用的 # 設定項目說~ [Webpage] comment = My Home Page path = /var/www/html read only = no public = yes writable = yes create mode = 0664 directory mode = 0775 # 這個部分則是針對每個分享的目錄或者是裝置進行權限方面的規定了! # 幾個簡單的設定項目有: # comment :這個目錄的說明! # path :這個項目真正的 Linux 檔案系統裡面的目錄,請看底下的說明 # read only:是否唯讀? # public :是否讓所有可以登入的使用者看到這個項目? # writable :是否可以寫入?!這裡需要注意一下喔!那個 read only 與 writable # 不是兩個蠻相似的設定值嗎?如果 writable 在這裡設定為 no ,亦即 # 不可寫入,那跟 read only 不就互相抵觸了?!那個才是正確的設定? # 答案是:最後出現的那個設定值為主要的設定! # create mode 與 directory mode 都與權限有關的咯! |
| [homes] valid users = %S .... |
| [root@test root]# vi /etc/samba/lmhosts 127.0.0.1 localhost 192.168.0.100 birdhome 192.168.0.110 birdbrother1 192.168.0.120 birdbrother2 |
| [root@test root]# cd /etc/samba [root@test samba]# cp smb.conf smb.conf.bak # 玩伺服器最重要的一個概念就是『有備無患』啊! # 所以,先將重要的資料給他備份下來! ^_^ [root@test samsa]# vi smb.conf # 底下的設定為最基礎的設定值!最重要的地方在於 security = share 的地方! [global] workgroup = birdhouse netbios name = birdhome server string = Bird's testing SAMBA Server client code page = 950 # 這個 client code page 的設定有趣的很!因為 SAMBA 支援多語系的編碼, # 我們習慣的編碼為 cp590 亦即是 code page 950 這個編碼,所以, # 想要讓您的 SAMBA 可以正確的在 Windows 上面顯示出中文,就得加入 # client code page = 950 喔! (如果沒有設定,那麼預設值是 850 呢!) # 如果 max log size = 0 的話,那表示登錄檔檔案大小沒有限制! log file = /var/log/samba/log.%m max log size = 0 security = share socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 interfaces = 192.168.0.100 dns proxy = no [tmp] comment = Temporary file space path = /tmp # 真正的開放出來的路徑在這裡! read only = no public = yes # 上面兩個設定在告訴大家,不但可以存取(read only = no) # 也可以讓大家查詢(public = yes)! [root@test samba]# grep -v '^#' smb.conf |grep -v '^;'|grep -v '^$' # 這個動作在確認一下上面的設定是否相同,因為有時候可能會忘記將某個 # 設定給註解掉呢! ^_^ |
| [root@test samba]# testparm Load smb config files from /etc/samba/smb.conf Processing section "[tmp]" Loaded services file OK. Press enter to see a dump of your service definitions <==這裡按下 Enter # Global parameters [global] client code page = 950 code page directory = /usr/share/samba/codepages workgroup = birdhouse netbios name = birdhome netbios aliases = netbios scope = server string = Bird's test SAMBA Server interfaces = 192.168.0.100 bind interfaces only = No security = SHARE encrypt passwords = No ..... [tmp] comment = Temporary file space path = /tmp read only = No guest ok = Yes # 你應該會看到如上的畫面,這個 testparm 可以用來察看所有 SAMBA 的屬性, # 這些屬性很多都是預設值!如果沒有 smb.conf 裡面設定時,就是預設值, [root@test samba]# /etc/rc.d/init.d/smb restart Shutting down SMB services: [ OK ] Shutting down NMB services: [ OK ] Starting SMB services: [ OK ] Starting NMB services: [ OK ] # 請注意,上面 /etc/rc.d/init.d/smb 這個檔名是 Red Hat 的設定值, # 很多其他的套件不見得是使用這個檔名的!例如 OpenLinux 使用 samba 這個, # 所以請您務必使用 RPM 的相關指令來檢驗一下檔案名稱,或者使用 # # 另外,如前所說的, SAMBA 會啟用兩個 daemons ,所以這裡顯示兩個 OK! [root@test samba]# netstat -tlunp | grep ':13' tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 4307/smbd udp 0 0 192.168.0.100:137 0.0.0.0:* 4311/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* 4311/nmbd udp 0 0 192.168.0.100:138 0.0.0.0:* 4311/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:* 4311/nmbd # 如果看到這樣,呵呵!就應該沒有問題啦! |
| [root@test root]# smbclient -L //birdhome added interface ip=192.168.0.100 bcast=192.168.0.255 nmask=255.255.255.0 Password: <==這裡按 Enter Domain=[birdhouse] OS=[Unix] Server=[Samba 2.2.7a-security-rollup-fix] Sharename Type Comment Server Comment Workgroup Master |
不過,需要特別留意的僅是 Linux 的檔案權限與 SAMBA 設定的權限關係!這個問題我們會在安全性與問題克服裡面進行詳細的說明喔! (註:這個問題最常發生在使用者身上,因為『即使 SAMBA 主機設定您可以無限制的使用某個目錄下的檔案,但是是否能夠使用,仍然得視登入 SAMBA 的該使用者對於 Linux 的檔案系統是否有存取的權限』喔!)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/34329/viewspace-836568/ ,如需转载,请注明出处,否则将追究法律责任。