安裝vsftpd服務
使用vsftpd RPM安裝包安裝即可,如果可以訪問YUM鏡像源,通過dnf或者yum工具更加方便。
yum -y install vsftpd
啟動vsftpd、查看服務狀態
systemctl enable vsftpd
systemctl start vsftpd
systemctl status vsftpd
備份配置文件并進行配置
cp /etc/vsftpd/vsftpd.conf{,_bak}?
~]# grep -E -v '^#|^$' /etc/vsftpd/vsftpd.conf?
-- 默認放開的配置
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
-- 啟用 chroot,限制本地用戶到其主目錄,不配置allow_writeable_chroot,會報OOP:chroot()失敗錯誤。
chroot_local_user=YES
allow_writeable_chroot=YES
-- 可配可不配,用于放開哪些用戶可以不用chroot
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
-- 配置啟用TLS/SSL顯式加密
# 啟用 SSL 功能
ssl_enable=YES??
force_local_logins_ssl=YES# 指定服務器的 RSA 證書文件
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem# 允許使用 SSL/TLS 協議的最低版本(可選,根據需要設置)
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=YES# 指定允許的加密套件(可選,根據需要設置)
ssl_ciphers=HIGH# 指定顯式加密場景下,動態數據連接監聽端口范圍(默認范圍比較大)。
注:這里只需要配置范圍,不需要開啟被動模式(無需配置:pasv_enable=Yes)
pasv_min_port=30000
pasv_max_port=30999
重啟vsftpd服務
systemctl restart vsftpd
配置防火墻列外
如果不將動態數據連接監聽端口范圍放開訪問會一直卡在獲取目錄列表上(vsftpd 讀取目錄列表失敗)。
firewall-cmd --add-port 21/tcp --permanent
firewall-cmd --add-port 30000-30999/tcp --permanent
firewall-cmd --reload
開啟SELinux的ftpd_full_access布爾值為on
setsebool -P ftpd_full_access on
或者干脆關掉SELinux。
setenforce 0
原因:
-
本地用戶訪問家目錄:當需要讓本地用戶能夠通過FTP訪問其家目錄時,僅在vsftpd配置文件中將
local_enable
設置為YES
可能還不夠。因為SELinux默認會限制這種訪問,導致用戶無法正常登錄或訪問家目錄中的文件。啟用ftpd_full_access
后,SELinux將允許FTP進程訪問用戶的家目錄,從而使用戶能夠正常進行文件傳輸等操作。
使用WinSCP訪問
如果想使用命令行訪問呢?這個就比較復雜了,我會另開一篇進行總結說明。
命令行以TLS/SSL顯式加密方式訪問FTP服務器https://blog.csdn.net/avatar_2009/article/details/148481334