安裝設定
-
安裝 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資料。
- 設定
PassivePortRange
,且確認此range ports防火牆皆開放 - 可額外設定
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(依照設定)