centos7 搭建 vsftpd

參考:https://wiki.archlinux.org/title/Very_Secure_FTP_Daemon

教程:https://help.aliyun.com/document_detail/92048.html

1、配置 vsftpd

# umask 含義見下方說明
local_umask=077

# 全部用戶被限制在主目錄
chroot_local_user=YES

# 關閉例外用戶名單 ignore all chroot_list, ensure all user can not toggle home dir arbitrarily
chroot_list_enable=NO

#指定例外用戶列表文件,列表中用戶不被鎖定在主目錄。
#chroot_list_file=/etc/vsftpd/chroot_list

# home dir can write/upload files
allow_writeable_chroot=YES

# 開啓被動模式(模式介紹見下方說明,貌似就開啓了,不用設置)
#pasv_enable=YES
#本教程中爲Linux實例的公網IP (也可不設置)
#pasv_address=<FTP服務器公網IP地址>
#設置被動模式下,建立數據傳輸可使用的端口範圍的最小值。
#建議您把端口範圍設置在一段比較高的範圍內,例如50000~50010,有助於提高訪問FTP服務器的安全性。
#pasv_min_port=<port number>
#設置被動模式下,建立數據傳輸可使用的端口範圍的最大值。
#pasv_max_port=<port number>

① FTP(File Transfer Protocol)是一種文件傳輸協議,基於客戶端/服務器架構,支持以下兩種工作模式:

主動模式:客戶端向FTP服務器發送端口信息,由服務器主動連接該端口。

被動模式:FTP服務器開啓併發送端口信息給客戶端,由客戶端連接該端口,服務器被動接受連接。

大多數FTP客戶端都在局域網中,沒有獨立的公網IP地址,且有防火牆阻攔,主動模式下FTP服務器成功連接到客戶端比較困難。因此,如無特殊需求,建議您將FTP服務器配置爲被動模式。

② FTP支持以下三種認證模式:

匿名用戶模式:任何人無需密碼驗證就可以直接登錄到FTP服務器。這種模式最不安全,一般只用來保存不重要的公開文件,不推薦在生產環境中使用。 本地用戶模式:通過Linux系統本地賬號進行驗證的模式,相較於匿名用戶模式更安全。 虛擬用戶模式:FTP服務器的專有用戶。虛擬用戶只能訪問Linux系統爲其提供的FTP服務,而不能訪問Linux系統的其它資源,進一步增強了FTP服務器的安全性。

③ umask 決定目錄和文件被創建時得到的初始權限:

當 umask = 022時 新建文件的權限是 644,新建的目錄 權限是755

當 umask = 077時 新建文件的權限是 600,新建的目錄 權限是700

2、添加 ftp 用戶

adduser ftptest
passwd ftptest
usermod -d /var/ftp/test ftptest
chown -R ftptest:ftptest /var/ftp/test

3、設置 selinux

setsebool -P tftp_home_dir on
setsebool -P allow_ftpd_full_access on

4、開啓防火牆

firewall-cmd --add-service=ftp --permanent

如果設置了被動模式的端口範圍,如

pasv_min_port=2222
pasv_max_port=2225

則還需開放這些端口

# 這裏需要改成用 firewall-cmd 命令去處理,我懶得找命令了
sudo iptables -A INPUT -p tcp --dport 2222:2225 -j ACCEPT

5、客戶端登錄

ncftp  -P 21 -u<username> -p<password> 127.0.0.1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章