NFS服務 exportfs命令 FTP服務 使用vsftpd搭建ftp 使用pure-ftpd搭建ftp服務

NFS介紹

•NFS是Network File System的縮寫
• NFS最先由Sun公司開發,分2,3,4三個版本,2和3由Sun起草開發,4.0開始Netapp公司參與並主導開發,最新爲4.1版本
• NFS數據傳輸基於RPC協議,RPC爲Remote Procedure Call的簡寫。
 
應用場景是:
A,B,C三臺機器上須要保證被訪問到的文件是同樣的,A共享數據出來,B和C分別去掛載A共享的數據目錄,從而B和C訪問到的數據和A上的一致
 
 
 
 

NFS服務端安裝配置

準備兩臺虛擬機,一臺做爲服務端,一臺做爲客戶端。shell

服務端IP:192.168.31.137vim

安裝NFS工具:centos

[root@harry-01 ~]# yum install -y nfs-utils rpcbind

配置安全

[root@harry-01 ~]# vim /etc/exports

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

#指定要進行分享的目錄;指定要共享該目錄的機器

[root@harry-01 ~]# mkdir /home/nfstestdir
[root@harry-01 ~]#chmod 777 /home/nfstestdir

啓動NFS服務bash

在yum安裝完成後,系統會自動啓動rpcbind服務,默認監聽的端口時111端口。服務器

[root@harry-01 ~]# systemctl start nfs

#將NFS服務加入開機啓動項:  

[root@harry-01 ~]# systemctl enable nfs

 

客戶端

IP:192.168.31.138網絡

安裝NFS工具:

[root@harry-01 ~]# yum -y install nfs-utils

客戶端掛載

檢查客戶端是否有權限訪問服務端文件:session

[root@harry-01 ~]# showmount -e 192.168.31.138
clnt_create: RPC: Program not registered

報錯:因爲網絡緣由nfs服務被中斷app

解決辦法:service nfs restart 或 /etc/rc.d/init.d/nfs restartssh

[root@harry-01 ~]# showmount -e 192.168.31.138
Export list for 192.168.31.138:
[root@harry-01 ~]#

開始掛載

 

測試

在客戶機掛載目錄建立文件:

[root@harry-01 mnt]# cd 
[root@harry-01 ~]# cd /mnt/
[root@harry-01 mnt]# touch skr.txt 
[root@harry-01 mnt]#

查看服務端共享目錄:

[root@harry-01 ~]# ll /home/nfstestdir/
總用量 0
-rw-r--r--. 1 user1 user1 0 12月 23 22:40 skr.txt
[root@harry-01 ~]#

即,實現了同步共享!

 

NFS配置選項

[root@harry-01 ~]# vim /etc/exports

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

#指定要進行分享的目錄;指定要共享該目錄的機器
•rw 讀寫
• ro 只讀
• sync 同步模式,內存數據實時寫入磁盤
• async 非同步模式
• no_root_squash 客戶端掛載NFS共享目錄後,root用戶不受約束,權限很大
• root_squash 與上面選項相對,客戶端上的root用戶收到約束,被限定成某個普通用戶
• all_squash 客戶端上全部用戶在使用NFS共享目錄時都被限定爲一個普通用戶
• anonuid/anongid 和上面幾個選項搭配使用,定義被限定用戶的 ui
 

exportfs命令

•經常使用選項
• -a 所有掛載或者所有卸載
• -r 從新掛載
• -u 卸載某一個目錄

 -v 顯示共享目錄

經常使用組合: exportfs -arv

服務端更改配置文件後,不重啓服務,直接執行該命令就可使更改後的配置文件生效。

以上操做均在服務端進行!!!

注意: 在重啓nfs服務以前須要先將全部掛載點卸載,不然將發生程序錯誤,嚴重者會拖垮系統。

 

FTP介紹

•FTP是File Transfer Protocol(文件傳輸協議,簡稱文傳協議)的英文簡稱,用於在Internet上控制文件的雙向傳輸。
• FTP的主要做用就是讓用戶鏈接一個遠程計算機(這些計算機上運行着FTP服務器程序),並查看遠程計算機中的文件,而後把文件從遠程計算機複製到本地計算機,或把本地計算機的文件傳送到遠程計算機。
• 小公司用的多,大企業不用FTP,由於不安全
 

使用vsftpd搭建ftp服務

安裝vsftpd工具

[root@harry-01 ~]# yum install -y vsftpd

#建立用戶:
[root@harry-01 ~]# useradd -s /sbin/nologin virftp

 vsftpd可使用系統級別的用戶進行登陸,可是這樣作不安全,因此須要使用vsftpd建立一個虛擬用戶。在此建立一個系統普通用戶的做用是使vsftpd的虛擬用戶來進行映射,而後完成數據的傳輸。

 

編輯虛擬用戶密碼文件

[root@harry-01 ~]# vim /etc/vsftpd/vsftpd_login

testuser1
123123

#更改文件權限:
[root@harry-01 ~]# chmod 600 /etc/vsftpd/vsftpd_login

該文件中內容奇數行爲用戶名,偶數行爲用戶密碼。

文件轉換: 將該密碼文件轉換成計算機能識別的二進制文件

[root@harry-01 ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db

建立虛擬用戶配置文件

建立指定虛擬用戶配置文件:

[root@harry-01 ~]# mkdir /etc/vsftpd/vsftpd_user_conf

[root@harry-01 ~]#cd /etc/vsftpd/vsftpd_user_conf

建立指定虛擬用戶配置文件:

[root@harry-01 vsftpd_user_conf]# vim testuser1

//內容以下:
local_root=/home/virftp/testuser1

#定義虛擬用戶家目錄

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_client=10

#客戶端最大鏈接數量

建立虛擬用戶家目錄

[root@harry-01 vsftpd_user_conf]# mkdir /home/virftp/testuser1

#建立一個文件:
[root@harry-01 testuser1]# touch tea.txt
[root@harry-01 testuser1]# chown -R virftp:virftp /home/virftp

虛擬用戶密碼匹配

在該文件中添加這兩行內容,用於指定用戶密碼文件位置。

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

[root@harry-01 vsftpd_user_conf]# vim /etc/pam.d/vsftpd

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth
auth       sufficient   /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

在centos6中「/lib64/security/pam_userdb.so」該文件區分版本(32位、64位)。!!

編輯vsftpd主配置文件

[root@harry-01 vsftpd_user_conf]# vim /etc/vsftpd/vsftpd.conf 

將#anonymous_enable=YES 改成 anonymous_enable=NO
將#anon_upload_enable=YES 改成 anon_upload_enable=NO 
將#anon_mkdir_write_enable=YES 改成 anon_mkdir_write_enable=NO


#//再增長以下內容:
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

啓動服務:

[root@harry-01 vsftpd_user_conf]# systemctl start vsftpd
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.

出現錯誤的緣由是:因爲centos7中vsftp的配置文件默認將 listen_ipv6=YES 這一行沒有註釋掉,而咱們目前的網絡環境還不支持ipv6,從而致使出現錯誤沒法啓動,因此解決方法是將 listen_ipv6=YES更改成:listen_ipv6=NO,或將這一行註釋掉

同時:在配置文件時,不能有多餘的空格(例如:allow_writeable_chroot=YES後跟了一個空格)就會報錯!!!
 

[root@harry-01 vsftpd_user_conf]# systemctl start vsftpd
[root@harry-01 vsftpd_user_conf]# ps aux | grep vsftpd
root      10685  0.0  0.0  53176   580 ?        Ss   00:03   0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root      10694  0.0  0.0 112724   984 pts/0    R+   00:03   0:00 grep --color=auto vsftpd
[root@harry-01 vsftpd_user_conf]#

 FTP服務監聽21端口;sshd監聽22端口;telnet監聽23端口。

相關文章
相關標籤/搜索