阿里雲服務器配置FTP
轉載至https://www.jianshu.com/p/c1639416fc73
前言
vsftpd 是 Linux 下的一款小巧輕快、安全易用的 FTP 服務器軟件,是一款在各個 Linux 發行版中最受推崇的 FTP 服務器軟件。本文以 CentOS 7.2 64位操作系統爲例,說明如何在 Linux 實例上安裝 vsftpd。
Linux 實例搭建 FTP 站點具體操作步驟如下:
- 步驟一: 安裝 vsftpd
- 步驟二: 配置 vsftpd
- 步驟三: 設置安全組
- 步驟四: 客戶端測試
步驟一: 安裝 vsftpd
- 輸入 SSH 命令連接:ssh 用戶名@實例的(彈性)公網 IP
- 輸入實例登錄密碼。
- 運行以下命令安裝 vsftpd。
yum install -y vsftpd
出現如圖表示成功
- 運行以下命令打開及查看 etc/vsftpd。
cd /etc/vsftpd
ls
說明
- /etc/vsftpd/vsftpd.conf 是核心配置文件。
- /etc/vsftpd/ftpusers 是黑名單文件,此文件裏的用戶不允許訪問 FTP 服務器。
- /etc/vsftpd/user_list 是白名單文件,是允許訪問 FTP 服務器的用戶列表。
- 運行以下命令設置開機自啓動。
systemctl enable vsftpd.service
- 運行以下命令啓動 FTP 服務。
systemctl start vsftpd.service
- 運行以下命令查看 FTP 服務端口。
netstat -antup | grep ftp
出現如圖啓動成功
步驟二: 配置 vsftpd
注
vsftpd 安裝後默認開啓了匿名 FTP 的功能,使用匿名 FTP,用戶無需輸入用戶名密碼即可登錄 >FTP 服務器,但沒有權限修改或上傳文件。
文本介紹了以下幾個配置 vsftpd 的方法以及相關的參數說明,您可以根據具體需要進行參考。
- 配置匿名用戶上傳文件權限
- 配置root用戶登錄
- 配置本地用戶登錄
- vsftpd.conf 的配置文件參數說明
1. 配置匿名用戶上傳文件權限
修改 vsftpd.conf 的配置文件的選項,可以賦予匿名 FTP 更多的權限。
①. 修改 /etc/vsftpd/vsftpd.conf: 運行 `vim /etc/vsftpd/vsftpd.conf`
②. 按 i 鍵進入編輯模式。
③. 將寫權限修改爲 `write_enable=YES`
④. 將匿名上傳權限修改爲 `anon_upload_enable=YES`
⑤. 按 Esc 鍵退出編輯模式,然後輸入 :wq 保存並退出文件。
運行以下命令更改 /var/ftp/pub 目錄的權限,爲 FTP 用戶添加寫權限,並重新加載配置文件。
chmod o+w /var/ftp/pub/
systemctl restart vsftpd.service
2. 配置root用戶登錄
說明
在centos中,vsftpd默認設置會禁止一些系統用戶登錄FTP,其中就包含root賬戶
開啓的方式如下 :
①. 修改 /etc/vsftpd/user_list 和 /etc/vsftpd/ftpusers 運行:
`vim /etc/vsftpd/user_list` 、 `vim /etc/vsftpd/ftpusers `
②. 按 i 鍵進入編輯模式。
③. 將root賬戶前加上`#`號變爲註釋。(即讓root賬戶從禁止登錄的用戶列表中排除)
④. 按 Esc 鍵退出編輯模式,然後輸入 :wq 保存並退出文件。
3. 配置本地用戶登錄
說明
本地用戶登錄就是指用戶使用 Linux 操作系統中的用戶賬號和密碼登錄 FTP 服務器。
vsftpd 安裝後默只支持匿名 FTP 登錄,用戶如果試圖使用 Linux 操作系統中的賬號登錄服務器,將會被 vsftpd 拒絕,但可以在 vsftpd 裏配置用戶賬號和密碼登錄。具體步驟如下:
①. 運行以下命令創建 ftpuser 用戶:`useradd ftpuser`
②. 運行以下命令修改 ftpuser 用戶密碼:`passwd ftpuser`
創建用戶
③. 修改 /etc/vsftpd/vsftpd.conf:運行 `vim /etc/vsftpd/vsftpd.conf`
④. 按鍵 i 進入編輯模式。
⑤. 將是否允許匿名登錄 FTP 的參數修改爲 `anonymous enable=NO`
⑥. 將是否允許本地用戶登錄 FTP 的參數修改爲 `local_enable=YES`
⑦. 按鍵 Esc 退出編輯模式,然後按鍵 :wq 保存並退出文件。
⑦. 運行以下命令重新加載配置文件: `systemctl restart vsftpd.service`
3. vsftpd.conf 的配置文件參數說明
運行命令 cat /etc/vsftpd/vsftpd.conf 查看配置文件內容。
用戶登錄控制:
參數 | 說明 |
---|---|
anonymous_enable=YES |
接受匿名用戶 |
no_anon_password=YES |
匿名用戶login時不詢問口令 |
anon_root=(none) |
匿名用戶主目錄 |
local_enable=YES |
接受本地用戶 |
local_root=(none) |
本地用戶主目錄 |
pam_service_name=vsftpd |
指出vsftpd進行pam認證時所使用的 pam 配置文件名。 |
userlist_enable=NO |
文件中的用戶是否能夠訪問FTP服務器。若設置爲YES,則user_list文件中的用戶不允許訪問FTP,若設置爲NO,則只有user_list文件中的用戶才能訪問FTP。 |
listen_ipv6=YES |
設定是否支持IPV6。如要同時監聽IPv4和IPv6端口。 |
listen=NO |
是否允許監聽,如果設置爲YES,則vsftpd將以獨立模式運行,由vsftpd自己監聽和處理IPv4端口的連接請求。 |
用戶權限控制:
參數 | 說明 |
---|---|
write_enable=YES |
可以上傳(全局控制) |
local_umask=022 |
本地用戶上傳文件的umask |
file_open_mode=0666 |
上傳文件的權限配合umask使用 |
anon_upload_enable=NO |
匿名用戶可以上傳 |
anon_mkdir_write_enable=NO |
匿名用戶可以建目錄 |
anon_other_write_enable=NO |
匿名用戶修改刪除 |
chown_username=lightwiter |
匿名上傳文件所屬用戶名 |
tcp_wrappers=YES |
在vsftpd中使用tcp_wrappers遠程訪問控制機制 |
connect_from_port_20=YES |
指定FTP使用20端口進行數據傳輸,默認值爲YES。 |
步驟三: 設置安全組
搭建好 FTP 站點後,您需要在實例的安全組的入方向添加一條放行 FTP 端口的規則。
端口:
vsftpd 默認端口爲 21
授權對象:設置爲0.0.0.0/0 則不選擇IP 訪問(IP地址是你訪問服務器時使用的設備IP)
配置
步驟四: 客戶端測試
image.png
image.png
常見問題
- FileZilla 客戶端使用
SFT
P可以正常連接但使用FTP
連服務器卻提示服務器拒絕可能是防火牆未設置:
開放FTP端口:
- 暫時開放 ftp 服務
firewall-cmd --add-service=ftp
- 永久開放 ftp 服務
firewall-cmd --add-service=ftp --permanent
- 永久關閉ftp服務
firewall-cmd --remove-service=ftp --permanent
- 重啓防火牆讓設定生效
systemctl restart firewalld