Linux搭建FTP站點(diǎn)

vsftpd是Linux下的一款小巧輕快、安全易用的FTP服務(wù)器軟件。本教程以CentOS 7.2 64位操作系統(tǒng)為例,介紹如何在Linux實(shí)例上安裝并配置vsftpd。

前提條件

使用本教程進(jìn)行操作前,請(qǐng)確保您已經(jīng)注冊(cè)了阿里云賬號(hào)。如還未注冊(cè),請(qǐng)先完成賬號(hào)注冊(cè)

背景信息

Linux 實(shí)例搭建FTP站點(diǎn)具體步驟如下:

視頻教程

步驟一: 安裝vsftpd

完成以下操作,安裝vsftpd。

  1. 遠(yuǎn)程連接Linux實(shí)例。具體操作,請(qǐng)參見使用用戶名密碼驗(yàn)證連接Linux實(shí)例。

  2. 運(yùn)行以下命令安裝vsftpd。

    yum install -y vsftpd
    

    出現(xiàn)如下圖所示界面,表示安裝成功。

  3. 依次運(yùn)行以下命令進(jìn)入/etc/vsftpd目錄,并查看該目錄下的文件。

    cd /etc/vsftpd
    
    ls
    

    說明

    • /etc/vsftpd/vsftpd.conf是vsftpd的核心配置文件。
    • /etc/vsftpd/ftpusers是黑名單文件,此文件中的用戶不允許訪問FTP服務(wù)器。
    • /etc/vsftpd/user_list是白名單文件,此文件中的用戶允許訪問FTP服務(wù)器。
  4. 運(yùn)行以下命令設(shè)置FTP服務(wù)開機(jī)自啟動(dòng)。

    systemctl enable vsftpd.service
    
  5. 運(yùn)行以下命令啟動(dòng)FTP服務(wù)。

    systemctl start vsftpd.service
    
  6. 運(yùn)行以下命令查看FTP服務(wù)監(jiān)聽的端口。

    netstat -antup | grep ftp
    

vsftpd安裝后默認(rèn)開啟了匿名訪問FTP服務(wù)器的功能。使用匿名訪問,您無需輸入用戶名密碼即可登錄FTP服務(wù)器,但沒有權(quán)限修改或上傳文件。

步驟二: 配置vsftpd

本節(jié)介紹以下兩種配置vsftpd的方法,并提供了相關(guān)的參數(shù)說明,您可以根據(jù)具體需要進(jìn)行參考。

  • 方法一:配置匿名用戶上傳文件權(quán)限
  • 方法二:配置本地用戶登錄

方法一:配置匿名用戶上傳文件權(quán)限

匿名訪問FTP服務(wù)器是一種不安全的訪問模式,任何人無需密碼驗(yàn)證就可以登錄到FTP服務(wù)器,這種模式一般只用來保存不重要的公開文件,不推薦在生產(chǎn)環(huán)境中使用。配置匿名用戶上傳文件的權(quán)限的操作步驟如下:

  1. 修改配置文件/etc/vsftpd/vsftpd.conf。

    1. 運(yùn)行vim /etc/vsftpd/vsftpd.conf命令打開配置文件。
    2. 按i進(jìn)入編輯模式。
    3. 將寫權(quán)限修改為write_enable=YES。
    4. 將匿名上傳權(quán)限修改為anon_upload_enable=YES。
    5. 按Esc退出編輯模式,然后輸入:wq并回車以保存并關(guān)閉文件。

    修改后的配置文件,如下圖所示。

  2. 依次運(yùn)行以下命令更改/var/ftp/pub目錄的權(quán)限,為FTP用戶添加寫權(quán)限,并重新加載配置文件。

    chmod o+w /var/ftp/pub/
    
    systemctl restart vsftpd.service
    

方法二:配置本地用戶登錄

本地用戶登錄是指用戶使用Linux操作系統(tǒng)的賬號(hào)和密碼登錄FTP服務(wù)器。vsftpd安裝后默認(rèn)只支持匿名訪問FTP服務(wù)器,如果您試圖使用本地用戶登錄服務(wù)器,將會(huì)被vsftpd服務(wù)拒絕。配置本地用戶訪問FTP服務(wù)器的操作步驟如下:

  1. 運(yùn)行以下命令為FTP服務(wù)創(chuàng)建一個(gè)Linux用戶。本示例中,該用戶名為ftptest。

    useradd ftptest
    
  2. 運(yùn)行以下命令修改ftptest用戶的密碼。

    passwd ftptest
    
  3. 運(yùn)行以下命令創(chuàng)建一個(gè)供FTP服務(wù)使用的文件目錄。

    mkdir /var/ftp/test
    
  4. 運(yùn)行以下命令更改/var/ftp/test目錄的擁有者為ftptest。

    chown -R ftptest:ftptest /var/ftp/test
    
  5. 修改vsftpd.conf配置文件。

    1. 運(yùn)行vim /etc/vsftpd/vsftpd.conf命令打開配置文件。

    2. 按i進(jìn)入編輯模式。

    3. 根據(jù)實(shí)際需要,配置FTP服務(wù)器為主動(dòng)模式或被動(dòng)模式。

      • 主動(dòng)模式下,客戶端向服務(wù)端發(fā)送數(shù)據(jù)端口的信息,由服務(wù)端主動(dòng)連接客戶端發(fā)送的數(shù)據(jù)端口。配置FTP為主動(dòng)模式的參數(shù)如下:

        #禁止匿名登錄FTP服務(wù)器
        anonymous_enable=NO
        #允許本地用戶登錄FTP服務(wù)器
        local_enable=YES
        #設(shè)置本地用戶登錄后所在的目錄
        local_root=/var/ftp/test
        #全部用戶被限制在主目錄
        chroot_local_user=YES
        #啟用例外用戶名單
        chroot_list_enable=YES
        #指定例外用戶列表,這些用戶不被鎖定在主目錄
        chroot_list_file=/etc/vsftpd/chroot_list
        
        #配置其他參數(shù)
        allow_writeable_chroot=YES
        local_umask=022
        dirmessage_enable=YES
        xferlog_enable=YES
        connect_from_port_20=YES
        xferlog_std_format=YES
        listen=YES
        pam_service_name=vsftpd
        userlist_enable=YES
        tcp_wrappers=YES
        
      • 被動(dòng)模式下,服務(wù)端開啟并發(fā)送數(shù)據(jù)端口的信息給客戶端,由客戶端連接服務(wù)端開啟的數(shù)據(jù)端口,服務(wù)端被動(dòng)接受連接。在被動(dòng)模式下,您需要配置服務(wù)端可以開啟的數(shù)據(jù)端口范圍。配置FTP為被動(dòng)模式的參數(shù)如下:

        #禁止匿名登錄FTP服務(wù)器
        anonymous_enable=NO
        #允許本地用戶登錄FTP服務(wù)器
        local_enable=YES
        #設(shè)置本地用戶登錄后所在目錄
        local_root=/var/ftp/test
        #全部用戶被限制在主目錄
        chroot_local_user=YES
        #啟用例外用戶名單
        chroot_list_enable=YES
        #指定例外用戶列表,這些用戶不被鎖定在主目錄
        chroot_list_file=/etc/vsftpd/chroot_list
        #開啟被動(dòng)模式
        pasv_enable=YES
        #FTP服務(wù)器公網(wǎng)IP
        pasv_address=<FTP服務(wù)器公網(wǎng)IP>
        #設(shè)置被動(dòng)模式下,建立數(shù)據(jù)傳輸可使用port范圍的最小值
        pasv_min_port=port number
        #設(shè)置被動(dòng)模式下,建立數(shù)據(jù)傳輸可使用port范圍的最大值
        pasv_max_port=port number
        
        #配置其他參數(shù)
        local_umask=022
        dirmessage_enable=YES
        xferlog_enable=YES
        xferlog_std_format=YES
        tcp_wrappers=YES
        allow_writeable_chroot=YES
        listen=YES
        listen_ipv6=NO
        pam_service_name=vsftpd
        userlist_enable=YES
        

        說明 建議您把端口范圍設(shè)在比較高的一段范圍內(nèi),例如50000-50010,有助于提高訪問FTP服務(wù)器的安全性。

    4. 按Esc退出編輯模式,然后輸入:wq并回車以保存并關(guān)閉文件。

  6. 創(chuàng)建chroot_list文件,并在文件中寫入例外用戶名單。

    1. 運(yùn)行vim /etc/vsftpd/chroot_list命令創(chuàng)建chroot_list文件。
    2. 按i進(jìn)入編輯模式。
    3. 輸入例外用戶名單。此名單中的用戶不會(huì)被鎖定在主目錄,可以訪問其他目錄。
    4. 按Esc退出編輯模式,然后輸入:wq并回車以保存并關(guān)閉文件。

    說明 如果沒有例外用戶也必須要有chroot_list文件,內(nèi)容可為空。

  7. 運(yùn)行以下命令重啟vsftpd服務(wù)。

    systemctl restart vsftpd.service
    

配置文件vsftpd.conf參數(shù)說明

運(yùn)行命令cat /etc/vsftpd/vsftpd.conf可以查看配置文件內(nèi)容。

  • 用戶登錄控制參數(shù)說明如下表所示。

    <caption></caption>

    參數(shù) 說明
    anonymous_enable=YES 接受匿名用戶
    no_anon_password=YES 匿名用戶login時(shí)不詢問口令
    anon_root=(none) 匿名用戶主目錄
    local_enable=YES 接受本地用戶
    local_root=(none) 本地用戶主目錄
  • 用戶權(quán)限控制參數(shù)說明如下表所示。

    <caption>
    </caption>

    參數(shù) 說明
    write_enable=YES 可以上傳(全局控制)
    local_umask=022 本地用戶上傳文件的umask
    file_open_mode=0666 上傳文件的權(quán)限配合umask使用
    anon_upload_enable=NO 匿名用戶可以上傳
    anon_mkdir_write_enable=NO 匿名用戶可以建目錄
    anon_other_write_enable=NO 匿名用戶修改刪除
    chown_username=lightwiter 匿名上傳文件所屬用戶名

步驟三: 設(shè)置安全組

搭建好FTP站點(diǎn)后,您需要在實(shí)例安全組的入方向添加放行下列FTP端口的規(guī)則。

  • FTP為主動(dòng)模式時(shí):端口21。
  • FTP為被動(dòng)模式時(shí):端口21,以及配置文件/etc/vsftpd/vsftpd.conf中參數(shù)pasv_min_port和pasv_max_port之間的所有端口。

添加安全組規(guī)則的具體步驟,請(qǐng)參見添加安全組規(guī)則。

步驟四: 客戶端測(cè)試

您可以通過FTP客戶端或?yàn)g覽器訪問FTP服務(wù)器進(jìn)行測(cè)試。本教程以windows自帶的IE(Internet Explorer)瀏覽器為例,分別為您介紹FTP服務(wù)器配置為主動(dòng)模式或被動(dòng)模式時(shí)的訪問步驟。

  • FTP服務(wù)器為主動(dòng)模式
    1. 打開客戶端的IE瀏覽器。
    2. 將瀏覽器設(shè)置為主動(dòng)訪問模式。選擇設(shè)置 >Internet 選項(xiàng) > 高級(jí)。選中啟用 FTP 文件夾視圖,取消勾選使用被動(dòng) FTP。
    3. 在地址欄中輸入ftp://<FTP服務(wù)器IP地址>:FTP端口,例如:ftp://39.10.0.28:21。
    4. 在彈出的對(duì)話框中,輸入用戶名和密碼,即可對(duì)FTP文件進(jìn)行相應(yīng)權(quán)限的操作。
  • FTP服務(wù)器為被動(dòng)模式
    1. 打開客戶端的IE瀏覽器。
    2. 將瀏覽器設(shè)置為被動(dòng)訪問模式。選擇設(shè)置 > Internet 選項(xiàng) > 高級(jí)。選中啟用FTP文件夾視圖和使用被動(dòng)FTP。
    3. 在地址欄中輸入ftp://<FTP服務(wù)器IP地址>:FTP端口,例如:ftp://39.10.0.28:21。
    4. 在彈出的對(duì)話框中,輸入用戶名和密碼,即可對(duì)FTP文件進(jìn)行相應(yīng)權(quán)限的操作。

摘自:https://help.aliyun.com/document_detail/92048.html?spm=a2c4g.11186623.6.1122.36627bfesFpCEY

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容