當前位置:
首頁 > 最新 > Linux的兩種共享服務搭建

Linux的兩種共享服務搭建

1、NFS:Network File System

在Linux下實現文件共享有多種方式,NFS就是其中之一。網路文件系統(NFS)協議是由Sun MicroSystem在20世紀80年代為了提供對共享文件的遠程訪問而設計和實現的。該協議採用Client/Server模型, 通過使用Sun開發的遠程過程調用協議(RPC Protocol)來實現運行在一台計算機上的程序來調用在另一台遠程機器上運行的子程序。

NFS包含3個版本:NFSv2、NFSv3、NFSv4

RHEL6是以NFSv4作為默認版本,NFSv4使用TCP協議(埠號是2049)和NFS伺服器建立連接,而老版本的NFS可以在TCP協議或者是UDP協議上運行。NFS服務的埠默認是不固定的,但可以強制NFS使用固定埠。

RHEL6中NFS的軟體包:nfs-utils

在NFS的相關文檔中,有兩個值得重點關注

/etc/exports:NFS服務的主配置文件,該文件的最主要目的是發布共享目錄並為共享目錄限制許可權和其他服務的主配置文件一樣,絕大部分的配置都是通過編輯該文件完成。

/var/lib/nfs/xtab:這個文件主要用來記錄客戶端與NFS伺服器的連接記錄,如果想查看哪些客戶端曾經連接過NFS伺服器,查看該文件即可。

NFS服務的主配置文件exports發布共享目錄的格式如下:

共享目錄 [客戶端1參數1][客戶端2 參數]…

共享目錄是指在NFS伺服器上需要給客戶端共享出來的目錄,在設置共享目錄的時候要使用絕對路徑

客戶端是指所有可以訪問NFS伺服器共享目錄的計算機,常見客戶端指定方式如下表:

參數:在諸多可以附帶的參數中,使用最多的要數許可權設置的參數了,常見參數如下表:

注意:在發布共享目錄的格式中除了共享目錄是必跟參數外,其他參數都是可選的。而且共享目錄和客戶端1與客戶端2之間都 需要使用空格符號,但客戶端和參數之間不能有空格。

如:在/etc/exports文件添加如配置:

/media *(ro) 192.168.0.10(rw,no_root_squash)

/NFS/test 192.168.0.0/24(ro)

NFS服務的啟動與停止:NFS服務腳本是NFS

chkconfig --list

將rpcbind和nfs都設為自動啟動

chkconfig rpcbind on

chkconfig nfs on

啟動rpcbind

service rpcbind start -----先啟動rpcbind

service nfs start-----之後才能成功啟動nfs

注意:一定要先啟動rpcbind,然後再啟動nfs,不然NFS quotas和NFS daemon都將啟動失敗。

exportfs命令,用於維護當前主機中NFS伺服器的輸出目錄列表

exportfs –rv使NFS伺服器重新讀取exports文件的設置,而不需重啟NFS伺服器

exportfs –auv 用於停止當前主機中NFS伺服器的所有目錄輸出

exportfs –av 用於輸出NFS伺服器的所有共享目錄

exportfs –v 顯示輸出列表同時,顯示導出的設定參數

showmount命令

格式:showmount 參數 NFS伺服器的IP

showmount -e 在NFS Server上執行此命令顯示NFS Server上所有的共享卷

showmount -d 查看NFS伺服器上哪些共享目錄被客戶端掛載了

Showmount -a 顯示指定NFS伺服器的所有客戶端主機和其所連接的目錄

客戶端的使用

客戶端可以先使用showmount –e查看NFS伺服器發布的共享目錄

掛載NFS文件系統

Mount -t nfs NFS伺服器IP地址(或主機名):共享目錄 本地掛載點

如:mount –t nfs 192.168.0.1:/media /mnt

啟動系統自動掛載NFS

想要系統每次啟動時自動掛載NFS伺服器上的共享目錄,則可以編輯/etc/fstab文件

NFS伺服器的IP:共享目錄 掛載點 nfs defaults 0 0

例如:192.168.0.1:/media /mnt nfs defaults 0 0

配置NFS固定埠

默認情況下,NFS配置完畢後,每次重新啟動該服務後其相應的埠都會隨機變化,如果啟用了防火牆,如何開放變化的埠就成問題了,其實解決辦法也很簡單,只需對NFS進行配置使用固定埠即可

NFS服務啟動時,會檢查/etc/sysconfig/nfs文件,因此改該文件,修改相應欄位便可以強制NFS服務使用固定埠了

若NFS伺服器上啟用了iptables防火牆且filter表的3個鏈默認規則為DROP需創建如下規則:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

iptables -A INPUT -i lo -j ACCEPT

iptables -A OUTPUT -o lo -j ACCEPT

iptables –A OUTPUT –m state --state ESTABLISHED,RELATED –j ACCEPT

iptables –A INPUT –m state --state ESTABLISHED,RELATED –j ACCEPT

iptables –A INPUT –p tcp --dport 111 –j ACCEPT

iptables –A INPUT –p udp --dport 111 –j ACCEPT

iptables –A INPUT –p tcp --dport 2049 –j ACCEPT

iptables –A INPUT –p udp --dport 2049 –j ACCEPT

iptables –A INPUT –p tcp –m multiport --dport 875,32803,32769,892,662 –j ACCEPT

iptables –A INPUT –p udp –m multiport --dport 875,32803,32769,892,662 –j ACCEPT

service iptables save

2、SMB/CIFS

Samba項目是SMB/CIFS協議在Linux/Unix系統中的實現,能夠實現跨平台的文件和印表機資源共享,適用於使用混合操作系統平台的企業環境。

Samba的軟體包組成:samba、samba-client、samba-common、samba-doc等,只需安裝samba、samba-client、samba-common這3個軟體包,即可實現Samba伺服器和客戶端的基本功能

Samba伺服器的主要程序

smbd:提供對伺服器中文件、列印資源的共享訪問

nmbd:提供基於NetBIOS主機名稱的解析

Samba的服務腳本:/etc/init.d/smb

Samba的配置目錄及文件

/etc/samba/

/etc/samba/smb.conf

Samba服務的埠號

tcp協議的139、445;

udp協議的137、138;

若samba伺服器啟動了防火牆,要在input鏈上創建允許規則

smb.conf配置文件的內容組成

常見全局配置項的含義

workgroup:所在工作組名稱

server string:伺服器描述信息

security:安全級別,可用值如下:share、user、server、domain、ads(samba使用ads級別加入WINDOWS的域環境中)

passdb backend = tdbsam

log file:日誌文件位置,「%m」變數表示客戶機地址

max log size:日誌文件的最大容量,單位為KB

load printers = yes

cups options = raw

hosts allow

hosts deny

當hosts allow和hosts deny同時出現且衝突時,hosts allow優先

常見共享目錄配置項的含義

comment:對共享目錄的注釋、說明信息

path:共享目錄在伺服器中對應的實際路徑

browseable:該共享目錄在「網上鄰居」中是否可見

guest ok:是否允許所有人訪問,等效於「public」

writable:是否可寫,與read only的作用相反

建立可匿名訪問的文件共享

修改smb.conf配置文件

[global]

workgroup = WORKGROUP

security = share

[movie]

comment = Public share with movie files

path = /var/public/movies

public = yes

read only = yes

建立帶驗證的文件共享

建立Samba用戶資料庫文件:系統用戶帳號 -> Samba用戶帳號

smbpasswd -a 系統用戶名

smbpasswd命令的主要選項:

-h:顯示smbpasswd命令的幫助信息

-a:添加指定的Samba用戶帳號

-d:禁用指定的用戶帳號

-e:啟用指定的用戶帳號

-x:刪除指定的用戶帳號

不使用任何命令選項時可以用於修改Samba用戶的密碼

[global]

workgroup = WORKGROUP

security = user

[movie]

comment = Public share with movie files

path = /var/public/movies

public = no

read only = no

valid users = vina, @root

write list = root

directory mask = 0744

create mask = 0600

在smb.conf文件設置客戶機訪問授權,一般用在全局配置[global]部分

hosts allow配置項:僅允許特定的客戶機

hosts deny配置項:僅拒絕特定的客戶機

客戶機地址表示形式

以空格分隔多個地址

主機名或IP地址,例如: 192.168.168.11 或者 prtsvr

網路地址,例如:173.17. 或者 173.17.0.0/255.255.0.0

客戶端訪問

使用Windows客戶端訪問文件共享服務

網上鄰居、UNC路徑(win+r 輸入 \共享伺服器ip)

使用Linux客戶端訪問文件共享服務

smbclient命令,查看及登錄使用共享

smbclient -L 192.168.168.1

smbclient -U vina //192.168.168.1/movie

mount命令,將共享目錄掛載到本地使用

mount -o username=vina //192.168.168.1/movie /mnt

注意:若開啟了selinux功能則執行如下命令

先用getsebool -a |grep samba顯示與samba訪問相關的布爾值然後再用setsebool修改相關的布爾值。

-P 選項使修改的布爾值永久生效,如setsebool -P samba_enable_home_dirs on 和setsebool –P samba_export_all_ro on

編輯/Alex 美編/Mary


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 網路消防員 的精彩文章:

Linux域名解析服務部署
Linux搭建ISCSI存儲伺服器

TAG:網路消防員 |