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:網路消防員 |