[Linux][PureFTP] 在Ubuntu上安裝PureFTP – 設定教學

安裝設定

  • 安裝 pure-ftpd

    apt-get install pure-ftpd
    

    安裝後服務即啟用


建立FTP系統使用者與群組 (選擇性)

  • 新增 ftpuser 使用者及 ftpgroup 群組

    groupadd ftpgroup 
    useradd ftpuser -g ftpgroup -s /bin/false -m
    

FTP虛擬帳號指令

虛擬帳號即是FTP登入時使用的帳號,一個虛擬帳號被後對應一個系統使用者。

虛擬帳號須使用資料庫認證才會生效 – PureDB啟用

  • 使用 pure-pw 指令來建立虛擬帳號

    pure-pw useradd ftpuser -u ftpuser -g ftpgroup -d /home/ftpuser
    

    虛擬帳號的使用者與群組可指令定任何使用者,FTP目錄檔案的權限即以使用者為基礎

  • pure-pw 帳號指令

    # 修改帳號設定
    pure-pw usermod [user] [options]
    
    # 刪除帳號
    pure-pw userdel [user]
    
    # 設定帳號的密碼
    pure-pw passwd [user]
    
    顯示帳號的資料
    pure-pw show [user]
    
    # 列出所有的帳號
    pure-pw list
    
  • PureFTP帳號相關資料設定檔

    /etc/pure-ftpd/pureftpd.passwd
    

PureDB啟用 (虛擬帳號生效)

預設沒有使用DB,需在/etc/pure-ftpd/auth下加入:

ln -s ../conf/PureDB
// PureDB -> ../conf/PureDB

pure-pw mkdb  //Refresh PureDB
service pure-ftpd restart   //重新啟用Auth

重啟後會改為使用 /etc/pure-ftpd/pureftpd.pdb 認證


Passive Mode

FTP被動模式Server需要額外ports range來給Client連線,常見錯誤為成功登入後無法取得LIST資料。

  1. 設定PassivePortRange,且確認此range ports防火牆皆開放
  2. 可額外設定ForcePassiveIP為FTP Server外部IP

設定方式可選擇其中一種:

A. Conf files

建立Conf檔案,直接將值寫入檔案內文:

sudo echo "50000 55000" > /etc/pure-ftpd/conf/PassivePortRange
sudo echo "public_ip" > /etc/pure-ftpd/conf/ForcePassiveIP

B. pure-ftpd.conf (失敗於Ubuntu)

設定/etc/pure-ftpd.conf,但經測試失敗:

PassivePortRange  50000 55000
ForcePassiveIP AWS_SERVER_PUBLIC_IP

設定完成後重啟服務service pure-ftpd restart即可。

以AWS, GCP為例,防火牆可以設定一組FTP Server使用: TCP 21 + 50000-55000(依照設定)

Leave a Reply

Your email address will not be published. Required fields are marked *