11.1 文件傳輸協(xié)議

2023-05-12 11:06 更新

一般來講,人們將計算機(jī)聯(lián)網(wǎng)的首要目的就是獲取資料,而文件傳輸是一種非常重要的獲取資料的方式。今天的互聯(lián)網(wǎng)是由幾千萬臺個人計算機(jī)、工作站、服務(wù)器、小型機(jī)、大型機(jī)、巨型機(jī)等具有不同型號、不同架構(gòu)的物理設(shè)備共同組成的,而且即便是個人計算機(jī),也可能會裝有Windows、Linux、UNIX、Mac等不同的操作系統(tǒng)。為了能夠在如此復(fù)雜多樣的設(shè)備之間解決問題解決文件傳輸問題,文件傳輸協(xié)議(FTP)應(yīng)運(yùn)而生。

FTP是一種在互聯(lián)網(wǎng)中進(jìn)行文件傳輸?shù)膮f(xié)議,基于客戶端/服務(wù)器模式,默認(rèn)使用20、21號端口,其中端口20(數(shù)據(jù)端口)用于進(jìn)行數(shù)據(jù)傳輸,端口21(命令端口)用于接受客戶端發(fā)出的相關(guān)FTP命令與參數(shù)。FTP服務(wù)器普遍部署于內(nèi)網(wǎng)中,具有容易搭建、方便管理的特點。而且有些FTP客戶端工具還可以支持文件的多點下載以及斷點續(xù)傳技術(shù),因此FTP服務(wù)得到了廣大用戶的青睞。FTP協(xié)議的傳輸拓?fù)淙鐖D11-1所示。

圖11-1 FTP協(xié)議的傳輸拓?fù)?/p>

FTP服務(wù)器是按照FTP協(xié)議在互聯(lián)網(wǎng)上提供文件存儲和訪問服務(wù)的主機(jī),F(xiàn)TP客戶端則是向服務(wù)器發(fā)送連接請求,以建立數(shù)據(jù)傳輸鏈路的主機(jī)。FTP協(xié)議有下面兩種工作模式。

主動模式:FTP服務(wù)器主動向客戶端發(fā)起連接請求。

被動模式:FTP服務(wù)器等待客戶端發(fā)起連接請求(FTP的默認(rèn)工作模式)。

第8章在學(xué)習(xí)防火墻服務(wù)配置時曾經(jīng)講過,防火墻一般是用于過濾從外網(wǎng)進(jìn)入內(nèi)網(wǎng)的流量,因此有些時候需要將FTP的工作模式設(shè)置為主動模式,才可以傳輸數(shù)據(jù)。

vsftpd(very secure ftp daemon,非常安全的FTP守護(hù)進(jìn)程)是一款運(yùn)行在Linux操作系統(tǒng)上的FTP服務(wù)程序,不僅完全開源而且免費,此外,還具有很高的安全性、傳輸速度,以及支持虛擬用戶驗證等其他FTP服務(wù)程序不具備的特點。

在配置妥當(dāng)Yum軟件倉庫之后,就可以安裝vsftpd服務(wù)程序了。

    [root@linuxprobe ~]# yum install vsftpd
    Loaded plugins: langpacks, product-id, subscription-manager
    ………………省略部分輸出信息………………
    ================================================================================
     Package Arch Version Repository Size
    ================================================================================
    Installing:
     vsftpd x86_64 3.0.2-9.el7 rhel 166 k
    Transaction Summary
    ================================================================================
    Install 1 Package
    Total download size: 166 k
    Installed size: 343 k
    Is this ok [y/d/N]: y
    Downloading packages:
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
     Installing : vsftpd-3.0.2-9.el7.x86_64 1/1 
     Verifying : vsftpd-3.0.2-9.el7.x86_64 1/1 
    Installed:
     vsftpd.x86_64 0:3.0.2-9.el7 
    Complete!

iptables防火墻管理工具默認(rèn)禁止了FTP傳輸協(xié)議的端口號,因此在正式配置vsftpd服務(wù)程序之前,為了避免這些默認(rèn)的防火墻策略“搗亂”,還需要清空iptables防火墻的默認(rèn)策略,并把當(dāng)前已經(jīng)被清理的防火墻策略狀態(tài)保存下來:

    [root@linuxprobe ~]# iptables -F
    [root@linuxprobe ~]# service iptables save
    iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

vsftpd服務(wù)程序的主配置文件(/etc/vsftpd/vsftpd.conf)內(nèi)容總長度達(dá)到123行,但其中大多數(shù)參數(shù)在開頭都添加了井號(#),從而成為注釋信息,大家沒有必要在注釋信息上花費太多的時間。我們可以在grep命令后面添加-v參數(shù),過濾并反選出沒有包含井號(#)的參數(shù)行(即過濾掉所有的注釋信息),然后將過濾后的參數(shù)行通過輸出重定向符寫回原始的主配置文件中:

    [root@linuxprobe ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
    [root@linuxprobe ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
    [root@linuxprobe ~]# cat /etc/vsftpd/vsftpd.conf
    anonymous_enable=YES
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    pam_service_name=vsftpd
    userlist_enable=YES
    tcp_wrappers=YES

表11-1中羅列了vsftpd服務(wù)程序主配置文件中常用的參數(shù)以及作用。當(dāng)前大家只需要簡單了解即可,在后續(xù)的實驗中將演示這些參數(shù)的用法,以幫助大家熟悉并掌握。

表11-1 vsftpd服務(wù)程序常用的參數(shù)以及作用

參數(shù) 作用
listen=[YES|NO] 是否以獨立運(yùn)行的方式監(jiān)聽服務(wù)
listen_address=IP地址 設(shè)置要監(jiān)聽的IP地址
listen_port=21 設(shè)置FTP服務(wù)的監(jiān)聽端口
download_enable=[YES|NO] 是否允許下載文件
userlist_enable=[YES|NO] userlist_deny=[YES|NO] 設(shè)置用戶列表為“允許”還是“禁止”操作
max_clients=0 最大客戶端連接數(shù),0為不限制
max_per_ip=0 同一IP地址的最大連接數(shù),0為不限制
anonymous_enable=[YES|NO] 是否允許匿名用戶訪問
anon_upload_enable=[YES|NO] 是否允許匿名用戶上傳文件
anon_umask=022 匿名用戶上傳文件的umask值
anon_root=/var/ftp 匿名用戶的FTP根目錄
anon_mkdir_write_enable=[YES|NO] 是否允許匿名用戶創(chuàng)建目錄
anon_other_write_enable=[YES|NO] 是否開放匿名用戶的其他寫入權(quán)限(包括重命名、刪除等操作權(quán)限)
anon_max_rate=0 匿名用戶的最大傳輸速率(字節(jié)/秒),0為不限制
local_enable=[YES|NO] 是否允許本地用戶登錄FTP
local_umask=022 本地用戶上傳文件的umask值
local_root=/var/ftp 本地用戶的FTP根目錄
chroot_local_user=[YES|NO] 是否將用戶權(quán)限禁錮在FTP目錄,以確保安全
local_max_rate=0 本地用戶最大傳輸速率(字節(jié)/秒),0為不限制
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號