2,021 瀏覽數

RHEL5 – Samba

rhel001
Windows 的系統透過 SMB (Session Message Block protocol, 也叫做 NetBIOS 或 LanManager protocol.) ,來進行檔案分享的傳輸協定,而 samba 是在 Linux 系統下使用 SMB (NetBIOS) 協定來進行檔案分享的傳輸方式.也因此藉由 samba 來讓 Windows 與 Linux 系統的檔案能夠使用同一種方式來進行分享. Windows 與 Linux 之間 SMB /NMB 協定關聯如下圖所:
samba_block
那什麼是 SMB(NetBIOS)呢!!下面可以看到這個協定的演化過程.

  • NetBIOS
    最早由 IBM 開發出來的 NetBIOS API(Network Basic Input/Output System Application Program Interface),這個 NetBIOS 由 18 個 API 組成,可以用來命令當時的電腦建立連線服務. 因為 NetBIOS 使用廣播(broadcasts)來傳送資料.也因此資料無法繞送(routed).所以只能用在小型網路中傳輸.NetBIOS 屬於 session layer protocol(第5層,交談層)
  • NetBEUI
    接下來就有了NetBIOS的改良版,NetBEUI(NetBIOS Extened User Interface),不過他已經是一個完整的傳輸協定了.NetBEUI 屬於 data-link layer protocol (第2層,資料連結層).

  • SMB(NetBIOS)
    Windows NT4.0 之前的網路芳鄰(檔案和印表機分享),名稱解析(wins)…皆是使用 NetBIOS over NetBEUI所實而做成.後來的 NetBIOS 也可以 over TCP/IP 如 Windows 2000 的網路芳鄰(檔案和印表機分享), Linux 的 samba server or NETBIOS over IPX(Internetwork Packet Exchange) 如 NT 下的 NWLINK

note:

  1. 使用廣播的方式傳遞資料,在遇到 Roter 時, Router 是會直接將此封包丟棄.原因是不能讓這種封包傳送到 InterNet 上,而產生無限封包.
  2. NetBEUI 屬於 data-link layer protocol (第2層,資料連結層)

Samba 的官方網站為 http://www.samba.org

system-config-samba01
一開始我們來認識一些 samba 的設定檔 以及 防火牆(iptables) 的設定
samba 提供了五種安全等級的身分驗證模式
那我們就來看看這五種不同模式的 samba server 要怎麼樣來與現有的 Windows 網域結合

  1. Share Level Security : 不使用密碼做身份驗證
    security = share
  2. User Level Security : 本身這台 samba server 做身份驗證,這也是設定檔的預設值
    security = user
  3. Server Security : 交由其他台 Windows NT/2000/2003 或 samba server 做身份驗證
    encrypt passwords = Yes
    security = server
    password server = "NetBIOS_name_of_a_DC"
  4. Domain Security Mode: 身份驗證交由 Windows AD (Domain 為 mixed mode)或者由 Windows NT 4 處理
    workgroup = "name_of_NT_domain"
    security = domain
  5. ADS Security Mode: 身份驗證交由 Windows AD 處理(Domain 為 native mode)
    realm = your.kerberos.REALM
    security = ADS
    ads server = your.kerberos.server

設定可以透過圖形介面  #system-config-samba (RHEL4 / RHEL5), #systemsettings (RHEL6)  或是修設定檔的方式進行修改設定.
samba 的其他功能

  1. samba(PDC) :
    主要是將 samba server 模擬成 windows NT 4.X 的 PDC(Primary Domain Controller)
  2. samba(winbind) :
    winbind 是一個獨立 daman ,它主要是能讓 Linux 系統能取得 NT/AD 網域內使用者帳號來當做 Linux 的身份驗證.
  3. samba(ACL) :
    一般由samba server 分享出來的檔案無法直接在 windows 的檔案總管中進行權限設定,必須要修改 /etc/samba/smb.conf 的分享權限.所以這邊是要介紹如何讓 samba server 分享的檔案可以直接經由 windows 的檔案總管來修改權限.
  4. samba(Join Domain) :
    Linux 可以藉由 samba server 去 join windows 網域,可以藉此來存取 windows 網域的資料
  5. smb.conf :
    其他設定資料與相關的其他指令
  6. Samba 檔案權限
    當 samba server security 選 user 安全等級時是用本身這台 samba server 做身份驗證.因為需要身分所以第一步就是要先新增使用者.

4 個網友的想法 “RHEL5 – Samba

  1. 自動參照通知: services | Benjr.tw

  2. 自動參照通知: NAS/SAN | Benjr.tw

  3. 不是我愛嫌棄 RedHat 很多圖形介面的東西要做也不做好,像是我在使用 system-config-samba 新增使用者的時候,挖勒!!新增好就看不到了.再新增一次又被告知使用者已經存在(An account for this user already exists.  Please try again).
    system-config-samba04
    恩!!!!這是怎麼一回事!!不過透過指令方式 #pdbedit -L 使用者真的已經加入,上網查了一下,果然是 system-config-samba 固定使用 /etc/samba/smbpasswd 當作他的使用者資料庫,但是我記得 RHEL5 不是已經將預設的使用者資料庫放在 passdb.tdb ,而且這一錯到 RHEL5.2 以前都沒修正,一直到 RHEL5.3 才修正.不過使用 RHEL5.2 之前版本也不用急著更新找到 system-config-samba-1.2.40 的版本就修正了,更新就可以使用了.

    https://bugzilla.redhat.com/show_bug.cgi?id=236557

  4. systemsettings
    在 RHEL 6 中已經找不到 #system-config-samba 這一支 GUI 程式來設定 samba 不過 RHEL 6 提供另外一個整合多組 GUI 程式操作介面 #systemsettings 他反而有點類似 SuSE 的 yast2 .

    [root@benjr ~]# systemsettings
    

發表迴響