NFS服務和FTP服務配置

14.1 NFS介紹

NFS(Network File System)數據傳輸基於RPC協議,RPC爲Remote Procedure Call的簡寫。shell

NFS的應用場景是:A,B,C3臺機器上須要保證被訪問到的文件是同樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致。數據庫

NFS原理圖:vim


14.2 NFS服務端安裝配置

在CentOS上使用NFS服務須要安裝兩個包(nfs-utils和rpcbind),當咱們使用yum安裝nfs-utils時會一併安裝rpcbind:安全

#yum install -y nfs-utils服務器

而後修改配置文件:session

#vim /etc/exportsdom

寫入以下內容:async

/home/nfstestdir 192.168.6.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)測試

編輯好配置文件後建立相關的目錄並啓動NFS服務:ui

[root@zhangjin-120:~]#mkdir /home/nfstestdir  #建立目錄
[root@zhangjin-120:~]#chmod 777 /home/nfstestdir  #更改權限
[root@zhangjin-120:~]#systemctl start rpcbind  #啓動rpc服務
[root@zhangjin-120:~]#systemctl start nfs  #啓動nfs服務
[root@zhangjin-120:~]#systemctl enable rpcbind  #rpc服務開機啓動
[root@zhangjin-120:~]#systemctl enable nfs  #nfs服務開機啓動
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.


14.3 NFS配置選項

上面咱們修改了配置文件/etc/exports,並寫入以下內容:

/home/nfstestdir 192.168.6.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

其中,第一部分是本地要共享出去的目錄,而後是容許訪問的主機(能夠是一個IP,也能夠是一個IP段),小括號裏面的是一些權限選項:

rw:表示只寫。

ro:表示只讀。

sync:同步模式,表示內存中的數據實時寫入磁盤。

async:非同步模式,表示把內存中的數據按期寫入磁盤。

no_root_squash:加上這個選項後,root用戶就會對共享的目錄擁有至高的權限控制,就像是對本機的目錄操做同樣。但這樣安全性會下降。

root_squash:與no_root_squash選項對應,表示root用戶對共享目錄的權限不高,只有普通用戶的權限,即限制了root。

all_squash:表示無論使用NFS的用戶是誰,其身份都會被限定爲一個指定的普通用戶身份。

anonuid/anongid:要和root_squash以及all_squash選項一同使用,用於指定使用NFS的用戶被限定後的uid和gid,但前提是本機的/etc/passwd中存在相應的uid和gid。

上面的配置文件/etc/exports爲要共享的目錄爲/home/nfstestdir,信任的主機爲192.168.6.0/24這個網段,權限爲讀/寫,同步模式,限定全部使用者,而且限定的uid和gid都爲1000。

咱們準備兩臺虛擬機,192.168.6.120做爲服務端,192.168.6.123做爲客戶端。在客戶端掛載NFS以前,咱們須要先查看服務端共享了哪些目錄。客戶端安裝了nfs-utils包後,可使用showmount命令查看:

使用命令showmount -e IP能夠查看NFS的共享狀況,從上面咱們能夠看到192.168.6.120的共享目錄爲/home/nfstestdir,信任主機爲192.168.6.0/24這個網段。

而後在客戶端上(192.168.6.123)掛載NFS:

能夠看到增長了一個/mnt分區,這個就是NFS共享的目錄了。

咱們進入到/mnt/目錄下,並建立測試文件:

咱們在服務端上也能夠看到這個文件:


14.4 exportfs命令

exportfs命令的經常使用選項有:

-a:表示所有掛載或者卸載。

-r:表示從新掛載。

-u:表示卸載某一個目錄。

-v:表示顯示共享的目錄。

當改變/etc/exports配置文件後,使用exportfs命令掛載不須要重啓NFS服務。

咱們在服務端(192.168.6.120)修改配置文件/etc/exports:

而後在服務端執行命令exportfs -arv:

在前面咱們用不對勁了mount命令。其實用mount命令來掛載NFS服務是要用-t nfs來指定掛載的類型爲nfs。另外在掛載NFS服務時,經常使用-o nolock(不加鎖)選項。例如咱們在客戶端(192.168.6.123)上執行以下命令:

咱們還能夠把要掛載的NFS目錄寫到客戶端上的/etc/fstab文件中,掛載時只須要執行mount -a命令便可。

#vim /etc/fstab

這樣操做的好處是之後開機會自動掛載NFS。剛剛掛載的/zhangjin/目錄在服務端設置了no_root_squash,它並不會限制root用戶,也就是說使用root用戶建立文件時,跟在客戶端本機上建立的同樣:

能夠看到,test.txt的全部者和所屬組都爲root。


14.5 NFS客戶端問題

NFS4版本會有該問題:客戶端掛載共享目錄後,不論是root用戶仍是普通用戶,建立新文件時屬主、屬組爲nobody。

解決的辦法有兩種:

一是客戶端掛載時加上-o nfsvers=3(指定nfs的版本爲3版本)

# mount -t nfs -o nfsvers=3 192.168.6.120:/tmp/ /mnt/

客戶端和服務端都須要

另外一種方法是編輯文件:

vim /etc/idmapd.conf

把「#Domain = local.domain.edu」改成「Domain = xxx.com」,而後再重啓rpcidmapd服務。 


15.1 FTP介紹

FTP(File Transfer Protocol)文件傳輸協議,用於在因特網上控制文件的雙向傳輸。它同時也是一個應用程序,用戶能夠經過它把本身的PC機與世界各地全部運行FTP協議的服務器相連,以訪問服務器上的大量程序和信息。

FTP的主要做用就是讓用戶鏈接一個遠程計算機,並查看遠程計算機中的文件,而後把文件從遠程計算機複製到本地計算機,或把本地計算機的文件傳送到遠程計算機。FTP方便傳輸數據,因此我的用戶不少,但在企業裏用得愈來愈少,由於FTP是有必定安全隱患的。


15.2/15.3 使用vsftpd搭建ftp

一、安裝vsftpd

#yum install -y vsftpd

二、創建賬號及與虛擬帳戶相關的文件

#useradd virftp -s /sbin/nologin

#vim /etc/vsftpd/vsftpd_login

寫入以下內容:

test1

123456

zhangjin

abcdef

其中,test一、test2爲用戶名,12345六、abcdef爲對應的密碼。

再更改該文件的權限

#chmod 600 /etc/vsftpd/vsftpd_login

因爲vsftpd使用的密碼不是明文的,須要生成對應的庫文件:

#db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

再創建與虛擬帳號相關的目錄以及配置文件:

#mkdir /etc/vsftpd/vsftpd_user_conf

#cd /etc/vsftpd/vsftpd_user_conf  #進入剛纔建立的目錄

三、建立和用戶對應的配置文件

#vim test1

寫入以下內容:

local_root=/home/virftp/test1

anonymous_enable=NO

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

idle_session_timeout=600

data_connection_timeout=120

max_clients=10

max_per_ip=5

local_max_rate=50000

其中,local_root爲test1帳號的家目錄,anonymous_enable用來限制是否容許匿名帳號登陸(若爲NO,表示不容許匿名帳號登陸),write_enable=YES表示可寫,local_umask指定umask值,anon_upload_enable表示是否容許匿名帳號上傳文件,anon_mkdir_write_enable表示是否容許匿名帳號可寫。

建立zhangjin帳號的步驟和test1同樣:

#mkdir /home/virftp/test1
#touch /home/virftp/test1/testvirftp.txt
#chown -R virftp:virftp /home/virftp
#vim /etc/pam.d/vsftpd
在開頭加入兩行:

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

四、修改全局配置文件/etc/vsftpd/vsftpd.conf

並在文件最後面添加以下內容:

chroot_local_user=YES

guest_enable=YES

guest_username=virftp

virtual_use_local_privs=YES

user_config_dir=/etc/vsftpd/vsftpd_user_conf

allow_writeable_chroot=YES

而後啓動vsftpd服務:

#systemctl start vsftpd

再安裝lftp客戶端軟件:

#yum install -y lftp

而後進行測試:


15.4 xshell使用xftp傳輸文件

下載軟件:

在Xshell裏按住ctrl+alt+f彈出下載頁面:

 

安裝完成後再在Xshell裏按住ctrl+alt+f,此時就會彈出傳輸頁面:

此時就能夠在兩邊傳輸文件了。


15.5 使用pure-ftpd搭建ftp服務

一、安裝pure-ftpd

#yum install -y epel-release

#yum install -y pure-ftpd

二、配置pure-ftpd

#vim /etc/pure-ftpd/pure-ftpd.conf

而後搜索PureDB                        /etc/pure-ftpd/pureftpd.pdb,把前面的#去掉。而後啓動pure-ftpd,啓動以前須要關閉vsftpd,由於端口衝突:

#systemctl stop vsftpd

#systemctl start pure-ftpd

查看pure-ftpd是否啓動成功:

三、創建帳號

其中,-u選項將虛擬用戶ftp_user1與系統用戶pure-ftp關聯在一塊兒,也就是說,使用ftp_user1帳號登陸FTP後,會以pure-ftp的身份來讀取和下載文件,-d選項後面的目錄爲ftp_user1帳戶的家目錄,這樣可使ftp_user1只能訪問其家目錄/data/ftp/。

而後建立用戶信息數據庫文件:

#pure-pw mkdb

其中,pure-pw還能夠列出當前的FTP帳號以及刪除某個帳號。例如:

下面進行測試:

相關文章
相關標籤/搜索