日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

搭建FTP服務器(Linux)

vsftpd(very secure FTP daemon)是Linux操作系統下的一款小巧輕快、安全易用的FTP服務器軟件。本文介紹如何在Linux服務器中安裝、配置vsftpd,并測試連接FTP服務器。

前提條件

已創建Linux輕量應用服務器。具體操作,請參見創建輕量應用服務器

背景信息

FTP(File Transfer Protocol)是一種文件傳輸協議,基于客戶端/服務器架構,支持以下兩種工作模式:

  • 主動模式(PORT):客戶端向FTP服務器發送端口信息,由服務器主動連接該端口。

  • 被動模式(PASV):FTP服務器開啟并發送端口信息給客戶端,由客戶端連接該端口,服務器被動接受連接。

FTP支持以下三種認證模式:

  • 匿名用戶模式:任何人無需密碼驗證就可以直接登錄FTP服務器。該模式不安全,一般只用來傳輸不重要的公開文件,不推薦在生產環境中使用。

  • 本地用戶模式:通過Linux系統本地用戶驗證登錄權限,相較于匿名用戶模式更安全。

  • 虛擬用戶模式:通過虛擬用戶驗證登錄權限,虛擬用戶只能訪問Linux系統為其提供的FTP服務,而不能訪問Linux系統的其他資源。該模式相較于其他兩種模式更加安全,如果您對服務器的數據有較高的安全性要求,建議在相關專業人員的指導下,自行配置該模式。

本文主要介紹配置簡單的匿名用戶模式以及較為安全的本地用戶模式。

步驟一:準備工作

本文將使用FTP客戶端工具FileZilla連接FTP服務器,因此您需要完成以下準備工作:

  1. 在本地主機上,下載并安裝FileZilla。

    具體下載地址,請參見FileZilla下載中心

  2. 設置Linux服務器的用戶密碼。

    具體操作,請參見管理服務器密碼

步驟二:安裝與配置vsftpd

本示例以在CentOS 7為例,不同的操作系統操作略有差異。更多信息,請參見搭建FTP站點

  1. 遠程連接Linux服務器。

    具體操作,請參見遠程連接Linux服務器

  2. 執行以下命令,查看輕量服務器是否已安裝vsftpd。

    部分使用應用鏡像部署的輕量應用服務器已經預安裝了vsftpd,如果再次安裝可能會出現沖突。

    vsftpd -v

    如果回顯信息類似如下所示,表示當前輕量應用服務器已經安裝了vsftpd,您無需再次安裝,您可以參考應用鏡像文檔獲取FTP的用戶名和密碼,然后配置防火墻通過FTP客戶端測試連接FTP服務器

    [admin@iZ2579sxicu**** ~]$ vsftpd -v
    vsftpd: version 3.0.2
  3. 運行以下命令,安裝vsftpd。

    sudo yum install -y vsftpd

    出現如下圖所示信息,表示vsftpd安裝成功。輕量-安裝ftp

  4. 運行以下命令,設置FTP服務開機自啟動。

    sudo systemctl enable vsftpd.service
  5. 運行以下命令,啟動FTP服務。

    sudo systemctl start vsftpd.service
    說明

    如果出現無法啟動FTP,且提示錯誤信息Job for vsftpd.service failed because the control process exited with error code,請排查是否存在21端口被占用問題。

    1. 使用lsof -i:21命令,查看是否存在進程。

    2. 如果存在進程,使用kill -9 <進程號>命令,殺掉進程。

  6. 運行以下命令,查看FTP服務的端口號。

    sudo netstat -antup | grep ftp

    如下圖所示,可查看到FTP服務的端口號,表示服務已正常啟動。輕量-FTP狀態

步驟三:設置FTP服務器的訪問模式

您可以選擇以下任一方式設置FTP服務器,建議您使用更加安全的本地用戶模式。

本地用戶模式(推薦)

  1. 運行以下命令為FTP服務創建一個Linux用戶。

    本示例中,該用戶名為ftptest

    sudo adduser ftptest
  2. 運行以下命令修改ftptest用戶的密碼。

    sudo passwd ftptest

    運行命令后,根據命令行提示完成FTP用戶的密碼修改。

  3. 運行以下命令創建一個供FTP服務使用的文件目錄。

    sudo mkdir /var/ftp/test
  4. 運行以下命令更改/var/ftp/test目錄的擁有者為ftptest

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

    1. 運行以下命令,修改配置文件/etc/vsftpd/vsftpd.conf。

      如果您在安裝vsftpd時,使用的是apt install vsftpd安裝命令,則配置文件路徑為/etc/vsftpd.conf。

      sudo vim /etc/vsftpd/vsftpd.conf
    2. 按i進入編輯模式。

    3. 配置FTP服務器為被動模式。

      具體的配置參數說明如下,除下面提及的參數,其他參數保持默認值即可。

      重要

      復制以下參數,然后粘貼至Linux服務器的配置文件時,請注意參數不要被#號注釋掉。同時,請注意格式問題。例如,添加多余的空格會造成無法重啟服務的結果。

      修改下列參數的值:

      #禁止匿名登錄FTP服務器。
      anonymous_enable=NO
      #允許本地用戶登錄FTP服務器。
      local_enable=YES
      #監聽IPv4 sockets。
      listen=YES

      在行首添加#注釋掉以下參數,關閉監聽IPv6 sockets:

      #listen_ipv6=YES

      在配置文件的末尾添加下列參數,其中pasv_address參數需要替換為輕量應用服務器的公網IP地址:

      #設置本地用戶登錄后所在目錄。
      local_root=/var/ftp/test
      #全部用戶被限制在主目錄。
      chroot_local_user=YES
      #啟用例外用戶名單。
      chroot_list_enable=YES
      #指定例外用戶列表文件,列表中用戶不被鎖定在主目錄。
      chroot_list_file=/etc/vsftpd/chroot_list
      #開啟被動模式。
      pasv_enable=YES
      allow_writeable_chroot=YES
      #本示例中為輕量應用服務器的公網IP地址。
      pasv_address=39.105.xx.xx
      #設置被動模式下,建立數據傳輸可使用的端口范圍的最小值。
      #建議您把端口范圍設置在一段比較高的范圍內,例如50000~50010,有助于提高訪問FTP服務器的安全性。
      pasv_min_port=50000
      #設置被動模式下,建立數據傳輸可使用的端口范圍的最大值。
      pasv_max_port=50010

      更多參數的詳細信息,請參見vsftp配置文件及參數說明

    4. 按Esc退出編輯模式,然后輸入:wq并回車,保存退出文件。

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

    1. 運行以下命令,創建chroot_list文件。

      sudo vim /etc/vsftpd/chroot_list
    2. 按i進入編輯模式。

    3. 輸入例外用戶名單。此名單中的用戶不會被鎖定在主目錄,可以訪問其他目錄。

      重要

      沒有例外用戶時,也必須創建chroot_list文件,內容可為空。

    4. 按Esc退出編輯模式,然后輸入:wq并回車,保存退出文件。

  7. 運行以下命令,關閉防火墻。

    sudo systemctl stop firewalld
  8. 修改配置文件。

    1. 運行以下命令,打開/etc/ssh/sshd_config文件。

      sudo vi /etc/ssh/sshd_config
    2. 在文件尾行將PasswordAuthentication的值改為yesasdas

    3. 修改完成后,按Esc,輸入:wq!,并按Enter,保存修改后的配置文件并退出編輯模式。

  9. 運行以下命令,重啟FTP服務。

    sudo systemctl restart vsftpd.service

匿名訪問模式

  1. 運行以下命令,修改配置文件/etc/vsftpd/vsftpd.conf。

    如果您在安裝vsftpd時,使用的是apt install vsftpd安裝命令,則配置文件路徑為/etc/vsftpd.conf。

    sudo vim /etc/vsftpd/vsftpd.conf
  2. 按i進入編輯模式。

  3. 分別找到匿名模式(anonymous_enable)以及匿名上傳權限(anon_upload_enable),并確認已修改為開啟狀態。

    不同操作系統版本中,默認的配置文件信息可能有所不同,您需要保證修改后的參數配置,如下所示:

    anonymous_enable=YES
    anon_upload_enable=YES
    listen=YES
    listen_ipv6=NO 
  4. 在文件的末尾,新增以下參數。

    重要

    復制以下參數,然后粘貼至Linux服務器的配置文件時,請注意參數不要被#號注釋掉。同時,請注意格式問題。例如,添加多余的空格會造成無法重啟服務的結果。

    #開啟被動模式。
    pasv_enable=YES
    #設置被動模式下,建立數據傳輸可使用的端口范圍的最小值。
    #建議您把端口范圍設置在一段比較高的范圍內,例如50000~50010,有助于提高訪問FTP服務器的安全性。
    pasv_min_port=50000
    #設置被動模式下,建立數據傳輸可使用的端口范圍的最大值。
    pasv_max_port=50010                   
    #輕量應用服務器的公網IP地址                
    pasv_address=39.105.xx.xx    
  5. 按Esc退出編輯模式,然后輸入:wq并回車,保存退出文件。

  6. 運行以下命令,更改/var/ftp/pub目錄的權限,為FTP用戶添加寫權限。

    /var/ftp/pub為FTP服務默認的文件目錄。

    sudo chmod o+w /var/ftp/pub/
  7. 運行以下命令,重啟FTP服務。

    sudo systemctl restart vsftpd.service

步驟四:配置Linux服務器的防火墻

搭建好FTP站點后,在Linux服務器的防火墻中,需要放行下列FTP端口。具體操作,請參見添加防火墻規則

被動模式需開放21端口,以及配置文件/etc/vsftpd/vsftpd.conf中參數pasv_min_portpasv_max_port之間的所有端口。配置詳情如下表所示。

應用類型

協議

端口范圍

FTP

TCP

21

自定義

TCP

pasv_min_port/pasv_max_port。例如:50000/50010

配置完成后,如下圖所示:

image.png

步驟五:通過FTP客戶端測試連接FTP服務器

  1. 打開FileZilla客戶端。

  2. 在頂部菜單欄,選擇文件 > 站點管理器

  3. 站點管理器對話框的左下角,單擊新站點(N)

  4. 輸入新站點的名稱,并完成站點配置。

    說明

    以下界面為3.64.0版本的FileZilla,其他版本的FileZilla界面可能有所不同。

    filezilla具體的配置項說明如下:

    • 新站點名稱:您自定義的站點名稱。例如test-01

    • 協議:FTP-文件傳輸協議。

    • 主機:FTP服務器公網IP地址。本文中為Linux實例的公網IP地址,例如121.43.XX.XX

    • 端口:21。

    • 登錄類型:匿名。

      本示例中使用FTP客戶端連接匿名模式的FTP服務器。如果您需要使用FTP用戶密碼連接FTP服務器,則登錄類型需要設置為正常,并需要配置用戶和密碼信息。

  5. 單擊連接

    連接成功后,您可以對文件進行上傳、下載和刪除等操作。FileZilla工具界面如下圖所示。filezilla圖中各區域的信息說明如下表所示。

    序號

    說明

    顯示命令、FTP連接狀態和任務執行結果。

    本地區域,顯示本地主機的目錄信息。

    遠程區域,顯示FTP服務器的目錄信息。匿名模式下,默認目錄為/pub

    記錄區域,可查看FTP任務的隊列信息和日志信息。

vsftp配置文件及參數說明

/etc/vsftpd目錄下文件說明如下:

  • /etc/vsftpd/vsftpd.conf是vsftpd的核心配置文件。

  • /etc/vsftpd/ftpusers是黑名單文件,此文件中的用戶不允許訪問FTP服務器。

  • /etc/vsftpd/user_list是白名單文件,此文件中的用戶允許訪問FTP服務器。

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

    本地用戶上傳的文件權限

    file_open_mode=0666

    上傳文件的權限配合umask使用

    anon_upload_enable=NO

    匿名用戶可以上傳文件

    anon_mkdir_write_enable=NO

    匿名用戶可以建目錄

    anon_other_write_enable=NO

    匿名用戶修改刪除

    chown_username=lightwiter

    匿名上傳文件所屬用戶名