1. 安裝 Ubuntu 16.04
2. 創建FTP使用者帳號,工作目錄
1. sudo useradd ftpuser -s /bin/bash # 創建帳號 ftpuser 和 工作目錄 /home/ftpuser
2. sudo passwd ftpuser # 變更登入密碼,假設為123456
3. sudo usermod -g www-data ftpuser # 將使用者 ftpuser 加入群組 www-data
4. sudo mkdir /home/ftpuser # 創建工作目錄 /home/ftpuser
5. sudo chown -R www-data.www-data /home/ftpuser # 變更目錄所有權為 www-data.www-data
6. sudo chmod -R g+w /home/ftpuser # 所有www-data群組成員皆可存取此目錄
3. 安裝 lighttpd 和 vsftp
1. sudo apt-get update
2. sudo apt-get upgrade
3. sudo apt-get install lighttpd
4. sudo apt-get install vsftpd
5. sudo touch /etc/vsftpd.chroot_list
4. 設定 lighttpd
大部分的PC並不會裝設ftp客戶端
讓客戶使用瀏覽器來下載檔案
我捫只要給連結即可
1. sudo vim /etc/lighttpd/lighttpd.conf
2. 找到 server.document-root = "/var/www/html" 這行
3. 改成 server.document-root = "/home/ftpuser"
4. 將下面兩行加入檔案末端
dir-listing.activate = "enable"
dir-listing.encoding = "utf-8"
5. sudo service lighttpd reload
5. 設定 vsftpd
1. sudo vim /etc/vsftpd.conf
2. 找到 " listen=NO "
3. 改成 " listen=YES "
4. 找到 " listen_ipv6=YES "
5. 改成 " listen_ipv6=NO "
6. 找到 " #write_enable=YES "
7. 改成 " write_enable=YES "
8. 找到 " #local_umask=022 "
9. 改成 " local_umask=022 "
10. 找到
#chroot_local_user=YES
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
11. 改成
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
12. 找到 " #utf8_filesystem=YES "
13. 改成 " utf8_filesystem=YES "
14. 檔案最後面加上
pasv_enable=YES
pasv_max_port=60100
pasv_min_port=60000
lock_upload_files=NO
allow_writeable_chroot=YES
15. sudo service vsftpd restart
6. 注意事項
此時就可以使用filezilla等等的的程式上傳
並可以利用瀏覽器下載上傳的檔案
1. ftp 帳號,密碼是步驟2設定的
2. 如果使用AWS和Azure等雲端主機,必須開通外部防火牆21 command port,及 60000 ~ 61000 data port
7. 安全設定
若系統上有其它帳號
就必須建立連線白名單
1. sudo touch /etc/vsftpd.user_list
2. sudo vim /etc/vsftpd.conf
將下面三行,放置檔案末端
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
3. sudo vim /etc/vsftpd.user_list
新增一行 ftpuser
4. sudo service vsftpd restart
5. 如此就只有ftpuser帳號可登入