實戰Samba伺服器搭建與進階完整版
實戰Samba伺服器搭建與進階完整版
基礎介紹
smb協議簡介
SMB(server message block,服務資訊塊)是在區域網上共享檔案和印表機的協議。
samba軟體包及核心程序
Samba包含一組軟體包,它能夠讓linux支援smb協議。它主要負責處理和使用遠端檔案和資源。Samba的核心是兩個守護程序smbd(監聽139tcp埠並處理到來的smb資料包)和nmbd(監聽137和138udp埠,並使其他主機資源能夠瀏覽linux伺服器)。
samba服務
Samba服務有兩個:SMB和NMB。MB是Samba 的核心啟動服務,主要負責建立 Linux Samba伺服器與Samba客戶機之間的對話, 驗證使用者身份並提供對檔案和列印系統的訪問,只有SMB服務啟動,才能實現檔案的共享,監聽139 TCP埠;而NMB服務是負責解析用的,類似與DNS實現的功能,NMB可以把Linux系統共享的工作組名稱與其IP對應起來,如果NMB服務沒有啟動,就只能通過IP來訪問共享檔案,監聽137和138 UDP埠。
應用場景
檔案共享:本次主要是實現linux和windows之間的共享。插一句,samba也可以實現linux和linux之間共享,不過由於NFS(網路檔案系統)可以很好的完成Linux與Linux之間的資料共享,所以。。。。
**許可權控制:**可以提供使用者登入Samba主機時的身份認證,以提供不同身份者的個別資料。
**名稱解析:**可以進行windows網路上的主機名解析
實戰samba伺服器搭建
主機名稱 | IP地址 | 功能 | 備註 |
---|---|---|---|
xiehui | 192.168.0.23 | samba伺服器 | linux |
– | – | – | – |
jajx-zappa | 192.168.0.201 | 測試訪問 | windows |
檢查軟體
[[email protected]DEVDB ~]# rpm -qa|grep samba
samba-common-3.0.33-3.28.el5
samba-client-3.0.33-3.28.el5
samba-3.0.33-3.28.el5
配置檔案
workgroup = MYGROUP 定義samba伺服器所在的工作組
server string = Samba Server Version %v smb服務的描述
log file = /var/log/samba/log.%m 日誌檔案
max log size = 50 日誌的最大大小KB ==
security = user == 認證模式:share匿名|user使用者密碼|server外部伺服器使用者密碼
passdb backend = tdbsam 密碼格式
load printers = yes 載入印表機
cups options = raw 印表機選項
[homes] 區域性選項(共享名稱)
comment = Home Directories 描述
browseable = no 隱藏共享名稱
writable = yes 可讀可寫
[printers] 共享名稱
comment = All Printers 描述
path = /var/spool/samba 本地的共享目錄
browseable = no 隱藏
guest ok = no == ——> public = no 需要帳號和密碼訪問==
writable = no ==read only =yes 不可寫 ===
printable = yes 列印選項
企業需求
公司:wdgs,有三個部門cw,rs,sc和一個公共區pub,每個部門的資料根據如下需求進行共享:
1、財務部門 /samba/wdgs_cw ,cw01財務總監有可讀可寫許可權,財務部門員工可讀,boss01對其有管理許可權。
2、市場部門 /samba/wdgs_sc,市場部門員工可讀可寫,公司員工可以查詢資料,boss02對其有管理許可權。
3、HR部門 /samba/wdgs_rs ,rs01HR總監可讀寫,HR部門員工可以對財務部查詢,vip使用者可以查詢
4、休息區 /samba/wdgs_pub 自己管理自己的檔案
實現步驟
1 建立使用者組
[[email protected] ~]# groupadd wdgs
[[email protected] ~]# groupadd cw
[[email protected] ~]# groupadd rs
[[email protected] ~]# groupadd sc
[[email protected] ~]#
2 建立使用者
[[email protected] ~]# groupadd wdgs
[[email protected] ~]# groupadd cw
[[email protected] ~]# groupadd rs
[[email protected] ~]# groupadd sc
[[email protected] ~]# useradd cw01 -g cw -G wdgs
[[email protected] ~]# useradd cw02 -g cw -G wdgs
[[email protected] ~]# useradd rs01 -g rs -G wdgs
[[email protected] ~]# useradd rs02 -g rs -G wdgs
[[email protected] ~]# useradd sc01 -g sc -G wdgs
[[email protected] ~]# useradd sc02 -g sc -G wdgs
[[email protected] ~]# useradd boss01 -g wdgs -G cw
[[email protected] ~]# useradd boss02 -g wdgs -G sc
[[email protected] ~]# useradd vip
[[email protected] ~]#
3 建立目錄及賦予許可權
[[email protected] ~]# mkdir /samba/{rs,sc,cw,pub} -p
[[email protected] samba]# chmod 770 /samba -R
[[email protected] samba]# chown root.wdgs /samba
[[email protected] samba]# chown root.cw cw
[[email protected] samba]# chown root.sc sc
[[email protected] samba]# chown root.rs rs
[[email protected] samba]# chmod 1777 pub
4 修改配置檔案
[[email protected] samba]# vim /etc/samba/smb.conf
[global] ##這部分是修改的,其它部分是新增的
workgroup = WDGS
server string = SHD20181219
passdb backend = tdbsam
cups options = raw
[cw]
comment = cw01 rw cw02 r boss01 rwx rs01rs02 r
path = /samba/cw
valid users = @cw, boss01, @rs
read list = @cw, boss01, @rs
write list = cw01, boss01
[rs]
comment = rs01 rw vip r
path = /samba/rs
valid users = @rs, vip
read list = @rs, vip
write list = rs01
[sc]
comment = sc01sc02 rw boss02 rwx others r
path = /samba/sc
valid users = @wdgs
read list = @wdgs
write list = @sc, boss02
[pub]
comment = zjgzj
path = /samba/pub
valid users = @wdgs
read list = @wdgs
write list = @wdgs
guest ok = Yes
hosts allow = 192.168.0.
5 檢測語法
[[email protected] samba]# testparm
6 建立smb使用者密碼
[[email protected] samba]# smbpasswd -a cw01
[[email protected] samba]# smbpasswd -a cw02
[[email protected] samba]# smbpasswd -a rs01
[[email protected] samba]# smbpasswd -a rs02
[[email protected] samba]# smbpasswd -a sc01
[[email protected] samba]# smbpasswd -a sc02
[[email protected] samba]# smbpasswd -a boss01
[[email protected] samba]# smbpasswd -a boss02
[[email protected] samba]# smbpasswd -a vip
7 啟動服務,設定自啟動
啟動服務
[[email protected] samba]# /etc/init.d/smb start
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
設定smb服務開機自啟動
[[email protected] samba]# chkconfig --level 35 smb on
8 建立smb使用者密碼
[[email protected] samba]# smbpasswd -a cw01
[[email protected] samba]# smbpasswd -a cw02
[[email protected] samba]# smbpasswd -a rs01
[[email protected] samba]# smbpasswd -a rs02
[[email protected] samba]# smbpasswd -a sc01
[[email protected] samba]# smbpasswd -a sc02
[[email protected] samba]# smbpasswd -a boss01
[[email protected] samba]# smbpasswd -a boss02
[[email protected] samba]# smbpasswd -a vip
檢視使用者
[[email protected] samba]# pdbedit -L
9 測試,ACL控制策略
測試後
發現問題:boss01無法管理cw,hr部門不能訪問cw,
[[email protected] samba]# setfacl -m u:boss01:rwx cw
[[email protected] samba]# setfacl -m u:rs01:rx cw
[[email protected] samba]# setfacl -m u:rs02:rx cw
其他控制策略請自測
10 訪問控制
host deny = 192.168.0. 拒絕某個網段
host allow = 192.168.5.1 允許某個IP
host deny = all 拒絕所有
host allow = all EXCEPT 192.168.5.254 允許所有,拒絕某個IP