一.NFS介紹
NFS(Network File System),全名叫做網絡文件系統,是由SUN公司研發的。顧名思義,簡單理解就是通過網絡互聯,將本地的文件系統共享出去,從而實現資源的共享,NFS監聽在TCP的2049端口上。當涉及到主機之間的通信時,就會存在安全問題,于是為了安全考慮,主動提出請求的一方(客戶端)需要提供一些基本信息來認證,這些信息是需要服務器端程序來管理的,在linux中對這些信息的管理可以由服務器程序自身去管理,也可以委托RPC來管理,RPC來管理通信雙方的基本信息,在CentOS7中由rpcbind服務提供,所以要想在CentOS7上實現NFS,需要同時啟動rpcbind服務。
安裝與配置
要想安裝NFS,需要安裝nfs-utils以及rpcbind
-
安裝軟件
安裝測試結果:
2.NFS的配置
(1)NFS服務器通過讀取/etc/exports配置文件來讀取哪些客戶端可以訪問哪些文件系統路徑,該文件書寫的注意事項:
以#開頭的是注釋行 |
每個共享文件系統需要獨立定義一行 |
客戶端主機之間需要使用空格隔開 |
客戶端主機的定義可以是一個網段,單臺主機,主機名 |
定義方式為:
共享路徑 客戶端1(選項) 客戶端2(選項)… |
(2)常用的選項:
ro:只讀共享 |
sync:同步寫操作 |
wdelay:延遲寫操作 |
rw:讀寫共享 |
async:異步寫操作 |
root_sqaush:屏蔽遠程root權限 |
no_root_squash:不屏蔽遠程root權限 |
all_squash:屏蔽所有遠程用戶權限 |
注意:默認情況下,NFS會屏蔽root權限,映射為NFS的匿名帳號,如果要保留root用戶權限,則要根據選項來控制。
(3)服務器端配置示例:將本機192.168.88.148的/data/share共享給192.168.88.132主機
a.在服務器端創建目錄
,
b.編輯配置文件
c.啟動并查看服務是否正常啟動
d.在客戶端掛載測試
e.在客戶端創建文件
(4)NFS的客戶端工具
exportfs:可以使用這個命令以root身份在不重啟服務的情況下選擇共享或者取消共享目錄
常用選項:
-r:重讀/etc/exports配置文件 |
-a:all的意思,在取消共享時可以使用這個選項 |
-u:取消共享 |
-v:顯示詳細信息 |
nfsstat:查看NFS狀態信息
常用選項:
-s:顯示服務器端狀態信息 |
-c:顯示客戶端狀態信息 |
-m:顯示掛載信息 |
-l:以列變的形式顯示信息 |
二.Samba
Samba是一個在Linux,UNIX,windows之間實現文件共享的軟件,通過SMB/CIFS協議提供安全穩定的文件共享服務,samba由smbd以及nmbd兩個守護進程組成,smbd進程為客戶端提供文件共享服務,還負責用戶權限的認證,smbd監聽的是TCP的139和445端口。而nmbd進程提供NetBIOS名稱服務,從而滿足CIFS的共享環境,該進程監聽與UDP的137號端口。
-
安裝samba
2.配置服務
a.還是以/data/share作為測試目錄
b.修改samba的配置文件/etc/samba/smb.conf,可以參考自帶的配置示例進行配置
c.創建訪問帳號
d.測試,
e.使用客戶端連接測試
掛載測試使用:
3.關于smbpasswd的使用
smbpasswd用于關于samba用戶
常用選項:
-a:添加用戶并設置密碼 |
-x:刪除用戶 |
-d:禁用samba用戶 |
-e:啟用samba用戶 |
三.vsftpd實現文件共享
vsftpd是Very Secure FTP的簡寫,是一個安全的FTP軟件,vsftpd的安全性體現在:進程之間是分離的,進程運行時均已最小的權限運行,大多數進程都使用了chroot進行了禁錮,能防止客戶端進行非法的訪問。而FTP協議本身就十分特別,體現在其其命令連接和數據連接使用的并不是同一個連接。當客戶端向服務器端請求資源時。服務器會使用21號端口進行相應,該端口只負責處理請求命令,而最終服務器端進行數據傳輸時采用的時另一個端口,數據端口取決與服務器端運行的模式。服務器端有兩種運行模式:主動模式和被動模式。
1.FTP的工作模式
(1)主動模式(Active Mode)
第一步:客戶端打開大于1024的端口與服務器的21號端口進行通信,建立命令連接 |
第二步:當需要進行數據傳輸時,客戶端會在打開一個大于1024的端口,并通過命令連接將次端口號告知服務器,以后的數據連接就通過次端口號進行傳輸 |
第三步:服務器端收到這個端口號之后,會進行三次握手,然后就進行數據傳輸 |
(2)被動模式(Passive Mode)
第一步:客戶端打開大于1024的端口號與服務器21號端口建立連接 |
第二步:當要進行數據傳輸時,客戶端提出數據傳輸請求 |
第三步:服務器端隨機打開一個端口,并通過命令連接將此端口號告知客戶端 |
第四步:客戶端收到端口號之后,在隨機打開一個端口與此前服務器端打開的端口建立連接,完成三次握手之后就進行數據傳輸。 |
現在采用的較多的是被動模式,因此客戶端主機通常受到防火墻的保護。
2.vsftpd的登錄方式
vsftpd的登錄方式有三種:本地賬戶登錄,匿名賬戶登錄,虛擬賬戶登錄
本地賬戶登錄:需要使用系統賬戶對應的用戶名和密碼才能進行登錄 |
匿名賬戶登錄:不需要輸入賬戶和密碼進行認證 |
虛擬賬戶登錄:將來訪問的用戶映射為系統guest_username指定的用戶 |
vsftpd可以使用/etc/vsftpd/ftpusers做黑名單,使用/etc/vsftpd/userlist做白名單控制,格式為每行一個用戶名。
3.vsftpd的安裝與配置
a.安裝vsftpd
b.修改/etc/vsftpd目錄下的配置文件
常用的配置選項:
listen=NO :是否監聽端口,獨立運行守護進程 |
listen_por=21 : 監聽用于建立命令連接的端口 |
write_enable=YES :是否允許寫操作 |
download_enable=YES:是否允許下載 |
connect_from_port_20=YES:使用主動模式,啟用20端口 |
pasv_enable=YES : 是否啟用被動模式 |
pasv_max_port=24600:被動模式的連接的最大端口號 |
pasv_min_port=24500:被動模式的連接的最小端口號 |
userlist_enable=YES:是否啟用userlist用戶列表 |
userlist_deny=YES:是否禁用userlist文件中的用戶訪問 |
max_client=2000 : 最大允許的客戶端連接數 |
max_per_ip=0:每個客戶端的最大連接限制,0代表無限制 |
tcp_wrapper=YES:是否啟用tcp_wrapper |
guest_enable=YES:是否允許來賓賬戶登錄 |
guest_username=ftp:匿名賬戶登錄時映射為的用戶名 |
user_config_dir=/etc/vsftpd/ : 指定配置文件的存放路徑 |
anonymous_enable=YES:是否允許匿名賬戶登錄 |
anon_root=/var/ftp:設置匿名訪問的根路徑 |
anon_upload_enable=YES:是否允許匿名用戶上傳文件 |
anon_mkdir_write_enable=YES:是否允許匿名用戶創建目錄 |
anon_other_write_enable=YES:是否運行匿名用戶修改其他用戶的文件 |
local_enable=YES:是否啟用本機賬戶FTP |
local_max_rate=0:本地賬戶的傳輸的速率 |
local_umask=077:本地賬戶的權限遮罩碼 |
chroot_local_user=YES:是否禁錮本地賬戶的家目錄 |
local_root=/ftp/ :本地賬戶訪問的家目錄 |
e.啟動服務并測試
至此,vsftpd已經可以使用。
原創文章,作者:zhangbao,如若轉載,請注明出處:http://www.www58058.com/65792
非常棒的總結,再接再勵。