Centos部署Samba企業文件共享服務

Centos部署Samba企業文件共享服務linux


聲明:本文參考了網上部分資料加做者實驗總結ios



目錄:web

一、Samba服務概述:數據庫

1.一、Samba的原理vim

1.二、NETBIOS協議windows

二、Samba 應用環境安全

三、samba服務bash

3.一、samba的安裝包:服務器

3.二、samba的進程文件:網絡

3.三、samba的文件:

四、主要配置文件smb.conf

4.一、samba配置簡介

4.二、Global Settings

4.2.1)設置工做組或域名稱

4.2.2)服務器描述

4.2.3)設置samba服務器安全模式

4.三、Share Definitions共享服務的定義

4.3.1)設置共享名

4.3.2)共享資源描述

4.3.3)共享路徑

4.3.4)設置匿名訪問

4.3.5)設置訪問用戶

4.3.6)設置目錄只讀

4.3.7)設置目錄可寫

五、配置一個共享資源

六、samba的命令與客戶端訪問

6.一、testparm:測試有效的exports內的屬性

6.二、pdbedit:管理smb的用戶數據庫

6.三、smbpasswd:改變samba帳戶的密碼

6.四、smbclient:unix客戶端訪問工具

6.五、掛載訪問

七、samba搭建實例

7.一、smb服務端搭建

八、修改配置文件,實戰舉例

8.一、例1:匿名共享

8.二、例2:經過用戶名和密碼共享文件。把/sales 共享出去,只有知道用戶名和密碼的同事能夠看這個共享

九、擴展參數

9.一、客戶端訪問控制

9.二、設置Samba 的權限,容許sales組能夠寫

十、使用GUI工具SWAT管理samba



一、Samba服務概述:

samba是基於smb(Server Message Block)協議的一種實現方式。Samba 最早在Linux

和Windows 兩個平臺之間架起了一座橋樑,正是因爲Samba 的出現,咱們能夠在Linux

系統和Windows 系統之間互相通訊,好比拷貝文件、實現不一樣操做系統之間的資源共享等

等,咱們能夠將其架設成一個功能很是強大的文件服務器,也能夠將其架設成打印服務器提

供本地和遠程聯機打印。

1.一、Samba的原理

wKiom1dqXsXAA6PXAACFTAELbS8017.png

1.SMB是基於NetBIOS的一個網絡文件共享協議,容許cilent從服務器端訪問文件資源。
2.NetBIOS協議是一個用來讓局域網內的主機互相鏈接的通信協議,被普遍用於windows平臺間的通訊。
3.samba就是基於smb開發的,讓unix主機可以經過mbr協議與windows平臺進行文件共享。

1.二、NETBIOS協議

NetBIOS是Network Basic Input/Output System的簡稱,網絡基本輸入/輸出系統協

議。協議,通常指用於局域網通訊的一套API,是由IBM公司開發。主要做用:經過

NETBIOS協議得到計算機名稱,而後把計算機名解析爲對應IP地址。

模式: C/S 模式


二、Samba 應用環境

文件和打印機共享:文件和打印機共享是Samba的主要功能,SMB進程實現資源共享,將文件和打印機發布到網絡之中,以供用戶能夠訪問哈。 
身份驗證和權限設置:smbd服務支持user mode和domain mode等身份驗證和權限設置模式,經過加密方式能夠保護共享的文件和打印機。 
名稱解析:Samba經過nmbd服務能夠搭建NBNS(NetBIOS Name Service)服務器,提供名稱解析,將計算機的NetBIOS名解析爲IP地址。 
瀏覽服務:局域網中,Samba服務器能夠成爲本地主瀏覽服務器(LMB),保存可用資源列表,當使用客戶端訪問Windows網上鄰居時,會提供瀏覽列表,顯示共享目錄、打印機等資源。


三、samba服務

3.一、samba的安裝包:

samba samba服務器端程序。
libsmbclient samba客戶端庫文件。
samba-client samba客戶端程序。
samba-common samba客戶端以及服務端都會用到的文件,如samba.conf等。
samba-winbind samba對於windows域的支持的服務端的庫。
samba-winbind-clients samba windwos域的客戶端。



3.二、samba的進程文件:

nmbd:負責管理工做組,NetBIOS名解析,並提供瀏覽服務顯示網絡上的共享資源列表。工做在UDP的137,138端口上。
smbd:其主要功能就是用來管理Samba服務器上的共享目錄、打印機等,主要是針對網絡上的共享資源進行管,工做在TCP的139或445端口上。


3.三、samba的文件:

/etc/samba/smb.conf samba的主要配置文件。
/etc/samba/smbusers 共享服務中,linux與windows的帳號的映射,格式爲linuxuser = windowsuser1,windowsuser2
/var/lib/samba/private/passdb.tdb / secrets.tdb samba用戶帳號密碼存放的數據
庫。

四、主要配置文件smb.conf

4.一、samba配置簡介

smb.conf文件的開頭部分爲samba配置簡介,告訴咱們smb.conf文件的做用及相關信息。

smb.conf中以「#」開頭的爲註釋,爲用戶提供相關的配置解釋信息,方便用戶參考,不用修改它哈。

smb.conf中還有以「;」開頭滴,這些都是samba配置的格式範例,默認是不生效滴,能夠經過去掉前面的「;」並加以修改來設置想使用的功能。

4.二、Global Settings

Global Settings設置爲全局變量區域。那什麼是全局變量哈?全局變量就是說咱們只要在global時進行設置,那麼該設置項目就是針對全部共享資源生效滴。這與之後咱們學習的不少服務器配置文件類似哈。

該部分以[global]開始:

smb.conf配置通用格式,對相應功能進行設置:字段=設定值 

下面咱們說下[global]經常使用字段及設置方法:

[global]
[network]
workgroup = MYGROUP #工做組名稱,要與windows的工做組名稱一致。
server string = Samba Server Version %v #samba服務器描述
; netbios name = MYSERVER
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 #設置監聽
的網卡
; hosts allow = 127. 192.168.12. 192.168.13. #設置能夠訪問的網段
[login]
log file = /var/log/samba/log.%m #日誌文件路徑。
max log size = 50 #一個日誌文件最大多少Kb進行輪替。
[獨立服務器設定  Standalone Server]
    security = user|share|domain  #安全認證方式   
                        share:#共享模式  
                        user:#使用samba服務器的密碼庫    
                        domain:#使用外部域服務器的密碼。        
    passdb backend = tdbsam     #密碼庫格式。

1)設置工做組或域名稱

工做組是網絡中地位平等的一組計算機,能夠經過設置workgroup字段來對samba服務器所在工做組或域名進行設置。

咱們設置samba服務器的工做組爲CentOS

2)服務器描述

服務器描述實際上相似於備註信息哈,在一個工做組中,可能存在多臺服務器,爲了方便用戶瀏覽,咱們能夠在server string配置相應描述信息,這樣用戶就能夠經過描述信息知道本身要登陸哪臺服務器了啊~

咱們設置samba描述信息爲「CentOS File Server」。

3)設置samba服務器安全模式

samba服務器有share、user、server、domain和ads 五種安全模式,用來適應不一樣的企業服務器需求。

(1)share安全級別模式
客戶端登陸samba服務器,不須要輸入用戶名和密碼就能夠瀏覽samba服務器的資源,適用於公共的共享資源,安全性差,須要配合其餘權限設置,保證samba服務器的安全性。
(2)user安全級別模式
客戶端登陸samba服務器,須要提×××法賬號和密碼,通過服務器驗證才能夠訪問共享資源,服務器默認爲此級別模式。
(3)server安全級別模式
客戶端須要將用戶名和密碼,提交到指定的一臺samba服務器上進行驗證,若是驗證出現錯誤,客戶端會用user級別訪問。
(4)domain安全級別模式
若是samba服務器加入windows域環境中,驗證工做服將由windows域控制器負責,domain級別的samba服務器只是成爲域的成員客戶端,並不具有服務器的特性,samba早期的版本就是使用此級別登陸windows域滴。
(5)ads安全級別模式
當samba服務器使用ads安全級別加入到windows域環境中,其就具有了domain安全級別模式中全部的功能並能夠具有域控制器的功能。

4.三、Share Definitions共享服務的定義

Share Definitions設置對象爲共享目錄和打印機,若是咱們想發佈共享資源,須要對Share Definitions部分進行配置。Share Definitions字段很是豐富,設置靈活。

咱們先來說下幾個最經常使用的字段哈~

1)設置共享名

共享資源發佈後,必須爲每一個共享目錄或打印機設置不一樣的共享名,給網絡用戶訪問時使用,而且共享名能夠與原目錄名不一樣。

共享名設置很是簡單:[共享名]

咱們來看個例子,Samba服務器中有個目錄爲/share,須要發佈該目錄成爲共享目錄,定義共享名爲public

2)共享資源描述

網絡中存在各類共享資源,爲了方便用戶識別,能夠爲其添加備註信息,以方便用戶查看時知道共享資源的內容是什麼哈。

格式:comment = 備註信息

舉個例子哈,samba服務器上有個/sales目錄存放公司銷售部的數據,爲了對公司部門員工進行區分,能夠添加備註信息。

3)共享路徑

共享資源的原始完整路徑,可使用path字段進行發佈,務必正確指定。

格式:path =  絕對地址路徑

samba服務器上/share/tools目錄存放經常使用工具軟件,須要發佈該目錄爲共享,咱們能夠這樣作。

4)設置匿名訪問

共享資源若是對匿名訪問進行設置,能夠更改public字段。

格式:

public = yes     #容許匿名訪問
public = no      #禁止匿名訪問

samba服務器/share共享目錄容許匿名用戶訪問,能夠這樣設置。

5)設置訪問用戶

若是共享資源存在重要數據的話,須要對訪問用戶審覈,咱們可使用valid users字段進行設置哈~

格式:

valid users = 用戶名
valid users = @組名

咱們來看下面一個例子哈,samba服務器/share/tech目錄存放了公司技術部數據,只容許技術部員工和經理訪問,技術部組爲tech,經理賬號爲gm

6)設置目錄只讀

共享目錄若是限制用戶的讀寫操做,咱們能夠經過readonly實現哈~

格式:

readonly = yes    #只讀
readonly = no     #讀寫

samba服務器公共目錄/public存放大量共享數據,爲保證目錄安全咱們只容許讀取,禁止寫入哈~

7)設置目錄可寫

若是共享目錄容許用戶寫操做,可使用writable或write list兩個字段進行設置哈~

writable格式:
writable = yes      #讀寫
writable = no       #只讀
write list格式:
write list = 用戶名
write list = @組名

注意:

[homes]爲特殊共享目錄,表示用戶主目錄。

[printers]表示共享打印機。


五、配置一個共享資源

[share] #設置共享名
comment = Home Directories #描述
browseable = yes #是否容許查看此共享內容 。若是是否,後期經過絕對路徑,能夠查看到。
path = /share #共享路徑,寫絕對路徑
public = yes #容許匿名查看
readonly = yes

六、samba的命令與客戶端訪問

6.一、testparm:測試有效的exports內的屬性

6.二、pdbedit:管理smb的用戶數據庫。

pdbedit -L [-vm] 列出數據庫中的用戶等信息,-v詳細信息,-w使用smbpasswd格式。
pdbedit -a -u [user] 新增一個用戶,但必須存在實體用戶。
pdbedit -r -u [user] 修改一個用戶的信息,需搭配其餘參數,可參考man文檔。
pdbedit -x -u [user] 刪除一個用戶。
pdbedit -a -m -u [machine account計算機帳號] 添加一個計算機帳號,域相關。


6.三、smbpasswd:改變samba帳戶的密碼。

smbpasswd -a [user] 新增用戶以及密碼。
smbpasswd -r [user] 修改用戶密碼。
smbpasswd -x [user] 刪除用戶。
smbpasswd -d [user] 禁止登錄。
smbpasswd -e [user] 啓用用戶。


6.四、smbclient:unix客戶端訪問工具。

smbclient -L //IPADDR [-U smbuser] 測試查看目標服務器所開放的共享文件夾
smbclient //IPADDR/dir -U smbuser 鏈接共享服務器文件夾。
[root@host2 ~]# smbclient //192.168.25.132/test -U zhanghe 命令行形式訪問。
Enter zhanghe's password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-30.el6_7]
smb: \\> help
? allinfo altname archive blo
cksize
cancel case_sensitive cd chmod chown....


6.五、掛載訪問。

mount -t cifs -o username=zhanghe,password=123456 -l //192.168.25.132/test /tmp



七、samba搭建實例


7.一、smb服務端搭建:

host1(192.168.1.1):
[root@host1 ~]# yum install samba
[root@host1 ~]# vim /etc/samba/smb.conf
[test]
comment = test on 192.168.25.132 server!
path = /tmp/samba
writable = yes
guest ok = yes
write list = zhanghe
[root@host1 ~]# testparm
[root@host1 ~]# useradd zhanghe
[root@host1 ~]# pdbedit -a -u zhanghe
[root@host1 ~]# pdbedit -L
[root@host1 ~]# mkdir -pv /tmp/samba
[root@host1 ~]# setfacl -m u:zhanghe:rwx /tmp/samba
[root@host1 ~]# service nmb start
[root@host1 ~]# service smb start

ps.配置iptables並設置selinux


八、修改配置文件,實戰舉例


8.一、例1:匿名共享:

公司如今用一個工做組Software, 須要添加samba 服務器做爲文件服務器,併發布共享目

錄/share,共享名爲public,這個共享目錄容許全部公司員工訪問。

[root@host1 ~]# mkdir /share
[root@host1 ~]# cp /etc/passwd !$ #複製一個測試文件cp /etc/passwd /share
[root@host1 ~]# vim /etc/samba/smb.conf
[global]
workgroup = Software #工做組
server string = Software Samba Server #samba服務器描述
security = share # 容許匿名訪問
============================ Share Definitions ====
[share] #設置共享名
comment = Home Directories #描述
path = /share #共享路徑,寫絕對路徑
public = yes #容許匿名查看

2)從新加載配置

[root@host1 ~]#


8.二、例2:經過用戶名和密碼共享文件。把/sales 共享出去,只有知道用戶名和密碼的同事能夠看這個共享。

咱們須要將全局配置中security 設置爲user 安全級別,而後在共享目錄設置權限

注意:必定要先指定存放密碼的文件位置:

2)修改samba 主配置文件smb.conf

改:

passdb backend = tdbsam
爲:
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd

wKiom1dqXuGAuk0FAAAUHcJVNsw584.png

1)添加銷售部用戶和組並添加相應samba 賬號

使用groupadd 命令添加sales 組,而後執行useradd 命令和passwd 命令添加銷售部員工的

賬號及密碼。

[root@host1 ~]# groupadd sales
[root@host1 ~]# useradd -g sales sale1
[root@host1 ~]# useradd -g sales sale2
[root@host1 ~]# id sale2
uid=502(sale2) gid=501(sales) groups=501(sales)

wKiom1dqXvDRpQOaAAA32fppNDM048.png

接下來爲銷售部成員添加相應samba 賬號

[root@host1 ~]# smbpasswd -a sale1

wKioL1dqXvzQcAhvAAAulgwGrS4014.png

[root@host1 ~]# ls /etc/samba/smbpasswd
/etc/samba/smbpasswd
[root@host1 ~]# cat !$

wKiom1dqXxbRcJo_AAAi0ebTxAs240.png

[root@host1 ~]# smbpasswd -a sale2
New SMB password:
Retype new SMB password:
Added user sale2.

2)修改samba 主配置文件smb.conf

(1).設置user 安全級別模式

security = user

設置目錄:

[root@host1 ~]# vim smb.conf

wKioL1dqXyOjTkxgAAAVZmSH78I507.png


建立共享目錄:

建立共享目錄:

[root@host1 ~]# mkdir /sales
[root@host1 ~]# cp /etc/passwd !$
cp /etc/passwd /sales

3)從新加載配置

[root@host1 ~]# service smb restart
Shutting down SMB services: [ OK ]
Starting SMB services: [ OK ]
測試:
輸入:
用戶 :sale2 密碼:123456

輸入銷售部的賬號及密碼進行登陸

這樣銷售部成員就能夠進行訪問sales 共享目錄下的數據了


九、擴展參數

9.一、客戶端訪問控制

hosts allow 和 hosts deny 的使用方法

1)hosts allow 和 hosts deny 字段的使用

hosts allow 字段定義容許訪問的客戶端
hosts deny 字段定義禁止訪問的客戶端


這裏咱們添加hosts deny 和hosts allow 字段

hosts deny = 192.168.0. 表示禁止全部來自192.168.0.0/24 網段的IP 地址訪問
hosts allow = 192.168.0.24 表示容許192.168.0.24 這個IP 地址訪問

當host deny 和hosts allow 字段同時出現並定義滴內容相互衝突時,hosts allow優先。


9.二、設置Samba 的權限,容許sales組能夠寫

設置系統權限

[root@host1 ~]# chmod 777 /sales
[root@host1 ~]# ll -d !$
ll -d /sales
drwxrwxrwx 2 root root 4096 Mar 7 21:50 /sales

設置服務器權限:

[root@host1 ~]# vim /etc/samba/smb.conf

boss用戶和sale組均可以讀寫

write list = boss,@sales 就表示只有boss 賬號和sales組,能夠對/sales 有寫入權限



十、使用GUI工具SWAT管理samba

swat是samba的圖形化管理工具,咱們能夠在配置後經過http來經過網頁配置,而且內嵌

幫助文檔,可以很是直觀的配置samba服務,swat是基於xinetd超級守護進程。

[root@host1 tmp]# yum install xinetd -y 安裝xinetd超級守護進程
[root@host1 tmp]# yum install samba-swat -y 安裝swat程序,主機安裝包名爲samba-swat,若是直接輸入swat是找不到包的!!
[root@host1 tmp]#vim /etc/xinetd.d/swat 編輯swat的配置文件。
# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \\
# to configure your Samba server. To use SWAT, \\
# connect to port 901 with your favorite web brows
er.
service swat
{
port = 901 <--- 監聽的端口默認爲901。
socket_type = stream <--- socket類型爲stream,面向鏈接的穩定數據傳輸,即爲TCP協議。
wait = no
only_from = 192.168.25.0 <---只監聽指定範圍內的主機,即限制登錄主機,設置爲0.0.0.0 則默認爲監聽全部主機。
user = root <---只容許使用指定用戶登陸。
server = /usr/sbin/swat <---指定主程序路徑。
log_on_failure += USERID
disable = no <---開啓swat工具,yes爲關閉。
}
[root@host1 tmp]# service xinetd start 開啓xinetd服務便可,由於swat是由xinetd來管理的。
[root@host1 tmp]# ss -tunl | grep 901 查看901端口號,的確爲設置的tcp的901

wKiom1dqXzCjgemwAAAfCzRVCAY635.png

訪問服務器的901端口:

wKiom1dqXzvRVBjOAABe0YK2gpY781.png

wKioL1dqX0qx4DdYAAFYBQA6W40186.png

相關文章
相關標籤/搜索