目標:一、搭建一個基本的samba使用匿名訪問web
二、搭建使用虛擬用戶訪問的samba服務器安全
三、搭建一個基於用戶配置文件的samba服務器服務器
四、搭建一個企業經常使用的samba服務器實例網絡
五、samba服務器經常使用配置參數總結介紹dom
六、samba的原理講述ide
一、IP說明:學習
192.168.0.2——主機名:samaba.wqmsl.com samba服務器測試
192.168.0.3——主機名:client.wqmsl.com client客戶端this
二、前期準備加密
更改主機名稱(更改三處):一、hostname更改,二、hosts更改,三、/etc/sysconfig/network
三、所需軟件包以下
samba-common-3.0.33-3.14.el5
samba-3.0.33-3.14.el5
system-config-samba-1.2.41-5.el5
samba-swat-3.0.33-3.14.el5(用來web頁面管理samba,來對Samba服務器進行圖形化管理,安裝的時候有依賴關係,使用yum安裝哦)
samba-client-3.0.33-3.14.el5
下面咱們來安裝一下samba吧
Samba的全部配置文件所在的目錄
咱們通常配置smb.conf ,下面咱們來看一下里面的內容哈:
*******************
解釋:
Smb.conf配置文件裏面默認有288行,裏面以「#」和「;」開頭的全是註釋語
常規的samba服務器配置過程以下:
一、編輯主配置文件smb.conf,指定須要共享的目錄,爲共享目錄設置共享權限。
二、在smb.conf文件中指定日誌文件名稱和存放路徑和日誌的大小。
三、設置共享目錄的本地系統權限。
四、從新加載配置文件或從新啓動smb服務,使用配置生效
*******************
Global配置區域以下,此區域配置全局生效,對全部的共享文檔生效哈:
共享文檔配置區域以下:
家目錄共享配置區域以下:
打印機共享配置區域以下:
看的差很少了吧,由於文件過多,因此samba文件爲咱們區分的很明確,要配置什麼就去什麼區域配置哈:
在配置以前咱們最好先備份一下主配置文件,以避免之後文件損壞後好恢復
1、實現第一個實驗目標,搭建一個基本的samba服務器,使用匿名訪問
配置主配置文件smb.conf文件
workgroup ——配置所屬的工做組
server string——服務器的描述
hosts allow——配置容許訪問的網段,默認是註釋掉的,意思就是容許全部訪問
把默認的security = user(須要系統帳戶訪問) 改成security = share (可使用匿名訪問)
****************************
解釋:
[share] ——服務器共享文檔名稱
comment = share ——服務器說明
path = /share ——共享文檔的路徑
publice = yes ——容許匿名訪問
writable = yes ——容許寫入(前提是目錄自己有其餘用戶寫入的權限)
printable = no —— 並不是打印機
******************************
保存退出
創建共享文檔目錄並設置權限
設置冒險位(目的是用戶a在共享目錄裏面寫入文件,那麼用戶b登錄看到以後只能讀取卻不能刪除,起到了防止用戶誤刪除其餘用戶的文件)
咱們在share目錄裏面創建一個文件進行測試
重啓服務(從新加載)使用其中之一便可,我是爲你們作演示
下面咱們使用Windows系統訪問一下,下面看看哈:
看見了吧,共享目錄share下面有咱們創建的test.share文件,我試着寫入看看有沒有權限哦
看見了吧 ,我創建成功了哦,說明第一個目標咱們實現了哈,那麼下面咱們開始第二個目標哈
2、那麼實現第二個目標,使用虛擬用戶訪問的samba服務器
這個其實很簡單啦,只要三步便可實現
一、修改smb.conf開啓虛擬用戶訪問,修改服務器安全模式
二、添加samba用戶和虛擬用戶映射
三、重啓服務便可
下面咱們開始配置
修改smb.conf文件
修改服務器安全模式爲user
在「Global Settings」區域添加以下參數,開啓虛擬帳戶映射
編輯smbusers文件,內容以下,我映射samba用戶wqmsl爲虛擬用戶a,b,c
首先要有系統用戶,而後添加到samba用戶並設置密碼
重啓samba服務或者從新加載服務
使用映射用戶a在客戶端訪問samba共享目錄,要求輸入用戶和密碼:
看到了吧,a用戶經過了驗證,共享目錄裏面有wqmsl的家目錄,說明咱們用的實際是wqmsl用戶訪問的samba共享
下面咱們使用用戶b訪問samba服務試試看
訪問的內容和用戶a是同樣的
(注意:在Windows下面默認會記錄訪問共享目錄用戶,再次訪問就會默認登陸,因此咱們須要清除網絡鏈接,打開運行—>cdm—>net use (查看現有的鏈接)—>net use * /del
以下圖所示:)
使用虛擬用戶在必定程度上保護了計算機上用戶的帳號信息,安全麼,能夠用用,即便有人知道你的samba用戶,可是要想破解你的系統密碼仍是很難哈,會累死他的,整半天也只是一個虛擬用戶而已哈。
說明咱們第二個目標已經實現了,那麼咱們進行第三個目標哦!
3、如今咱們來實現第三個目標,搭建一個基於用戶配置文件的samba服務器
使用獨立用戶的配置文件能夠更好的去爲用戶配置權限,並且也很是的方便,就和咱們在vsftpd裏面不是也用到過虛擬用戶和用戶的單獨配置文件麼,其實差很少的,不過實現起來仍是比較簡單的哦,下面咱們開始作吧
咱們先簡單的實現一下,公司的share共享目錄你們都有讀寫的權限,總經理須要有一個本身的共享目錄,又不能讓你們看見或者訪問,不想讓你們看見的話可使用隱藏共享目錄的參數來實現,可是這樣的話只要讓別人知道了總經理的共享目錄名稱便可訪問到了,因此這裏咱們使用單獨配置文件來實現,又方便又安全是否是哈
如今咱們開始配置吧
include = /etc/samba/%U.smb.
***************************
解釋:
include = /etc/samba/%U.smb.conf ————含義:讀取用戶的單獨配置文件,位置在/etc/samba/下的以 用戶名.smb.conf 命名的配置文件
有一些資料裏面會config file 來寫,它和include是有區別的,區別在於使用include字段的時候samba還會讀取smb.conf 裏面的共享目錄配置,可是使用config file 的時候就不會了,它會直接去讀取用戶的單獨配置文件,以後咱們經過實驗來講明吧
***********************
複製用戶單獨配置文件,直接複製smb.Conf爲用戶的配置文件便可
配置jingli的共享目錄
*********************
解釋:
valid users = jingli ———— 含義:只容許jingli來訪問本共享目錄
*********************
在根目錄下面創建經理的共享目錄並設置屬主和屬組爲jingli,以便經理可以有徹底控制的權限
下面咱們使用客戶端訪問試試哈(訪問以前記得要清除共享訪問記錄哦):
看看裏面的內容:
看見沒有,裏面有經理的共享目錄,而且還有share共享目錄和jingli的家目錄
我在裏面建立文件看看
建立和刪除都成功,說明權限正確
下面我在用別的用戶訪問試試,看看裏面的內容
沒有吧 只有共享的公共目錄和用戶的家目錄,沒有別的哈
公共用戶登錄以後根本看不見經理的共享文件夾
即便我知道了經理共享目錄的名稱爲 jl,如圖下:
是沒有權限訪問的哈。
用戶獨立配置文件目標實現,已經成功
目標 4和5 在筆記二里面再介紹吧,今天就寫到這裏了
4、下面咱們來實現第四個目標,咱們來作一個企業經典的samba服務器實例
實例以下:企業要求搭建samba服務器來提供文件共享服務,有財務部、銷售部,還有公共共享文件目錄,財務部和銷售部都事關部門機密文件,別人不能讀取,因此要實現只有公司經理能讀取和寫入財務部、銷售部的共享目錄,各個部門員工只能訪問和寫入本部門的共享目錄,但不能刪除其餘用戶寫入的文件,公共目錄職能讀取不能寫入。
下面咱們來作吧,一個一個來實現
先建立要共享的目錄併爲銷售部和財務部加上冒險位(關於冒險位就很少說了,在「samba學習筆記一」裏面講過的哦)
編輯smb.conf文件
添加以下參數,是samba服務器讀取用戶或者組的單獨配置文件
配置共享公共目錄
保存退出
咱們建立所須要的帳戶和組,經理:jingli, 財務部:c1 、c2(組:caiwu) 銷售部:x1 、x2(組:xiaoshou) 其餘部門員工帳號:q1
系統用戶建立成功,咱們把這些用戶添加成samba用戶
全部的samba用戶建立已經成功
咱們建立單獨的用戶、組配置文件,看下圖:
其中smb.conf. bak 是我以前備份的smb.conf文件
配置xiaoshou組、caiwu組、jingli的配置文件
配置xiaoshou組的配置文件中的共享文檔
配置caiwu組的共享文檔,以下:
配置經理的配置文件,以下:
重啓服務以下:
下面咱們來測試:
先使用經理的帳戶登陸試試
登陸後看到的共享文檔以下:
銷售部、財務部、公共共享 都能看到的,還有一個是本身的家目錄,下面咱們來測試權限,看有沒有寫入的權限
如上:銷售部和財務部咱們都有寫入的權限
下面咱們測試銷售部門員工登陸狀況
登陸後能訪問的共享目錄以下:
咱們在銷售部目錄建立文件
咱們測試一下冒險位的做用,我去刪除jingli建立的文件試試:以下
沒法刪除,說明實驗成功哦
下面測試財務部的哦,呵呵
這好似c1登陸後可以共享的目錄,測試建立文件和刪除其餘用戶的文件
固然咱們也可使用Linux客戶端來訪問並掛載samba共享目錄,很簡單,具體訪問和掛載命令看第四部分「samba服務器配置文件經常使用參數和命令解釋」
看到實驗的結果了吧,全部的目標實現,第四個目標完成,那麼咱們開始下一個唄!
4、samba服務器配置文件經常使用參數和命令解釋:
全局配置參數
一、在global下添加一行字段username map = /etc/samba/smbusers開啓用戶賬號映射功能。 samba賬號 = 虛擬賬號(映射賬號)
hosts allow 和 hosts deny 字段的使用
二、hosts allow 字段定義容許訪問的客戶端
hosts deny 字段定義禁止訪問的客戶端
hosts deny = All 表示全部客戶端,不是說名稱爲all的主機哈,這是通配符哦。
hosts allow = 192.168.0. EXCEPT 192.168.0.100 192.168.0.78 表示容許 192.168.0.0網段IP地址訪問,可是192.168.0.100和192.168.0.78除外
(這個也能夠加入到共享目錄的配置裏面,這樣的話只對共享目錄生效)
三、在[global]中加入config file = /etc/samba/smb.conf.%U,表示samba服務器讀取 /etc/samba/smb.conf.%U文件,其中%U表明當前登陸用戶。
也能夠添加以下參數:不過是有區別的,「我在samba學習筆記一」裏面講過了
(看看效果吧,我修改smb.conf裏面的讀取用戶配置參數include爲config file以後,用客戶端訪問以下:
看到了吧,在smb.conf裏面配置的share共享文檔沒有啦,說明config file參數講不讀取smb.conf裏面的共享目錄,而是直接讀取了用戶或組的單獨配置文件,兩個字段參數各有所長,因此看你怎麼用了 )
include = /etc/samba/%U.smb.conf表示使samba服務器加載/etc/samba目錄下格式爲「用戶名.smb.conf」的配置文件。
include = /etc/samba/%G.smb.conf表示使samba服務器加載/etc/samba目錄下格式爲「組名.smb.conf」的配置文件。
四、security = share / user........安全級別的參數:
定義Samba的安全級別,按從低到高分爲四級:share,user,server,domain。它們對應的驗證方式:
share:任何用戶無需用戶名和口令便可訪問服務器上的資源。
user:samba的默認配置,在訪問共享資源以前必須經過本地用戶驗證。
Server:驗證是經過另外一臺服務器進行的,若是失敗,就退到user級。
domain:驗證經過網絡上的Windows的主域控制器進行。
後面三種安全級都要求「用戶」在提供共享的Linux主機上要有賬戶的。
五、默認/etc/samba下面沒有smbpasswd文件,解決辦法:在smb.conf文件中註釋掉passdb backend = tdbsam 一行,在下面加上smb passwd file = /etc/samba/smbpasswd
六、使用加密口令 ———— encrypt password = yes/no
共享目錄配置參數
一、comment = 備註信息
二、path = 絕對地址路徑
三、public = yes #容許匿名訪問
public = no #禁止匿名訪問
(public和valid users 不能同時使用,這樣public沒效果)
四、valid users = @組名,用戶名 ,可是前提是public設置成no
invalid users = @組名,用戶名,就算你上面容許他了,可是加入這句,這個用戶也 會 被拒絕。通常用在容許全部,而禁止某幾個用戶的時候使用
五、readonly = yes #只讀
readonly = no #讀寫
read list = @組 用戶 指定只能讀取該共享資源的用戶和組。
六、writable = yes #讀寫
writable = no #只讀
七、write list = 用戶名
write list = @組名,用戶名
write list 要生效的話,writeable 也設置成no
八、smbpasswd 的參數命令以下:
-a 添加用戶 #smbpasswd -a wqmsl
-x 刪除用戶 #smbpasswd -x wqmsl
-d 禁用賬號 #smbpasswd -d wqmsl
-e 取消禁用 #smbpasswd -e wqmsl
-n 清除密碼 #smbpasswd -a wqmsl
九、writable yes 全部賬號都容許寫入
writable no 全部賬號都禁止寫入
write list 寫入權限賬號列表 列表中的賬號容許寫入
十、browseable = no表示隱藏該目錄
十一、smbclient命令格式:smbclient -L 目標IP地址或主機名 -U 登陸用戶名%密碼
smbclient -L 192.168.0.188 -U boss%boss
十二、smbclient //目標IP地址或主機名/共享目錄 -U 用戶名%密碼
1三、mount -t cifs //目標IP地址或主機名/共享目錄名稱 掛載點 -o username=用戶名
1四、testparm /etc/samba/smb.conf 命令檢查
1八、
1五、1)samba服務的啓動
service smb start 或 /etc/rc.d/init.d/smb start
2)samba服務的中止
service smb stop 或 /etc/rc.d/init.d/smb stop
3)samba服務的重啓
service smb restart 或 /etc/rc.d/init.d/smb restart
4)samba服務配置從新加載
service smb reload 或 /etc/rc.d/init.d/smb reload
(注意:Linux服務中,當咱們更改配置文件後,必定要記得重啓服務哦,讓服務從新加載配置文件,這樣新的配置才能夠生效麼)
5)自動加載samba服務
chkconfig --level 35smb on #運行級別3自動加載
chkconfig --level 35smb off #運行級別3不自動加載
1六、設置是否容許打印配置文件中的全部打印機開機時自動加載 load printers = yes
設置Samba 服務啓動時,將自動加載的打印機配置文件 printcap name = /etc/printcap
5、samba服務器的介紹和原理
Samba概述
Samba是最早在Linux和Windows兩個平臺之間架起了一座共享的橋樑哦,正是因爲Samba的出現,咱們能夠在Linux系統和Windows系統之間互相通訊,如拷貝文件、實現不一樣操做系統之間的資源共享等等,咱們能夠將其架設成一個功能很是強大的文件服務器,也能夠將其架設成打印服務器提供本地和遠程聯機打印,甚至咱們可使用samba Server徹底取代NT/2K/2K3中的域控制器,作域管理工做,很強大的哦
Samba應用環境
文件和打印機共享、身份驗證和權限設置、名稱解析:Samba經過nmbd服務能夠搭建NBNS(NetBIOS Name Service)服務器 、瀏覽服務。
Samba工做原理
Samba服務功能強大,這與其通訊基於SMB協議有關。SMB還提供目錄和打印機共享,並支持認證、權限設置。SMB運行於NBT協議(NetBIOS over TCP/IP)上,使用UDP協議的13七、138及TCP協議的139端口,後期SMB通過開發,能夠直接運行於TCP/IP協議上,沒有額外的NBT層,使用TCP協議445端口。
製做人:wqml QQ :459176770