天天看點

阿裡雲伺服器Linux執行個體搭建FTP站點教程!允許本地使用者登入FTP伺服器設定本地使用者登入後所在的目錄全部使用者被限制在主目錄啟用例外使用者名單指定例外使用者清單,這些使用者不被鎖定在主目錄配置其他參數允許本地使用者登入FTP伺服器設定本地使用者登入後所在目錄全部使用者被限制在主目錄啟用例外使用者名單指定例外使用者清單,這些使用者不被鎖定在主目錄開啟被動模式FTP伺服器公網IP設定被動模式下,建立資料傳輸可使用port範圍的最小值設定被動模式下,建立資料傳輸可使用port範圍的最大值配置其他參數

vsftpd

是 Linux 下的一款小巧輕快、安全易用的 FTP 伺服器軟體。本教程以

CentOS 7.2

64位作業系統為例,說明

如何在 Linux 執行個體上安裝并配置 vsftpd

步驟一: 安裝 vsftpd

  1. 遠端連接配接 并登入到 Linux 執行個體。
  2. 運作指令

    yum install -y vsftpd

    安裝 vsftpd。出現下圖表示安裝成功。 http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705512598_zh-CN.png
  3. 運作以下指令進入

    /etc/vsftpd

    目錄,并檢視該目錄下的檔案。
    cd /etc/vsftpd
    ls           
    http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705612599_zh-CN.png 說明
    • /etc/vsftpd/vsftpd.conf

      是 vsftpd 的核心配置檔案。
    • /etc/vsftpd/ftpusers

      是黑名單檔案,此檔案裡的使用者不允許通路 FTP 伺服器。
    • /etc/vsftpd/user_list

      是白名單檔案,此檔案裡的使用者允許通路 FTP 伺服器。
  4. 運作以下指令設定FTP服務開機自啟動。
    systemctl enable vsftpd.service           
  5. 運作以下指令啟動 FTP 服務。
    systemctl start vsftpd.service           
  6. 運作以下指令檢視 FTP 服務監聽的端口。
    netstat -antup | grep ftp           
    http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705612600_zh-CN.png

步驟二: 配置 vsftpd

vsftpd 安裝後預設開啟了匿名通路 FTP 伺服器的功能。使用匿名通路,您無需輸入使用者名密碼即可登入 FTP 伺服器,但沒有權限修改或上傳檔案。

本教程介紹了以下兩種配置 vsftpd 的方法,并提供了相關的參數說明,您可以根據具體需要進行參考。

  • 配置匿名使用者上傳檔案權限
  • 配置本地使用者登入

匿名通路FTP伺服器是一種不安全的通路模式,任何人無需密碼驗證就可以登入到FTP伺服器,這種模式一般隻用來儲存不重要的公開檔案,不推薦在生産環境中使用。如果您需要配置匿名使用者上傳檔案的權限,可以參考以下步驟配置:

  1. 修改

    /etc/vsftpd/vsftpd.conf

    1. 運作

      vim /etc/vsftpd/vsftpd.conf

    2. 按i 鍵進入編輯模式。
    3. 将寫權限修改為

      write_enable=YES

    4. 将匿名上傳權限修改為

      anon_upload_enable=YES

    5. 按Esc鍵退出編輯模式,然後輸入

      :wq

      儲存并退出檔案。 http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705612602_zh-CN.png
  2. 運作以下指令更改

    /var/ftp/pub

    目錄的權限,為 FTP 使用者添加寫權限,并重新加載配置檔案。
    chmod o+w /var/ftp/pub/
    systemctl restart vsftpd.service           
    http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/21756/155434705612603_zh-CN.png

本地使用者登入是指使用者使用 Linux 作業系統的賬号和密碼登入 FTP 伺服器。

vsftpd 安裝後預設隻支援匿名通路 FTP 伺服器,如果您試圖使用 Linux 作業系統中的賬号登入伺服器,将會被 vsftpd 服務拒絕。您可以參考以下步驟配置 vsftpd 服務,以使用Linux賬号和密碼通路FTP伺服器。

  1. 運作以下指令為FTP服務建立一個Linux使用者。本示例中,該使用者名為ftptest。
    useradd ftptest           
  2. 運作以下指令修改ftptest 使用者的密碼。
    passwd ftptest           
  3. 建立一個供FTP服務使用的檔案目錄。
    mkdir /var/ftp/test           
  4. 更改/var/ftp/test目錄的擁有者為ftptest。
    chown -R ftptest:ftptest /var/ftp/test           
  5. 輸入指令

    vim /etc/vsftpd/vsftpd.conf

    打開vsftpd.conf配置檔案并按鍵i進入編輯模式。
  6. 修改vsftpd.conf配置檔案。

    FTP伺服器可以配置為主動模式或被動模式。

    • 主動模式下,用戶端向服務端發送資料端口的資訊,由服務端主動連接配接用戶端發送的資料端口。配置FTP為主動模式的參數如下:
      #禁止匿名登入FTP伺服器
      anonymous_enable=NO           

      允許本地使用者登入FTP伺服器

      local_enable=YES

      設定本地使用者登入後所在的目錄

      local_root=/var/ftp/test

      全部使用者被限制在主目錄

      chroot_local_user=YES

      啟用例外使用者名單

      chroot_list_enable=YES

      指定例外使用者清單,這些使用者不被鎖定在主目錄

      chroot_list_file=/etc/vsftpd/chroot_list

      配置其他參數

      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

    • 被動模式下,服務端開啟并發送資料端口的資訊給用戶端,由用戶端連接配接服務端開啟的資料端口,服務端被動接受連接配接。在被動模式下,您需要配置服務端可以開啟的資料端口範圍。配置FTP為被動模式的參數如下:
      #禁止匿名登入FTP伺服器
      anonymous_enable=NO           

      允許本地使用者登入FTP伺服器

      local_enable=YES

      設定本地使用者登入後所在目錄

      local_root=/var/ftp/test

      全部使用者被限制在主目錄

      chroot_local_user=YES

      啟用例外使用者名單

      chroot_list_enable=YES

      指定例外使用者清單,這些使用者不被鎖定在主目錄

      chroot_list_file=/etc/vsftpd/chroot_list

      開啟被動模式

      pasv_enable=YES

      FTP伺服器公網IP

      pasv_address=<FTP伺服器公網IP>

      設定被動模式下,建立資料傳輸可使用port範圍的最小值

      pasv_min_port=port number

      設定被動模式下,建立資料傳輸可使用port範圍的最大值

      pasv_max_port=port number

      配置其他參數

      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

      <blockquote> 
       <p><strong>說明</strong> 建議您把端口範圍設在比較高的一段範圍内&#xff0c;比如50000-50010&#xff0c;有助于提高通路FTP伺服器的安全性。</p> 
      </blockquote> </li></ul></li><li>按Esc鍵退出編輯模式&#xff0c;然後按鍵<code>:wq</code>儲存并退出檔案。</li><li>運作<code>vim /etc/vsftpd/chroot_list</code>指令建立chroot_list檔案&#xff0c;并寫入不受隻可以通路其主目錄限制的例外使用者名單。            
      說明 如果沒有例外使用者也必須要有 chroot_list檔案,内容可為空。
    • 按鍵Esc退出編輯模式,然後按鍵

      :wq

    • 運作以下指令重新開機vsftpd服務。
      systemctl restart vsftpd.service           
vsftpd.conf 的配置檔案參數說明

cat /etc/vsftpd/vsftpd.conf

檢視配置檔案内容。

使用者登入控制:

參數
anonymous_enable=YES 接受匿名使用者
no_anon_password=YES 匿名使用者login時不詢問密碼
anon_root=(none) 匿名使用者主目錄
local_enable=YES 接受本地使用者
local_root=(none) 本地使用者主目錄

使用者權限控制:

write_enable=YES 可以上傳(全局控制)
local_umask=022 本地使用者上傳檔案的umask
file_open_mode=0666 上傳檔案的權限配合umask使用
anon_upload_enable=NO 匿名使用者可以上傳
anon_mkdir_write_enable=NO 匿名使用者可以建目錄
anon_other_write_enable=NO 匿名使用者修改删除
chown_username=lightwiter 匿名上傳檔案所屬使用者名

步驟三: 設定安全組

搭建好 FTP 站點後,您需要在執行個體安全組的入方向添加放行下列 FTP 端口的規則。

  • FTP 為主動模式時:端口21。
  • FTP 為被動模式時:端口21,以及配置檔案/etc/vsftpd/vsftpd.conf中參數pasv_min_port和pasv_max_port之間的所有端口。

添加安全組規則的具體步驟,請參見

添加安全組規則

步驟四: 用戶端測試

您可以通過 FTP 用戶端或浏覽器通路 FTP 伺服器進行測試。本教程以windows自帶的IE(Internet Explorer)浏覽器為例,分别為您介紹 FTP 伺服器配置為主動模式或被動模式時的通路步驟。

FTP伺服器為主動模式
  1. 打開用戶端的 IE 浏覽器。
  2. 将浏覽器設定為主動通路模式。選擇 設定 > Internet 選項 > 進階 。勾選 啟用 FTP 檔案夾視圖,取消勾選 使用被動 FTP。
  3. 在位址欄中輸入

    ftp://<FTP伺服器IP位址>:FTP端口

    ,例如:

    ftp://39.10.0.28:21

  4. 在彈出的對話框中,輸入使用者名和密碼,即可對 FTP 檔案進行相應權限的操作。
FTP伺服器為被動模式
  1. 将浏覽器設定為被動通路模式。選擇 設定 > Internet 選項 > 進階 。勾選 啟用 FTP 檔案夾視圖,勾選 使用被動 FTP。
  2. ftp://<FTP伺服器IP位址>:FTP端口

    ftp://39.10.0.28:21

說明 使用浏覽器通路 FTP 伺服器出錯時,建議您清除浏覽器緩存後再嘗試。 雲伺服器ECS位址:阿裡雲·雲小站

繼續閱讀