一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務

一、掌握Samba服務的配置原理
二、在linux下配置samba共享服務(匿名共享、身份驗證、賬戶映射、訪問控制)
Samba介紹

Samba是運行在Linux與Unix之上的免費共享服務的軟件,是典型服務器/客戶端模式,它有兩個進程,一個是smbd,主要是用來管理共享文件的進程,另一個是nmbd,用來實現主機名到IP地址的轉換(相當於Windows下的NetBIOS的功能),smbd運行在TCP的139、445端口,nmbd則運行在UDP的137、138端口(運行samba服務後可以用如:netstat -anp | grep smbd、netstat -anp |grep nmbd來查看它開放的端口號),如果不運行nmbd進程則客戶端只能通過IP地址來訪問samba服務器了!
配置文件:
samba的配置文件存放在/etc/samba/下面,叫smb.conf。它的註釋較多,不過沒有中文的:),它指定需要共享的文件目錄、目錄共享權限(記住:它也受本地權限限制的啊)、訪問日誌名稱與路徑等.它分成兩大部分,一是Global Settings, 用來指全局設置的變量,如安全級別等,對整個服務器生效,另一個是對Shared Definitinos,說明共享相關的定義,它以"#"開頭爲註釋行,也有以";"開頭的配置範例行,默認是不生效的,如果想設置該行生效,可以把";"去掉即可!
常用的配置選項說明:
[Global] 配置文件必須以[Global]開頭(別忘了"["   "]"啊),它說明全局配置的開始;
workgroup = WORKGROUP 指明共享所在的工作組,可以是NT域名、工作組名
server string =Samba Server 客戶端看到的服務器的描述信息
netbios name = share file of samba Windows下看到的netbios信息,默認是沒有給出的,要使具用此描述,必須手動添加。
hosts allow = 192.168.2. 192.168.1. EXCEPT 192.168.1.10   允許192.168.2.0段和192.168.1.0段訪問,但192.168.1.10主機除外(注意:多網段時要用空格隔開)
hosts deny = 192.168.2.10 拒絕192.168.2.10訪問(注意:與上一個同時使用時,deny優先生效)
interfaces = 192.168.2.10 當服務器有多個網絡接口時,可以指定samba監聽端口,默認監聽全部端口的訪問
smb passwd file = /etc/samba/smbpasswd 指定samba的密碼文件所在位置
username map = /etc/samba/smbusers 指定賬號映射文件的位置,它是提高安全性的方法,可以防止系統用戶直接暴露出來
log file = /var/log/samba/%m.log 默認的日誌文件,%m是以主機名稱來分別記錄日誌
max log size = 50 默認日誌大小爲50K
include = /etc/samba/smb.conf.%U 加入以用戶爲控制單位的配置文件
include = /etc/samba/smb.conf.%G 加入以組爲控制單位的配置文件
security = share | user | server | domain | ads samba系統的安全級別
share安全級別模式,不需要輸入用戶和密碼就可以訪問共享資源
user安全級別模式,客戶端登錄samba服務器,需要提×××法帳號和密碼,經過服務器驗證纔可以訪問共享資源
server安全級別模式,客戶端需要將用戶名和密碼,提交到指定的一臺samba服務器上進行驗證,如果驗證出現錯誤,客戶端會用user級別訪問
domain安全級別模式,如果samba服務器加入windows域環境中,驗證工作服將由windows域控制器負責,domain級別的samba服務器只是成爲域的成員客戶端,並不具備服務器的特性,samba早期的版本就是使用此級別登錄windows域
ads安全級別模式,當samba服務器使用ads安全級別加入到windows域環境中,其就具備了domain安全級別模式中所有的功能並可以具備域控制器的功能
guest account=aaaa 讓用戶aaaa以匿名身份登錄,請確保/etc/passwd有此用戶
Socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192  設置服務器和客戶之間會話的Socket選項,此項設置將優化傳輸速度。 
admin user = wuzh  指時wuzh就是samba服務的管理員(好象有時候會說是無效參數啊)
---------Share Definitions--------
[public]  中括號裏是共享文件名
commont = share director of admin 共享的描述信息
path = /pub  共享文件路徑
public = yes|no  是否可以匿名訪問
browseable = yes|no 是否出現共享文件名
read only = yes|no 是否只讀
writable = yes|no  是否可寫
write list = 用戶名,用戶,@組名 設置可讀權限的用戶
valid users = 用戶名或@組名 設置有效用戶
invalid users = 用戶名或@組名 設置無效用戶
create mask = 0744                設置創建文件時的權限
directory mask = 0755             設置創建目錄時的權限
添加samba用戶,因爲samba用戶是基於系統用戶的,所以必須先建立系統用戶才能添加成samba用戶
useradd -s /sbin/nologin smbtest
smbpasswd -a smbtest 
輸入兩次samba密碼即可
smbpass常用選項:
smbpasswd -h 列出幫助信息
smbpasswd -a 添加用戶
smbpasswd -x 刪除現有的samba用戶
smbpasswd -n 刪除現有的samba用戶密碼
smbpasswd -d 禁用現有的samba用戶
smbpasswd -e 啓用已禁用的samba用戶
批量把系統用戶轉換成smbpasswd密碼文件:
cat /etc/passwd |mksmbpasswd.sh > /etc/samba/smbpasswd
smbpasswd 密碼文件存放在/etc/samba/smbpasswd裏,格式如下:
wuzh:500:561B1EBD1E1C9095AAD3B435B51404EE:5573EACDA2E72CD8CE6E8C433286B800:[U]:LCT-4325DFBD:
爲提高安全性一般可以設置如下參數:
socket address = 192.168.2.126 指定監聽地址
username map = /etc/samba/smbusers 設置映射賬號文件
hosts allow 指明允許訪問的地址(網段以"."結束)
hosts deny 明確指出拒絕的地址
smb passwd file 指出密碼文件位置
security 設置安全級別
encrypt passwords 以加密的方式訪問samba服務器
smbusers文件格式如下:
系統用戶名=映射的虛擬賬號1,映射的虛擬賬號2,...

testparm 是測試smb.conf是否有錯誤的好用工具,直接testparm就可以顯示相關信息了,相當簡單
客戶端測試:

smbclient //服務器/共享名 -U 用戶名%密碼
掛載:mount -t cifs //目標/共享名 /本地掛載目錄 -o username=用戶名%密碼

接下來進行試驗操作:1.Samba服務匿名共享
2.Samba服務身份驗證共享
3.Samba服務賬戶映射
4.Samba服務訪問控制

試驗環境:在VMware虛擬機開啓一臺Linux系統(我這裏是Redhat6.5),再開一臺Windows7。
試驗目的:1.讓Windows7作爲客戶端匿名共享Linux中的文件
2.在Windows7中共享Linux中的文件,但需要身份驗證。(身份、密碼)
3.給賬戶配置別名,建立映射關係,然後用別名登錄共享。
4.禁止指定的一個或多個網段進行訪問。
試驗過程:
1.首先我們對鏡像文件進行掛載,並安裝Samba服務軟件包。
分別執行命令:mount /dev/sr0 /mnt
rpm -ivh /mnt/Packages/samba-3.6.9-164.el6.x86_64.rpm 安裝軟件包。如下圖所示:

一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
2.通過命令mv /etc/samba/smb.conf /etc/samba/smb.conf.bak 對
配置文件進行重命名。再通過grep -v "#" smb.conf.bak > smb.conf過濾掉配置文件中以#開頭的內容,這樣也可以做一個配置文件的備份,又方便查找。如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
3.接下來進行Samba服務匿名訪問共享任務。
首先執行命令vi /etc/samba/smb.conf對配置文件進行修改,如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
4.接下來繼續在主配置文件中手動創建一個匿名共享的組,給創建的組設置相應的權限。如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
5.以上已經把匿名共享的文件創建好了,接下來我們選擇在/opt下面創建一個空目錄abc.。然後將abc的權限放到最大(777),這樣纔能有寫入的權限。如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
6.配置文件改完之後我們須關閉防火牆、關閉增強×××、重啓服務。
執行命令:service iptables stop 關閉防火牆
setenforce 0關閉增強×××
service smb restart重啓服務 如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
7..接下來就可以在window7上驗證匿名共享文件。如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
8.接下來我們進行身份驗證共享,所以還是要對主配置文件進行修改(vim /etc/samba/smb.conf)。修改如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
9.繼續修改配置文件,再重新寫一個組,實現共享需要身份驗證,如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
10.接下來先先重啓一下服務,然後創建李連杰、吳京兩個用戶,並設置smb訪問的密碼,在/opt下創建目錄test。並且給test目錄最大權限。如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
11.重啓服務
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
12.接下來在Windows7中清空緩存,進行用戶身份驗證。如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
如果只允許用戶吳京有寫入權限的話,在配置文件裏將writable=yes註釋掉就可以了。

13.接下里我們通過賬戶映射配置,通過創建兩個映射別名來進行共享訪問。
首先我們先修改配置文件,添加賬戶映射。如下圖所示:
vim /etc/samba/smbuser
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
14.可以讓一個網段或多個網段禁止訪問,修改配置文件
vim /etc/samba/smb.conf 在test這個組裏添加禁止訪問的網段。如下圖所示:
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
15.拒絕192.168.10網段客戶端訪問
一、掌握Samba服務的配置原理;二、在linux下配置samba共享服務
到此試驗成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章