1. 程式人生 > 實用技巧 >[雲端計算]進階版第一天 - 基於ECS搭建FTP伺服器

[雲端計算]進階版第一天 - 基於ECS搭建FTP伺服器

[雲端計算]進階版第一天 - 基於ECS搭建FTP伺服器

1.遠端連線ECS伺服器

A.開啟系統自帶終端工具

  • Windows:CMD或Powershell

  • MAC:Terminal

    Windows使用者請檢查系統中是否安裝有ssh工具。檢查方法:

    a. 在終端中輸入命令ssh -V。
    
    b. 出現如下結果說明已安裝。
    

    ​ (安裝完成如上圖)

    c. 否則請下載安裝[OpenSSH](https://www.mls-software.com/files/setupssh-8.2p1-1.exe?spm=a2c6h.13858378.0.0.5f2992d3ZcNYYr&file=setupssh-8.2p1-1.exe)。
    

B.連線終端

​ 在終端中輸入連線命令 ssh [username]@[ipaddress]。將其中的 username 和 ipaddress 替換為雲產品資源提供的ECS伺服器的 使用者彈性IP

例如:

ssh [email protected]

2.安裝vsftpd

A.安裝vsftpd

yum install -y vsftpd

B .執行以下命令設定FTP服務開機自啟動。

systemctl enable vsftpd.service

C. 啟動FTP服務。

systemctl start vsftpd.service

D.執行以下命令檢視FTP服務監聽的埠。

netstat -antup | grep ftp

出現如下圖所示介面,表示FTP服務已啟動,監聽的埠號為 21。此時,vsftpd預設已開啟匿名訪問功能,您無需輸入使用者名稱密碼即可登入FTP伺服器,但沒有修改或上傳檔案的許可權。

3.配置vsftpd

vsftpd(very secure FTP daemon)是一款在Linux發行版中最受推崇的FTP伺服器。vsftpd支援匿名訪問和本地使用者模式兩種訪問方式。匿名訪問方式任何使用者都可以訪問搭建的FTP服務;本地使用者模式只支援新增的本地使用者訪問搭建的FTP服務。

說明: 匿名使用者模式和本地使用者模式只可同時配置一種。

匿名使用者模式
  1. 修改配置檔案vsftpd.conf。
vim /etc/vsftpd/vsftpd.conf

i 鍵進入編輯模式,將匿名上傳許可權 anon_upload_enable=YES 的註釋解開。

  1. 按ESC鍵退出編輯模式,輸入:wq 儲存並退出vim。

  2. 更改/var/ftp/pub目錄的許可權,為FTP使用者新增寫許可權。

chmod o+w /var/ftp/pub/
  1. 重啟FTP服務。
systemctl restart vsftpd.service
本地使用者模式
  1. 為FTP服務建立一個Linux使用者。
adduser ftptest

為使用者設定密碼。

passwd ftptest

  1. 建立一個供FTP服務使用的檔案目錄。
mkdir /var/ftp/test
  1. 更改/var/ftp/test目錄的擁有者為ftptest。
chown -R ftptest:ftptest /var/ftp/test
  1. 修改vsftpd.conf配置檔案。

配置FTP為主動模式請執行如下命令:

sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登入FTP伺服器 
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #監聽IPv4 sockets 
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #關閉監聽IPv6 sockets 
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部使用者被限制在主目錄 
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #啟用例外使用者名稱單 
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外使用者列表檔案,列表中的使用者不被鎖定在主目錄 
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf 
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #設定本地使用者登入後所在的目錄

配置FTP為被動模式請執行如下命令:

sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登入FTP伺服器 
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #監聽IPv4 sockets 
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #關閉監聽IPv6 sockets 
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部使用者被限制在主目錄 
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #啟用例外使用者名稱單 
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外使用者列表檔案,列表中的使用者不被鎖定在主目錄 
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf 
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #設定本地使用者登入後所在的目錄 

echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #開啟被動模式 
echo "pasv_address=<FTP伺服器公網IP地址>" >> /etc/vsftpd/vsftpd.conf #本教程中為ECS伺服器彈性IP 
echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #設定被動模式下,建立資料傳輸可使用的埠範圍的最小值 
echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #設定被動模式下,建立資料傳輸可使用的埠範圍的最大值
  1. 在/etc/vsftpd目錄下建立chroot_list檔案,並在檔案中寫入例外使用者名稱單。
#使用vim命令編輯chroot_list檔案,新增例外使用者名稱單。此名單中的使用者不會被鎖定在主目錄,可以訪問其他目錄。
vim /etc/vsftpd/chroot_list

說明: 沒有例外使用者時,也必須建立chroot_list檔案,內容可為空。

  1. 重啟FTP服務。
systemctl restart vsftpd.service

4.客戶端測試

在瀏覽器裡面輸入ftp://<公網IP>:21

輸入賬戶密碼