Chia Yu Pai

Front-End, HTML5, Javascript, CSS3

Posts match “ chroot() ” tag:

AWS EC2 ubuntu server vsftpd setting

| Comments

這兩天因為手邊空間不夠終於開了個 EC2 instance
不過設定個 vsftp 花了不少時間
其中不少眉角是跟其他的 VPS 不太一樣
紀錄一下也方便同樣遇到問題的人解答

首先因為預設的安裝包 ssh 登入需透過 RSA key 做登入的動作
但要啟用 ftp 功能 (SFTP 當然就不用他是 ssh tunnel) 需要有密碼才能進行登入的動作
也不建議使用預設有 root 權限的帳號登入
所以請新增個帳號並給他密碼吧

sudo useradd -m ftpuser; sudo passwd ftpuser

然後請進行安裝 vsftpd 的動作,以 ubuntu 為例

sudo apt-get install vsftpd

接著請到安裝目錄尋找 vsftpd.conf 調整下列項目

anonymous_enable=NO  # 禁止匿名登入

local_enable=YES             # 啟用本機帳號登入

write_enable=YES         # 允許寫入


# 這裡要啟用 Passive 模式

# 設定一個區間的 port 讓 ftp 可以開多個 connection 同時傳檔

pasv_enable=YES
pasv_max_port=35000
pasv_min_port=34000
port_enable=YES

如果要設定 chroot 請參考網路相關文章這裡就先不談
接著我們需要對 iptables 進行設定開啟這些 port 的權限
ftp client 才可以傳送檔案

iptables -I INPUT -p tcp --destination-port 34000:35000 -j ACCEPT

還有個問題如果你有設定 chroot 新版的 vsftpd 規定
chroot 時該帳號的家目錄(ftp 根目錄)必須為不可讀
所以允許登入的 user home 需要做權限調整

sudo chmod -w /home/ftpuser

別忘了需要重開 vsftpd

Ubuntu:

sudo service vsftpd restart

最後因為 AWS 對於 port 需要另外在 console 進行設定
請到 Security Groups 開啟一組設定
並允許 Inbound tcp port
20-21
34000-35000

接著就可以透過 ftp 來連接你的 EC2 囉!