[ AWS ] – install vsftp on ubuntu 14.04 / 16.04 / 18.04
6 年 ago jeff No Comments
install vsftp on ubuntu 14.04 / 16.04 / 18.04

1.安裝vsftp
指令：sudo apt-get install vsftpd

2.修改設定檔
指令： vi /etc/vsftpd.conf

在該檔 29 /33 行 拿掉#
write_enable=YES
local_umask=022

在該檔 120 行 拿掉#
chroot_local_user=YES
/* 系統預設這一行被註解掉 使用者可以看到系統資料夾，拿掉註解使用者就只能看到自已家目錄內的資料*/
在該檔文件尾加入
allow_writeable_chroot=YES

pasv_enable=Yes
pasv_address=請輸入aws ec2 的 ip
pasv_min_port=60001
pasv_max_port=60100

最後重啟 ftp
指令： sudo service vsftpd restart

3.新增使用者
指令：sudo useradd -m jeff -s /usr/sbin/nologin
註： -m 表示建立家目錄 -s 後面接shell指令
在/etc/shells檔尾中加入 下面這一行
/usr/sbin/nologin

4.設定使用者權限 及 預設目錄
將該使用者的家目錄設定成 /var/www/html

usermod  --home /var/www/html jeff
1
usermod  --home /var/www/html jeff
此時用jeff登入ftp後會自動連到 /var/www/html
但還是不能新增編輯檔案，因為權限不足

chown -R jeff:1001 /var/www 變更目錄的擁有者及群組

設定使用者密碼：
passwd jeff

5.設定 aws 安全組
自定义 TCP 规则 TCP 20 – 21 0.0.0.0/0
自定义 TCP 规则 TCP 60001 – 60100 0.0.0.0/0

完成以上步驟就可以使用ftp登入上傳檔案了。

2020-07-01 更新
若出現 以下訊息

Status: Connection established, waiting for welcome message…
Status: Insecure server, it does not support FTP over TLS.
Command: USER manna
Response: 331 Please specify the password.
Command: PASS
Response: 530 Login incorrect.

指令： nano /etc/pam.d/vsftpd

將以下兩行註解掉 前方加#
auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

auth required pam_shells.so
再重啟 ftp



Read more https://www.webteach.tw/?p=76






#******************************************

預設adduser 命令建立的使用者可以使用ssh登入、ftp登入,
並且伺服器不需要安裝vsftpd軟體都可以登入ftp


ubuntu 預設是不啟用root使用者的,
不過可以通過public key來登入,
不能ssh登入和ftp登入,所以當伺服器安裝了vsftpd以後依然不能登入ftp,
這就是為什麼在ubuntu系統中root不能登入ftp,但是如果還是希望root能登入ftp和ssh則要修改:


方式二:$ sudo vi /etc/ssh/sshd_config


找到PermitRootLogin 一行,改為PermitRootLogin yes,即允許root使用者以任何認證方式登入


PermitRootLogin這個引數,它的值可以為yes/no/without-password,含義如下


PermitRootLogin yes #允許root使用者以任何認證方式登入(貌似也就兩種認證方式:使用者名稱密碼認證,公鑰認證)
PermitRootLogin without-password #只允許root用public key認證方式登入
PermitRootLogin no #不允許root使用者以任何認證方式登入
修改好後,重啟 openssh server





如果你安裝了vsftpd為ftp軟體的話(預設非root使用者直接可以使用ftp工具登入),
在配置檔案/etc/ftpusers裡,root這個使用者要注意配合vsftpd.conf中的userlist_enable和userlist_deny兩個配置使用,
檢視vsftpd中關於ftpusers和user_list兩個檔案的說明以及vsftpd.conf中的userlist_enable和userlist_deny兩個配置項的解釋 
這篇文章。

2. 使用root登入會發現FTP 會回傳530 Login incorrect. 
因為安全性的關係vsftp預設會將系統某些重要帳號設定為無法使用FTP服務。
只要將/etc/ftpusers 裡的 root 前加上 # ，重啟vsftpd即可。






