全套學(xué)習(xí)資料移步至公眾號(hào)【學(xué)神來(lái)啦】
本節(jié)所講內(nèi)容:
?4.1 ?VSFTP服務(wù)器概述
?4.2 ?安裝配置VSFTP
?4.3 ?實(shí)戰(zhàn):匿名訪問(wèn)VSFTP
?4.4 ?實(shí)戰(zhàn):用戶名密碼方式訪問(wèn)VSFTP
?4.5 ?NFS概述-配置NFS服務(wù)器并實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)掛載
服務(wù)器信息:
FTP服務(wù)端:xuegod63 ??IP:192.168.1.63
FTP客戶端:xuegod64???IP:192.168.1.64
FTP服務(wù)器(File Transfer Protocol Server)是在互聯(lián)網(wǎng)上提供文件存儲(chǔ)和訪問(wèn)服務(wù)的計(jì)算機(jī),它們依照FTP協(xié)議提供服務(wù)。
FTP(File Transfer Protocol: 文件傳輸協(xié)議)作用:Internet 上用來(lái)傳送文件的協(xié)議壮虫。
常見(jiàn)FTP服務(wù)器:
Windows:Serv-U?、FTP Server肖方、filezilla_server
Linux:ProFTPD:(Professional FTP daemon)一個(gè)Unix平臺(tái)上或是類Unix平臺(tái)上(如Linux, FreeBSD等)的FTP服務(wù)器程序。
VSFTP是一個(gè)基于GPL發(fā)布的類Unix系統(tǒng)上使用的FTP服務(wù)器軟件,它的全稱是Very Secure FTP 從此名稱可以看出來(lái)棠涮,編制者的初衷是代碼的安全搅方。
特點(diǎn):
它是一個(gè)安全比吭、高速、穩(wěn)定的FTP服務(wù)器姨涡。
VSFTP模式: C/S 模式
監(jiān)聽(tīng)端口:20衩藤、21
[root@xuegod64 ~]# vim /etc/services? #查看services文件,如圖 4-1 所示涛漂。
圖 4-1 FTP端口
FTP監(jiān)聽(tīng)的端口有兩個(gè):
端口20:用于傳輸數(shù)據(jù)
端口21:用于傳輸指令
主動(dòng)和被動(dòng)模式:
FTP會(huì)話包含了兩個(gè)通道赏表,控制通道和數(shù)據(jù)傳輸通道,F(xiàn)TP的工作有兩種模式匈仗,一種是主動(dòng)模式瓢剿,一種是被動(dòng)模式,以FTP Server為參照锚沸,主動(dòng)模式跋选,服務(wù)器主動(dòng)連接客戶端傳輸,被動(dòng)模式哗蜈,等待客戶的連接前标。
主動(dòng)模式(PORT)的工作原理:
FTP客戶端連接到FTP服務(wù)器的21號(hào)端口,發(fā)送用戶名和密碼距潘,客戶端隨機(jī)開(kāi)放一個(gè)端口(1024以上)炼列,發(fā)送PORT命令到FTP服務(wù)器,告知服務(wù)器客戶端采用主動(dòng)模式并開(kāi)放端口音比,F(xiàn)TP服務(wù)器收到PORT主動(dòng)模式命令和端口后俭尖,通過(guò)服務(wù)器的20號(hào)端口和客戶端開(kāi)放的端口連接,發(fā)送數(shù)據(jù)洞翩,原理如圖 4-2 所示稽犁,(無(wú)論是主動(dòng)還是被動(dòng)模式,首先的控制通道都是先建立起來(lái)骚亿,只是在數(shù)據(jù)傳輸模式上的區(qū)別)
圖 4-2 FTP主動(dòng)模式工作原理圖
被動(dòng)模式的工作原理:
PASV是Passive的縮寫已亥,中文成為被動(dòng)模式,工作原理:FTP客戶端連接到FTP服務(wù)器所監(jiān)聽(tīng)的21號(hào)端口来屠,發(fā)送用戶名和密碼虑椎,發(fā)送PASV命令到FTP服務(wù)器震鹉,服務(wù)器在本地隨機(jī)開(kāi)放一個(gè)端口(1024以上),然后把開(kāi)放的端口告知客戶端捆姜,而后客戶端再連接到服務(wù)器開(kāi)放的端口進(jìn)行數(shù)據(jù)傳輸传趾,原理如圖 4-3 所示。
圖 4-3 FTP被動(dòng)模式工作原理圖
被 ???21 ??1024以上 ?
使用rpm安裝本地光盤中的vsftp程序包:
[root@xuegod63?~]# rpm -ivh /mnt/cd/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
或:
使用yum直接安裝(兩種安裝方法浆兰,選取其中一種即可):
[root@xuegod63 ~]#?yum -y install vsftpd
[root@xuegod64 ~]# yum install -y lftp? #使用yum安裝ftp客戶端。
lftp
Linux客戶端:
lftp 是一個(gè)功能強(qiáng)大的下載工具珊豹,它支持訪問(wèn)文件的協(xié)議: ftp镊讼、ftps、http平夜、https、hftp(其中ftps和https需要在編譯的時(shí)候包含openssl庫(kù))卸亮,lftp的界面非常類似一個(gè)Shell忽妒,有命令補(bǔ)全、歷史記錄兼贸、允許多個(gè)后臺(tái)任務(wù)執(zhí)行等功能段直,使用起來(lái)非常方便。它還有書簽溶诞、排隊(duì)鸯檬、鏡像、斷點(diǎn)續(xù)傳螺垢、多進(jìn)程下載喧务、等功能。
vsftpd 相關(guān)文檔:
/etc/vsftpd/vsftpd.conf#vsftpd 的核心配置文件枉圃。
/etc/vsftpd/ftpusers? #用于指定哪些用戶不能訪問(wèn)FTP 服務(wù)器功茴,即黑名單。
/etc/vsftpd/user_list? #指定允許使用VSFTP的用戶列表文件孽亲,即白名單坎穿。
[root@xuegod63 ~]#?vim /etc/vsftpd/user_list? #查看user_list文件,如圖 4-4 所示返劲。
圖 4-4 VSFTP的用戶列表文件
圖4-4中的說(shuō)明:如果userlist_deny= YES(默認(rèn))玲昧,絕不允許在這個(gè)文件中的用戶登錄ftp,甚至不提示輸入密碼篮绿。
/etc/vsftpd/vsftpd_conf_migrate.sh? #是vsftpd 操作的一些變量和設(shè)置腳本
/var/ftp/#默認(rèn)情況下匿名用戶的根目錄
[root@xuegod63 vsftpd]# systemctl start vsftpd? #啟動(dòng)FTP服務(wù)孵延。
[root@xuegod63 vsftpd]# systemctl enable vsftpd #設(shè)置開(kāi)啟自動(dòng)啟動(dòng)FTP服務(wù)。
#注意關(guān)閉iptables 和SElinux
[root@xuegod63 ~]# netstat -antup | grep ftp? #查看FTP服務(wù)監(jiān)聽(tīng)的端口搔耕。
tcp ???0 ????0 0.0.0.0:210.0.0.0:* ?????????LISTEN ??????11725/vsftpd
思考:以上內(nèi)容中說(shuō)明FTP監(jiān)聽(tīng)兩個(gè)端口隙袁,但目前FTP已經(jīng)啟動(dòng)了痰娱,但經(jīng)過(guò)查看,只查看到21號(hào)端口菩收,還有20號(hào)端口沒(méi)有查看到梨睁?
是因?yàn)闆](méi)有數(shù)據(jù)傳輸,20號(hào)端口是用于傳輸數(shù)據(jù)的娜饵,所以20號(hào)端口是尚未開(kāi)啟坡贺,如有數(shù)據(jù)傳輸時(shí),20號(hào)端口則會(huì)開(kāi)啟箱舞。
Linux系統(tǒng):以xuegod63主機(jī)示例(即服務(wù)端遍坟、客戶端為一臺(tái)主機(jī))
[root@xuegod63 ~]# rpm -ivh /mnt/Packages/lftp-4.4.8-8.el7_3.2.x86_64.rpm? #安裝FTP客戶端
[root@xuegod63?~]# lftp 192.168.1.63? #連接FTP服務(wù)器。
ctrl+d ?或 ?exit退出
晴股? ?幫助
Windows系統(tǒng):
通過(guò)瀏覽器訪問(wèn)或 打開(kāi)文件夾愿伴,在地址欄輸入地址:ftp://192.168.1.63/,如圖4-5 所示电湘。
圖 4-5 Windows系統(tǒng)FTP客戶端連接服務(wù)器
4.2.5??修改配置文件隔节,實(shí)戰(zhàn)舉例匿名訪問(wèn)
例4.1:公司技術(shù)部準(zhǔn)備搭建一臺(tái)功能簡(jiǎn)單的FTP 服務(wù)器,允許所有員工上傳和下載文件寂呛,并允許創(chuàng)建用戶自己的目錄怎诫。
分析:
允許所有員工上傳和下載文件需要設(shè)置成允許匿名用戶登錄并且需要將允許匿名用戶上傳功能開(kāi)啟。
anon_mkdir_write_enable 字段可以控制是否允許匿名用戶創(chuàng)建目錄贷痪。
[root@xuegod63 ~]# cd /etc/vsftpd/? #切換工作目錄至FTP工作目錄下幻妓。
[root@xuegod63 vsftpd]# cp vsftpd.conf{,.bak} #使用命令展開(kāi)式,F(xiàn)TP配置文件備份劫拢,便于后期恢復(fù)還原肉津。
[root@xuegod63 vsftpd]#?vim ?vsftpd.conf?? #編輯FTP配置文件,修改以下內(nèi)容舱沧。
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
允許匿名用戶上傳文件并可以創(chuàng)建目錄阀圾,如圖 4-6、4-7 所示狗唉。
圖 4-6 允許匿名用戶上傳文件并可以創(chuàng)建目錄
圖 4-7 允許匿名用戶上傳文件并可以創(chuàng)建目錄
重啟FTP服務(wù)初烘,使配置文件生效:
[root@xuegod63 vsftpd]#?systemctl restart vsftpd
測(cè)試:提示不能寫,如圖 4-8所示分俯。
圖 4-8 測(cè)試連接FTP服務(wù)器
[root@xuegod63 vsftpd]# chownftp.ftp/var/ftp/pub/? #修改FTP共享目錄屬主肾筐、屬組為ftp用戶。
再次測(cè)試缸剪,結(jié)果:可以新建文件夾吗铐,但是不能重命名,不能刪除杏节!
[root@xuegod63 vsftpd]# vim vsftpd.conf? #編輯FTP配置文件唬渗,修改以下內(nèi)容典阵。
anon_other_write_enable=YES??? #默認(rèn)沒(méi)有,需要手動(dòng)添加下這行(匿名帳號(hào)可以有寫的權(quán)限)镊逝。
重啟FTP服務(wù)壮啊,使配置文件生效:
[root@xuegod63 vsftpd]#?systemctl restart vsftpd
可以刪除文件夾了,這個(gè)參數(shù)對(duì)匿名用戶來(lái)說(shuō)權(quán)限太大撑蒜,不安全歹啼,使用這個(gè)參數(shù)需要考慮安全性。
注意座菠,默認(rèn)匿名用戶家目錄的權(quán)限是755狸眼,這個(gè)權(quán)限是不能改變的。切記浴滴!
例4.2:
公司內(nèi)部現(xiàn)在有一臺(tái)FTP 和WEB 服務(wù)器拓萌,F(xiàn)TP 的功能主要用于維護(hù)公司的網(wǎng)站內(nèi)容,包括上傳文
件升略、創(chuàng)建目錄司志、更新網(wǎng)頁(yè)等等。公司現(xiàn)有兩個(gè)部門負(fù)責(zé)維護(hù)任務(wù)降宅,他們分別使用team1和team2
帳號(hào)進(jìn)行管理。先要求僅允許team1 和team2 帳號(hào)登錄FTP 服務(wù)器囚霸,但不能登錄本地系統(tǒng)腰根,并將兩個(gè)帳號(hào)的根目錄限制為/var/www/html,不能進(jìn)入該目錄以外的任何目錄拓型。
ftp 和www web服務(wù)器相結(jié)合额嘿。
www web服務(wù)器根目錄:/var/www/html
只允許:team1和team2兩用戶 可以上傳,vsftp禁止匿名劣挫。
分析:
將FTP 和WEB 服務(wù)器做在一起是企業(yè)經(jīng)常采用的方法册养,這樣方便實(shí)現(xiàn)對(duì)網(wǎng)站的維護(hù),為了增強(qiáng)安全性压固,首先需要使用僅允許本地用戶訪問(wèn)球拦,并禁止匿名用戶登錄。其次使用chroot 功能將team1和team2 鎖定在/var/www/html 目錄下帐我。如果需要?jiǎng)h除文件則還需要注意本地權(quán)限坎炼。
解決方案:
建立維護(hù)網(wǎng)站內(nèi)容的ftp 帳號(hào)team1 和team2 并禁止本地登錄,然后設(shè)置其密碼拦键。
[root@xuegod63 ~]# useradd -s /sbin/nologin team1 ????#創(chuàng)建team1用戶谣光,并禁止登錄系統(tǒng)。
[root@xuegod63 ~]# useradd -s /sbin/nologin team2?????#創(chuàng)建team2用戶芬为,并禁止登錄系統(tǒng)萄金。
[root@xuegod63 ~]# echo "123456" | passwd --stdin team1 #設(shè)置team1用戶密碼蟀悦。
Changing password for user team1.
passwd: all authentication tokens updated successfully.
[root@xuegod63 ~]# echo "123456" | passwd --stdin team2 #設(shè)置team2用戶密碼。
氧敢。日戈。。同上
#vsftp判定是否是有效用戶還要判定是否為系統(tǒng)用戶福稳。所以要在此文件中添加創(chuàng)建用戶的shell類型涎拉。
配置vsftpd.conf 主配置文件并作相應(yīng)修改
[root@xuegod63 vsftpd]# cp vsftpd.conf.bak vsftpd.conf? #恢復(fù)此前備份的FTP配置文件覆蓋當(dāng)前的FTP配置文件。
cp:是否覆蓋"vsftpd.conf"的圆? y? #輸入y確認(rèn)覆蓋當(dāng)前配置文件鼓拧。
[root@xuegod63 vsftpd]#?vim /etc/vsftpd/vsftpd.conf? #編輯FTP配置文件,修改如圖 1-11 所示內(nèi)容越妈。
anonymous_enable=NO? #禁止匿名用戶登錄
local_enable=YES? #允許本地用戶登錄
圖 4-11 禁止匿名用戶季俩、允許本地用戶登錄
修改如圖 4-12 所示的內(nèi)容為如圖 4-13 所示內(nèi)容:
圖 4-12
圖 4-13
local_root=/var/www/html? ? #設(shè)置本地用戶的根目錄為/var/www/html。
chroot_list_enable=YES? ? ? #開(kāi)啟chroot 功能梅掠。
chroot_list_file=/etc/vsftpd/chroot_list? #設(shè)置鎖定用戶在根目錄中的列表文件酌住。此文件存放要鎖定的用戶名。
allow_writeable_chroot=YES?? ? #允許鎖定的用戶有寫的權(quán)限阎抒。
修改完成后保存并退出酪我。
建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帳號(hào)
[root@xuegod63 vsftpd]# touch /etc/vsftpd/chroot_list? #創(chuàng)建chroot_list文件且叁。
[root@xuegod63 vsftpd]# ll !$
ll /etc/vsftpd/chroot_list
-rw-r--r-- 1 root root 0 Nov 10 17:08 /etc/vsftpd/chroot_list
[root@xuegod63 vsftpd]# vim?/etc/vsftpd/chroot_list?? #寫入以下內(nèi)容都哭,一行一個(gè)用戶名。
team1
team2
修改本地權(quán)限
[root@xuegod63 vsftpd]# ll -d /var/www/html/? #以長(zhǎng)格式查看/var/www/html/目錄逞带,-d選項(xiàng)用于查看目錄本身欺矫,不包含目錄下的文件。
drwxr-xr-x. 2 root root 4096 Oct ?6 ?2011 /var/www/html/
[root@xuegod63 vsftpd]# chmod -R o+w /var/www/html/? #賦予/var/www/html/目錄和該目錄下所有文件的寫權(quán)限展氓。
[root@xuegod63 vsftpd]# ll -d /var/www/html/
drwxr-xrwx. 2 root root 4096 Oct ?6 ?2011 /var/www/html/
重啟vsftpd 服務(wù)使配置生效
[root@xuegod63 vsftpd]#?systemctl restart vsftpd
[root@xuegod63 vsftpd]# cp /etc/passwd /var/www/html/
測(cè)試
客戶端用lftp登陸查看:
root@xuegod64 ~]# lftp 192.168.1.63 -u team1,123456
lftp team1@192.168.0.63:~> ls
-rw-r--r-- ???1 0 ???????0 ???????????1384 Jul 30 01:56 passwd
lftpteam1@192.168.0.63:/> 穆趴?(查看幫助信息)
或通過(guò)filezilla測(cè)試連接及創(chuàng)建上傳文件等 ?
擴(kuò)展: 配置vsftpd,使用SSL證書加密數(shù)據(jù)傳輸
FTP與HTTP一樣缺省狀態(tài)都是基于明文傳輸,希望FTP服務(wù)器端與客戶端傳輸保證安全遇汞,可以為FTP配置SSL
[root@xuegod63?vsftpd]# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem?-days 3650
Generating a 2048 bit RSA private key
..........................................................................................+++
.....................+++
writing new private key to 'vsftpd.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:ZH
State or Province Name (full name) []:JS
Locality Name (eg, city) [Default City]:NJ
Organization Name (eg, company) [Default Company Ltd]:XS
Organizational Unit Name (eg, section) []:XS
Common Name (eg, your name or your server's hostname) []:XS.COM
Email Address []:XS@163.COM
OpenSSL 簡(jiǎn)單參數(shù)解釋:
req? #是 X.509 Certificate Signing Request (CSR未妹,證書簽名請(qǐng)求)管理的一個(gè)命令。
x509? #X.509 證書數(shù)據(jù)管理空入。
days? #定義證書的有效日期教寂。
newkey? #指定證書密鑰處理器。
keyout? #設(shè)置密鑰存儲(chǔ)文件执庐。
out? #設(shè)置證書存儲(chǔ)文件酪耕,注意證書和密鑰都保存在一個(gè)相同的文件
[root@xuegod63?~]# cd /etc/vsftpd
[root@xuegod63 vsftpd]# mkdir .sslkey? #創(chuàng)建隱藏目錄存放證書文件。
[root@xuegod63 vsftpd]# mv?vsftpd.pem .sslkey/? #移動(dòng)證書文件到.sslkey目錄下轨淌。
[root@xuegod63 vsftpd]#chmod 400 .sslkey/vsftpd.pem#賦予證書文件400權(quán)限迂烁。
[root@xuegod63 vsftpd]# vim vsftpd.conf #編輯配置文件,添加配置如圖 4-14 所示盟步。
圖 4-14 添加支持ssl配置
ssl_enable=YES????? ?#啟用SSL支持藏斩。
allow_anon_ssl=NO?
force_local_data_ssl=YES???
force_local_logins_ssl=YES
force_anon_logins_ssl=YES
force_anon_data_ssl=YES
#上面四行force 表示強(qiáng)制匿名用戶使用加密登陸和數(shù)據(jù)傳輸。
ssl_tlsv1=YES??? #指定vsftpd支持TLS v1却盘。
ssl_sslv2=YES ?? #指定vsftpd支持SSL v2狰域。
ssl_sslv3=YES ?? #指定vsftpd支持SSL v3。
require_ssl_reuse=NO??? #不重用SSL會(huì)話,安全配置項(xiàng)?黄橘。
ssl_ciphers=HIGH????? #允許用于加密 SSL 連接的 SSL 算法兆览。這可以極大地限制那些嘗試發(fā)現(xiàn)使用存在缺陷的特定算法的攻擊者。
rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem?
rsa_private_key_file=/etc/vsftpd/.sslkey/vsftpd.pem
#定義 SSL 證書和密鑰文件的位置塞关。
注意:上面的配置項(xiàng)不要添加到vsftpd.conf?文件最后也不要加注釋抬探,否則啟動(dòng)報(bào)錯(cuò)。而且配置后不能有多余的空格帆赢。
修改完配置文件后小压,重啟服務(wù):
[root@xuegod63 vsftpd]# systemctl restart vsftpd
圖 4-15 配置FileZilla客戶端驗(yàn)證
提示證書認(rèn)證,點(diǎn)擊“在以后的會(huì)話中始終信任該證書”---》點(diǎn)擊“確定”如圖 4-16 所示椰于。
圖 4-16 未知證書
連接成功怠益,可以使用TLS加密傳輸了,如圖 4-17 所示瘾婿。
如圖 4-17 使用TLS加密傳輸
4.5??NFS概述-配置NFS服務(wù)器并實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)掛載
NFS蜻牢,是Network File System的簡(jiǎn)寫,即網(wǎng)絡(luò)文件系統(tǒng)憋他。網(wǎng)絡(luò)文件系統(tǒng)是FreeBSD支持的文件系統(tǒng)中的一種,也被稱為NFS.NFS允許一個(gè)系統(tǒng)在網(wǎng)絡(luò)上與他人共享目錄和文件髓削。通過(guò)使用NFS竹挡,用戶和程序可以像訪問(wèn)本地文件一樣訪問(wèn)遠(yuǎn)端系統(tǒng)上的文件,如圖 4-18 所示立膛。
圖 4-18 NFS網(wǎng)絡(luò)文件系統(tǒng)拓?fù)鋱D
NFS的模式: C/S 模式
NFS監(jiān)聽(tīng)的端口:?2049
CentOS7是以NFSv4作為默認(rèn)版本揪罕,NFSv4使用TCP協(xié)議(端口號(hào)是2049)和NFS服務(wù)器建立連接。
NFS是通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)傳輸?shù)谋Ρ茫瑐鬏敂?shù)據(jù)的端口為2049好啰。但是由于文件系統(tǒng)非常復(fù)雜,因此NFS還有其他程序去啟動(dòng)額外的端口儿奶。NFS默認(rèn)使用傳輸?shù)亩丝谑请S機(jī)選擇的小于1024的端口框往。將端口告知客戶端是需要依賴于RPC(remote procedure call,RPC)協(xié)議闯捎。
當(dāng)NFS服務(wù)啟動(dòng)時(shí)椰弊,會(huì)隨機(jī)選取數(shù)個(gè)端口许溅,并向RPC注冊(cè),因此RPC就可以知道每個(gè)端口對(duì)應(yīng)的NFS功能秉版。
RPC最主要的功能就是指定每個(gè)NFS功能所對(duì)應(yīng)的端口號(hào)贤重,并告知客戶端。以便客戶端連接至正確的端口號(hào)清焕。
[root@xuegod63 ~]# vim /etc/services#查看services文件并蝗,如圖 4-19 所示。
圖 4-19 NFS監(jiān)聽(tīng)端口號(hào)
4.5.2 ?安裝NFS:
[root@xuegod63 ~]# yum -y install rpcbind?nfs-utils? #使用yum安裝NFS秸妥。
1. 配置文件位置:
[root@xuegod63 ~]# ls /etc/exports? #NFS的共享主目錄滚停。
/etc/exports
2. 啟動(dòng)NFS服務(wù)
[root@xuegod63 ~]# netstat -antpu | grep 2049? #先查看2049端口是否開(kāi)放。
[root@xuegod63 ~]# systemctl start rpcbind? #啟動(dòng)rpcbind?筛峭。
[root@xuegod63 ~]# systemctl start nfs-server.service? #啟動(dòng)NFS铐刘。
#在啟動(dòng)NFS之前要先啟動(dòng)RPC,否則NFS就無(wú)法向RPC進(jìn)行注冊(cè)影晓。另外如果RPC重新啟動(dòng)镰吵,原來(lái)的注冊(cè)數(shù)據(jù)就會(huì)消失。所以挂签,在重啟RPC之后疤祭,它所管理的服務(wù)都要重啟以重新向RPC注冊(cè)。
[root@xuegod63 ~]# netstat -antpu | grep 2049? ? #再次查看端口監(jiān)聽(tīng)狀態(tài)
tcp ???????0 ?????0 0.0.0.0:2049 ??????????0.0.0.0:* ????????LISTEN ????-
tcp ???????0 ?????0 :::2049 ???????????????:::* ?????????????LISTEN ????+
[root@xuegod63 ~]# systemctl enable nfs-server.service? #設(shè)置NFS開(kāi)機(jī)自動(dòng)啟動(dòng)饵婆。
3. 服務(wù)的使用方法
showmount?-e NFS服務(wù)器IP
例:
[root@xuegod64 ~]# showmount -e 192.168.1.63
Export list for 192.168.1.63:
4. 客戶端嘗試掛載:
[root@xuegod64 ~]# mount 192.168.1.63:/tmp?/opt
mount.nfs: access denied by server while mounting 192.168.1.202:/tmp
因?yàn)檫€沒(méi)有共享
5. 修改配置文件勺馆,舉例:
[root@xuegod63 ~]# vim /etc/exports
/media ?*(rw)
注意:
/media 表示共享的目錄。
* 表示對(duì)所有網(wǎng)段開(kāi)放權(quán)限侨核,也可以設(shè)置指定特定的網(wǎng)段草穆。
(rw) 表示訪問(wèn)權(quán)限。
NFS支持動(dòng)態(tài)裝載配置文件:
[root@xuegod63 ~]# exportfs -rv???? #重新讀取配置文件不中斷服務(wù)搓译。
客戶端查看:
[root@xuegod64 ~]# showmount -e 192.168.1.63
Export list for 192.168.1.63:
/media *
6. 客戶端掛載NFS服務(wù)的共享設(shè)備:
[root@xuegod64 ~]# mount -t nfs 192.168.1.63:/media/ /opt/
[root@xuegod64 ~]# df -h
Filesystem ???????????Size ?Used Avail Use% Mounted on
/dev/sda2 ????????????9.7G ?4.0G ?5.2G ?44% /
tmpfs ????????????????996M ??80K ?996M ??1% /dev/shm
/dev/sda1 ????????????485M ??39M ?421M ??9% /boot
/dev/sr0 ?????????????3.7G ?3.7G ????0 100% /mnt
192.168.0.63:/media/ ?9.7G ?4.0G ?5.3G ?43% /opt
7. 實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)掛載NFS服務(wù)共享設(shè)備:
[root@xuegod64 ~]# vim /etc/fstab? #編輯/etc/fstab文件,在文件最后添加自動(dòng)掛載的信息如圖 4-20 所示悲柱。
圖 4-20 開(kāi)機(jī)自動(dòng)掛載
可以重啟驗(yàn)證
8. 驗(yàn)證寫入權(quán)限:
[root@xuegod64 ~]# touch /opt/a.txt? #在NFS共享設(shè)備上創(chuàng)建文件。
touch: 無(wú)法創(chuàng)建"/opt/a.txt": 權(quán)限不夠
9. 解決方法:
設(shè)置訪問(wèn)權(quán)限一般包含2部分
服務(wù)本身權(quán)限
目錄訪問(wèn)權(quán)限
nfs默認(rèn)使用nfsnobody用戶
[root@xuegod63 ~]# grep nfs /etc/passwd
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
10. 修改權(quán)限
[root@xuegod63 ~]# chmod 777 -R /media/ ??不建議
或
[root@xuegod63 ~]# chown nfsnobody.nfsnobody -R /media/
11. 再次驗(yàn)證寫入權(quán)限:
[root@xuegod64 ~]# touch /opt/a.txt
[root@xuegod64 ~]# ll !$
ll /opt/a.txt
-rw-r--r-- 1 nfsnobody nfsnobody 0 5月 ?24 2016 /opt/a.txt
擴(kuò)展:
以下是一些NFS共享的常用參數(shù):?
? ro??????????????????? #只讀訪問(wèn)些己。
? rw?????????????????? #讀寫訪問(wèn)豌鸡。
sync????????????????#資料同步寫入到內(nèi)存與硬盤當(dāng)中。
? async??????????????#資料會(huì)先暫存于內(nèi)存當(dāng)中段标,而非直接寫入硬盤涯冠。
?secure???????????? #NFS通過(guò)1024以下的安全TCP/IP端口發(fā)送。
? insecure????????? #NFS通過(guò)1024以上的端口發(fā)送逼庞。
? wdelay??????????? #如果多個(gè)用戶要寫入NFS目錄蛇更,則歸組寫入(默認(rèn))。
? no_wdelay????? #如果多個(gè)用戶要寫入NFS目錄,則立即寫入械荷,當(dāng)使用async時(shí)共耍,無(wú)需此設(shè)置。?
? hide??????????????? #在NFS共享目錄中不共享其子目錄吨瞎。
? no_hide?????????? #共享NFS目錄的子目錄痹兜。
? subtree_check?? #如果共享/usr/bin之類的子目錄時(shí),強(qiáng)制NFS檢查父目錄的權(quán)限(默認(rèn))颤诀。?
? no_subtree_check?? #和上面相對(duì)字旭,不檢查父目錄權(quán)限。
? all_squash?????????????? #共享文件的UID和GID映射匿名用戶anonymous崖叫,適合公用目錄遗淳。?
? no_all_squash???????? ?#保留共享文件的UID和GID(默認(rèn))。
? root_squash???????????? #root用戶的所有請(qǐng)求映射成如anonymous用戶一樣的權(quán)限(默認(rèn))心傀。
? no_root_squash??????? #root用戶具有根目錄的完全管理訪問(wèn)權(quán)限屈暗。
選項(xiàng)使用方法示例:
[root@xuegod63 ~]# cat /etc/exports
/tmp/a/no_root_squash??????*(rw,no_root_squash)
/tmp/a/sync???????????????192.168.0.0/24(rw,sync)
/tmp/a/ro??????????????????192.168.1.64(ro)
/tmp/a/all_squash?????????????192.168.0.0/24(rw,all_squash,anonuid=500,anongid=500)
/tmp/a/async????????????????????192.168.3.0/255.255.255.0(async)
/tmp/a/rw??????????192.168.3.0/255.255.255.0(rw)????192.168.4.0/255.255.255.0(rw)
/tmp/a/root_squash???*(rw,root_squash)????
更多學(xué)習(xí)資料請(qǐng)移步至公眾號(hào)【學(xué)神來(lái)啦】