天天看點

基于ECS搭建FTP服務基于ECS搭建FTP服務

基于ECS搭建FTP服務

1. 資源建立

  • 這裡直接使用阿裡雲提供的免費伺服器,單擊【免費開通】
  • 可以看到其為我們提供了使用者名 & 密碼 & IP位址,接下來隻需要登入遠端伺服器即可

2. 遠端連接配接ECS伺服器

  • 這裡我使用 Xshell軟體進行連接配接(Xshell 用起來還是很友善的,大家可以自行下載下傳一下,或者使用别的軟體連接配接也可以)
  • 登入成功後如下:

3. 安裝 vsftpd

vsftpd(very secure FTP daemon):FTP伺服器
  • 匿名通路:任何使用者都可以通路搭建的FTP服務
  • 本地使用者模式:隻支援添加的本地使用者通路搭建的FTP服務
  • 安裝指令

    yun install -y vsftpd

-y 表示安裝過程中提示選擇全部為 “yes”
  • 顯示如下則安裝成功
  • 設定FTP服務開機自啟動
    • 指令:

      systemctl enable vsftpd.service

    • 顯示如下則設定成功:
  • 啟動FTP服務
    • systemctl start vsftpd.service

    • 什麼都沒顯示就是成功
  • 檢視FTP服務監聽的端口
    • netstat -antup | grep ftp

    • 可以看到,FTP服務已啟動,監聽的端口号為21
此時,vsftpd預設已開啟匿名通路功能,無需輸入使用者名和密碼即可登入FTP伺服器,但沒有修改或上傳檔案的權限

4. 配置 vsftpd

  • 上面已經介紹了vsftpd服務有

    匿名使用者模式

    本地使用者模式

    兩種通路方式,下面我們一起來了解一下這兩種方式的配置方式

4.1 匿名使用者模式

  • 修改配置檔案

    vsftpd.conf

    • vim /etc/vsftpd/vsftpd.conf

    vim大家應該都很熟悉了,不會的同學可以到網上找一下教程學習一下基本操作
    • 我們先找到

      anon_upload_enable=YES

      (匿名上傳權限) 這一行,按 i 進行并編輯,取消其注釋,然後按 ESC 鍵退出編輯模式,輸入

      :wq

      儲存并退出
  • 更改 /var/ftp/pub 目錄的權限,為FTP使用者添加寫權限
    • chmod o+w /var/ftp/pub/

    • 運作後如下
  • 重新開機FTP服務
    • systemctl restrat vsftpd.service

  • 配置後以後我們通過浏覽器通路一下,打開浏覽器,輸入網址

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

    ,例如我通路的位址為

    ftp://139.196.209.227:21

    。可以看到,我們無需輸入使用者名和密碼即可通路,通路結果如下:

4.2 本地使用者模式

4.2.1 使用者 & 檔案目錄建立

  • 為FTP服務建立一個Linux使用者
    • adduser ftptest

  • 為剛才建立的使用者設定密碼
    • passwd ftptest

    • 在輸密碼的時候出于安全保護螢幕上是不顯示的
  • 建立一個供FTP服務使用檔案目錄
    • mkdir /var/ftp/test

  • 更改 /var/ftp/test 目錄的擁有者為 ftptest【剛才建立的使用者】
    • chown -R ftptest:ftptest /var/ftp/test

4.2.2 vsftpd.conf 檔案配置【主動模式 or 被動模式】

在配置之前先大概了解一下主動模式和被動模式
  • 主動模式:伺服器的資料端口20主動連接配接用戶端的資料端口【對FTP伺服器端的管理有利,對用戶端的管理不利】
  • 被動模式:用戶端主動跟伺服器的20端口進行連接配接【對FTP用戶端的管理有利,對伺服器端的管理不利】
4.2.2.1 主動模式
  • 指令如下,直接複制過去運作就ok了
    sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登入FTP伺服器 
    sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #監聽IPv4 sockets 
    sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #關閉監聽IPv6 sockets 
    sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部使用者被限制在主目錄 
    sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #啟用例外使用者名單 
    sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外使用者清單檔案,清單中的使用者不被鎖定在主目錄 
    echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf 
    echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #設定本地使用者登入後所在的目錄           
4.2.2.2 被動模式
  • 指令如下
    sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登入FTP伺服器 
    sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #監聽IPv4 sockets 
    sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #關閉監聽IPv6 sockets 
    sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部使用者被限制在主目錄 
    sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #啟用例外使用者名單 
    sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外使用者清單檔案,清單中的使用者不被鎖定在主目錄 
    echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf 
    echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #設定本地使用者登入後所在的目錄 
    
    echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #開啟被動模式 
    echo "pasv_address=<FTP伺服器公網IP位址>" >> /etc/vsftpd/vsftpd.conf #本教程中為ECS伺服器彈性IP 
    echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #設定被動模式下,建立資料傳輸可使用的端口範圍的最小值 
    echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #設定被動模式下,建立資料傳輸可使用的端口範圍的最大值           

4.2.3 例外使用者名單

  • 在 /etc/vsftpd 目錄下建立 chroot_list 檔案,在檔案中寫入例外使用者名單
    • vim /etc/vsftpd/chroot_list

    • 使用vim指令編輯

      chroot_list

      檔案,添加例外使用者名單。此名單中的使用者不會被鎖定在主目錄,可以通路其他目錄。
注意:沒有例外使用者時,也必須建立chroot_list檔案,内容可為空。
  • 最後重新開機FTP服務即可

systemctl restart vsftpd.service

4.2.4 測試

  • 同樣,我們在浏覽器輸入

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

    ,我通路的位址為

    ftp://139.196.209.227:21

    。可以看到,在設定為本地使用者模式的情況下,我們需要輸入使用者名和密碼登入才可進行通路,我們輸入剛才建立的使用者

    ftptest

    和自己設定好的密碼進行通路
  • 登入成功後界面如下,此時我們就可以對FTP檔案進行相應權限的操作

繼續閱讀