FTP--文件共享服務

1.實現共享服務經常使用的有三種
1.)ftp:屬於應用層服務,能夠跨平臺使用(linux< -- >unix< -- >windows)
2.)Nfs:屬於內核模式,不能夠跨平臺(linux< -- >linux)
3.)samba:能夠跨平臺使用(linux< -- >unix< -- >windows)
2.實現存儲設備域服務器鏈接的方式有三種
1.)DAS:鏈接的磁盤。
2.)NAS:經過nfs/cifs協議實現網絡文件共享(文件存儲方式)電子郵件、網頁服務器多媒體流服務、檔案分享等就適用以NAS存儲架構。
3.)SAS:經過網線或光纖實現ISCSI和FCSAN將物理存儲設備鏈接起來使用(塊存儲方式比較底層,須要格式化並掛載當本地磁盤使用)數據庫有關的應用適用於SAN存儲架構。
3.FTP
FTP是File Transfer Portocol文件傳輸協議的縮寫,基於網絡來傳輸文件的應用層協議。
FTP可以經過網絡來傳輸文件,主要是由於工做在應用層因此不會受到平臺的限制。
FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。FTP協議包括兩個組成部分,其一爲FTP服務器,其二爲FTP客戶端。其中FTP服務器用來存儲文件,用戶可使用FTP客戶端經過FTP協議訪問位於FTP服務器上的資源。在開發網站的時候,一般利用FTP協議把網頁或程序傳到Web服務器上。此外,因爲FTP傳輸效率很是高,在網絡上傳輸大的文件時,通常也採用該協議。
默認狀況下FTP協議使用TCP端口中的 20和21這兩個端口,其中20用於傳輸數據,21用於傳輸控制信息。可是,是否使用20做爲傳輸數據的端口與FTP使用的傳輸模式有關,若是採用主動模式,那麼數據傳輸端口就是20;若是採用被動模式,則具體最終使用哪一個端口要服務器端和客戶端協商決定。
4.FTP傳輸模式
FTP--文件共享服務
①FTP的數據傳輸分爲命令數據與文件數據,命令傳輸就是客戶端要執行的命令,服務端收到後返回給客戶端執行結果,如ls命令的執行結果同樣,文件傳輸就是客戶端要傳輸的數據,服務端與客戶端數據鏈接來傳輸。
②FTP的服務端與客戶端創建鏈接大致的三個步驟:創建鏈接、傳輸數據、斷開鏈接。(基於tcp鏈接方式)
③FTP是基於tcp協議來傳輸數據的,使用21號端口來創建認證通道,20號端口來創建數據通道。
④FTP是明文傳輸的。
⑤FTP的用戶可分爲實體用戶(real user),匿名用戶(anonymous user),訪問用戶(gurest user)。
5.FTP的工做模式
因爲如今的網絡架構中,都會有防火牆來阻止端口與高位端口被主動鏈接,特別20端口是被禁止主動鏈接的,由於20端口是FTP的數據端口,因此爲了解決客戶端或者服務器的防火牆問題,FTP就有了主動和被動兩種模式,經過牆內的一端來主動鏈接外端的一方,這樣子就不會被防火牆阻擋了。
①主動模式
通常用於服務端存在防火牆的狀況,客戶端沒法主動鏈接至服務器的20數據端口,須要服務端主動鏈接客戶端的高位數據端口。
兩端在創建tcp通道後,客戶端會發送port請求與服務端的21號端口認證鏈接併發送開放用來創建數據鏈接的高位端口號。
服務端在收到後,會經過20號端口發送ACK響應請求。
服務端會經過20端口與客戶端發送的高位端口創建數據鏈接通道。
②被動模式
通常用於客戶端存在防火牆的狀況,服務端在收到鏈接請求後由於客戶端防火牆而沒法達到客戶端的高位端口,須要客戶端主動鏈接至服務端的數據傳輸端口。
兩端在創建TCP通訊通道鏈接後,客戶端會發送PASV請求給服務端。
服務端在收到PASV請求後,會打開一個高位端口做爲數據傳輸端口來響應給客戶端,等待客戶端鏈接。
客戶端在收到響應後,就會去鏈接服務端響應的高位端口創建數據鏈接通道。
③圖解
FTP--文件共享服務
6.FTP用戶的類型
①匿名用戶
anonymous或ftp
②本地用戶
帳戶名稱、密碼等信息保存在passwd、shadow文件中
③虛擬用戶
使用獨立的帳號/密碼數據文件
舉例:user_list wangwu 123456 /var/pub
7.VSFTPD
vsftpd是基於ftp協議來對網絡數據交換的一種實現,是一個開源的解決方案。
1.)VSftpd軟件包
①官方站點:http://vsftpd.beasts.org/(貌似被封了)
②主程序:/usr/sbin/vsftpd
③服務名:vsftpd
④用戶控制列表文件
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
⑤主配置文件
/etc/vsftpd/vsftpd.conf
2.)vsftpd基礎服務搭建(這裏以NFS服務器作測試)linux

[root@NFS ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@NFS ~]# setenforce 0     #關閉 selinux
setenforce: SELinux is disabled
[root@NFS ~]# /etc/init.d/iptables status    #關閉防火牆
iptables: Firewall is not running.
[root@NFS ~]# yum install vsftpd -y
[root@NFS ~]# rpm -qa vsftpd
vsftpd-2.2.2-24.el6.x86_64
[root@NFS ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd         #pam認證文件
/etc/rc.d/init.d/vsftpd   #服務啓動進程
/etc/vsftpd
/etc/vsftpd/ftpusers      #限制登錄文件
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf     #主配置文件
/etc/vsftpd/vsftpd_conf_migrate.sh
/usr/sbin/vsftpd           #程序文件
......
/var/ftp            #ftp家目錄
/var/ftp/pub
[root@NFS ~]#

配置文件參數說明數據庫

anonymous_enable=YES   #  是否容許匿名用戶鏈接服務器端。
local_enable=YES    #  是否容許系統用戶鏈接服務器端。
write_enable=YES   #  是否容許本地系統用戶上傳文件。
#anon_upload_enable=YES  #  是否容許匿名用戶上傳文件(默認不容許)。
#anon_mkdir_write_enable=YES   #  是否容許匿名用戶建立目錄(默認不容許)。
#anon_other_write_enable=YES   #  匿名用戶其餘的寫權限(刪除文件權限)。
dirmessage_enable=YES  #  進入某個目錄是否顯示歡迎信息。
xferlog_enable=YES  #  是否打開傳輸日誌。
#xferlog_file=/var/log/xferlog   #  傳輸日誌存放路徑(默認沒有啓用)。
xferlog_std_format=YES  #  日誌格式是否爲標準格式的參數。(不必、用於日誌分析)
#chown_uploads=YES  #  用戶上傳文件後是否將其屬主改成其餘用戶。
#chown_username=whoever  #  用戶上傳完成後將屬主改成的用戶名。
#idle_session_timeout=600   #  超時參數,默認會話超過 600 秒斷開用戶鏈接(控制鏈接相關)。
#data_connection_timeout=120     #  數據鏈接相關超時參數。
#ascii_upload_enable=YES  #  是否使用文本格式上傳文件。
#ascii_download_enable=YES  #  是否使用文本格式下載文件。    
提示:除非只傳文本格式數據,不然上面兩個 ascli 參數須要註釋掉,避免二進制數據被轉換爲文本格式。                         
#chroot_local_user=YES   #  是否讓全部用戶禁錮在家目錄(若是想選擇用戶用下面兩個參數)。                         
#chroot_list_enable=YES   #  是否認義用一個文件將特定用戶所在它的家目錄下。                                                     
#chroot_list_file=/etc/vsftpd/chroot_list   #  指定建立用戶列表文件的路徑(全部該文件目錄都將被禁錮在用戶的家目錄中),該文件默認不存在,須要手動建立。
listen=YES   #  表示 vsftpd 是否工做爲一個獨立的守護進程。
pam_service_name=vsftpd  #  定義 pam 配置文件的名字。
userlist_enable=YES   #  是否開啓禁止訪問 FTP 的用戶列表功能。
相關文章
相關標籤/搜索