下面說一下如何在RHEL5.4中搭建samba服務器,在搭建samba服務器以前要了解:linux
(1)samba服務器是幹什麼用的;ios
(2)它的主要做用是什麼;安全
(3)它在什麼狀況下會使用到。服務器
SMB協議
網絡
SMB協議是在局域網中共享文件/打印機的一種協議,該協議能夠爲網絡內部的Windows和Linux主機提供文件系統、打印服務。dom
SMB的工做原理是讓NetBIOS和SMB運行在TCP/IP之上,且使用NetBIOS的nameserver讓Linux機器能夠在Windows網絡鄰居中被瀏覽。這樣Windows就能夠方便地與linux進行資源的共享了。加密
Samba
Samba是一種用來實現SMB的軟件,是運行在Linux環境裏的自由軟件。它的主要功能包括如下幾點:spa
1.共享目錄:就是將服務器上的一個或幾個目錄設置爲共享,例處在同一局域網內的Windows用戶能夠訪問這些目錄。
2.共享打印機:可共享服務器中的打印機,供其餘客戶機使用。
3.控制共享資源的權限:對於設置的資源(目錄和打印機),能夠經過權限設置,控制不一樣的用戶具備不一樣的操做權限。
4.Linux訪問Windows共享資源:在Linux客戶端,可使用smbclient客戶端軟件登陸,與使用FTP相似的方式訪問Windows共享資源。.net
搭建Samba服務器:rest
1、首先就是安裝Samba了,可使用RPM包安裝,也可使用tar源碼包來安裝。RPM包的話須要安裝兩個包:samba-common-版本和samba-版本兩個包。可使用rpm-vih 命令來安裝。
2、配置服務器的IP地址,通常服務器的IP地址最好使用靜態的。具體如何配置,能夠參考搭建DHCP服務器那篇。
3、啓動Samba服務,啓動Samba服務後就能夠爲客戶機提供共享服務了,Samba的守護進程有2個:smbd和nmbd。
1.smbd是Samba的主要啓動進程,經過該進程可讓網絡內的其餘計算機知道Samba服務器共享了哪些資源。
2.nmbd進程用來解析Samba服務器所共享工做組及在些工做組下的netbios name。
4、配置Samba服務器的配置文件,RHEL5的Samba配置文件存放在/etc/samba/smb.conf中。咱們能夠修改此配置文件來使Samba更爲安全的工做。
它的配置文件裏的參數以下:
1.全局選項 [gloabal]:
NetBIOS name:設置Samba服務器的netbios名,這個參數能夠不設置,Samba將使用本機域名的第一部分做爲該選項的值。
Workgroup:設置當前Samba服務器所要加入的工做組,若security選項設置爲domain,則workgroup能夠設置爲域名。
server string:用來設置本機描述,能夠任意寫。
security:設置Samba服務器的基本安全級,包括share、user、server和domain4個值。根據設置的不一樣,用戶訪問samba服務器共享資源時的認證方式也不一樣;設置爲user時,要求提供用戶名和密碼進行驗證;設置爲share時,不須要任何認證;設置爲server時,與user安全級類型;設置爲domain時,要求網絡中存在一臺NT PDC,用戶名和密碼將在NT PDC中進行驗證。
注意:通常咱們只使用share和user兩個安全級,server和domain安全級不多用。
encrypt passwords:設置是否對密碼進行加密。因爲Windows默認狀態下不能傳送明文密碼,這裏建議設置爲yes(對密碼進行加密)。
username map:該選項的值爲一個文件名。所指向的文件中包含來自客戶機的用戶名與Samba服務器中Linux系統用戶名之間的映射。
guest account:設置來賓帳戶(guest)的用戶名,能夠是nobody、ftp等不須要密碼的用戶。
host allow:容許哪些計算機能夠訪問Samba服務器,能夠輸入多個IP地址,也能夠設置成某個網段。
host deny:與上面host allow相反。
printcap name:設置從指定文件中獲取打印機的描述信息(一般是/etc/printcap文件)。
load printers:若設置爲yes,表示容許自動加載打印機列表,而不須要單獨設置每一臺打印機,即不使用配置文件後面[printer]節的內容。
printing:定義打印機系統的類型。
log file:定義日誌文件。
max log size:設置日誌文件的大小,單位爲KB,設置爲0,大小不限。
interface:若是服務器有多個網絡接口,須要在這裏指定使用哪些網絡接口。
2.共享選項:
comment:對共享目錄的註釋說明。
writable:用戶對共享目錄是否可寫(注意:若是這裏設置爲yes,可是你共享的目錄用戶沒有寫入權限,那麼用戶不能往這個共享目錄裏寫入數據)。
browseable:設置用戶是否可瀏覽到該目錄(經過指定共享目錄名仍然能夠訪問)。
valid users:能夠訪問共享目錄的用戶列表 。
invalid users:與valid users相反。
create mode:在共享目錄中建立文件時,對文件設置的權限屬性(如0664)。
readonly:設置共享目錄是否爲只讀模式。
public:設置共享目錄是否容許匿名訪問。
guest ok:與public相同 。
path:設置共享目錄對應linux文件系統的哪個目錄。
writable:設置對該共享目錄是否爲寫入權限。
read only:設置共享目錄是否爲只讀(no爲可寫,yes爲只讀,注意別與上面的readonly混淆)。
read list:只能以讀權限訪問共享目錄的用戶列表。
write list:具備寫入權限的用戶列表,不管writeable和read list設置的是什麼 ,在該選項中設置的用戶都具備寫權限。
3.特殊設置選項:
在smb.conf文件中,還有兩個特殊的節:[home]和[printers],這兩節的設置是針對在Samba服務器中擁有帳號的用戶進行的。
[home]
此項是對在Samba服務器中擁有帳號的用戶,使用帳號登陸到Samba服務器後,則能夠對應的看到用戶本身的home目錄,經常使用選項有:
comment、writable、browseable、valid users、create mode、directory mode、readonly這幾項,其做用說明同上。
[printers]
此選項定義共享打印機相關選項,使Linux能夠經過Samba向網絡中其餘計算機提供打印服務,經常使用設置選項以下:
comment、path、browseable、gueset ok、writable、printable除最後一項外別的選項上面都有說明,最後一項是指打印機是否容許使用,設置爲yes才能使用網絡打印。
5、添加Samba用戶
當在[gloabal]節中設置security選項爲user時,要訪問Samba服務器中的共享資源,用戶必須輸入用戶名和密碼,通過認證才能訪問。這裏的用戶名必須是Linux系統中存在的用戶名,而密碼則不必定是登陸Shell時的密碼,密碼可以使用Samba提供的程序smbpasswd來單首創建。
注意:一般爲了系統的安全,使用useradd命令建立不能登陸Shell的用戶,而且不使用passwd命令爲其設置密碼。
smbpasswd命令的使用方法以下:
smbpasswd [選項] [用戶名]
經常使用選項:
-a :添加用戶。
-d :禁止用戶。
-e :容許用戶。
-x :刪除用戶。
6、Samba應用實例:
1.匿名Samba服務器:
實例背景:企業計劃架設一臺Samba服務器,用來向局域網內各客戶機提供軟件共享服務,經常使用的軟件包都存放在服務器上的/usr/soft/目錄中,要求用戶只能從該目錄中下載東西,而不能上傳修改目錄中的文件。另外,各客戶端還可心利用Samba服務器進行臨時文件存放,也就是任何用戶都有權限將文件寫到服務器上某個目錄裏,如:/usr/temp/目錄下。
根據以上要求配置步驟以下:
首先建立目錄/usr/soft/和/usr/temp/,而後修改權限。
#mkdir /usr/soft
#mkdir /usr/temp
#chmod 755 /usr/soft
#chown nobody:nobody /usr/temp
#vi /etc/samba/smb.conf
#==============================Global settings=============================
[global]
workgroup = WORKGROUP
server string = Samba Server
security = share
#==============================Share Definitions===========================
[soft]
path = /usr/soft
public = yes
read only = yes
[temp]
path = /usr/temp
public = yes
read only = no
#service smb restart
以上就是根據公司要求搭建的匿名Samba服務器,下面咱們來看一下如何設置須要身份驗證的Samba服務器配置,修改以上案例達到如下要求:
1.soft目錄:保存經常使用軟件,全部用戶都只有讀的權限,管理員admin除外,admin能夠向該目錄寫入文件,用來更新安裝軟件包。
temp目錄:仍然做爲臨時的文件交換目錄,的有用戶均可以進行讀寫操做。
tech目錄:保存技術部的資料,該目錄只有技術部的員工能夠進行讀寫操做,其餘人員不能訪問(經理manager可訪問該目錄,不能修改)。
market目錄:保存市場部的資料,該目錄只有市場部的員工能夠進行讀寫操做,其餘人員不能訪問(經理manager可訪問該目錄,不能修改)。
實現以上案例要求的步驟以下:
#groupadd tech
#groupadd market
#useradd -s /sbin/nologin admin
#useradd -s /sbin/nologin manager
#useradd -g tech -s /sbin/nologin li
#useradd -g market -s /sbin/nologin wei
#smbpasswd -a admin
輸入密碼:
#重複以上命令把每一個用戶都創建好後
#mkidr /home/tech
#mkidr /home/market
#chown manager:tech tech
#chown manager:market market
#chmod 570 /home/market
#chmod 570 /home/tech
#chmod 777 /usr/temp
#chown admin /usr/soft
作完上面的步驟後,而後修改配置文件,在配置文件裏面添加如下條目:
#=====================Global Setting==================
[global]
workgroup = WORKGROUP
server string = Samba Server
security = user
======================Share Definitions================
[soft]
path = /usr/soft
public = yes
writable = no
write list = amdin
[temp]
path = /usr/temp
public = yes
writable = yes
[tech]
path = /home/tech
valid users = manager,@tech
write list = @tech
read list = manager
[market]
path = /home/market
valid users = manager,@market
read list = manager
write list = @market
:wq
修改好配置文件後保存退出,而後重啓smb服務:service smb restart
以上就是Samba服務器的搭建,搭建完以後能夠到Windows客戶端上輸入//Samba服務器的IP地址,來驗證明驗是否成功。