云服(fu)務器選擇:
推薦配置:2 核 4G 內存以上,50GB SSD,公網 IP
操作系(xi)統:CentOS 7+/Ubuntu 20.04+
安全組規則(ze)(阿里云 / 騰訊云等):開放 TCP 20、21、30000-31000 端口(被動模式(shi)范圍)
更新系(xi)統:
# CentOS/RHELyum update -y# Ubuntu/Debianapt update && apt upgrade -y
# 安裝vsftpdyum install vsftpd -y# 啟動并設置開機自啟systemctl enable vsftpd --now# 配置防火墻firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=30000-31000/tcp
firewall-cmd --reload
# 安裝vsftpdapt install vsftpd -y# 啟動并設置開機自啟systemctl enable vsftpd --now# 配置UFW防火墻ufw allow 20/tcp
ufw allow 21/tcp
ufw allow 30000:31000/tcp
ufw reload
備份默認配置:
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
編輯主配置文件:
vim /etc/vsftpd/vsftpd.conf
關(guan)鍵配置參數:
# 基礎設置
anonymous_enable=NO # 禁用匿名訪問
local_enable=YES # 啟用本地用戶
write_enable=YES # 啟用寫入權限
local_umask=022 # 文件創建掩碼
# 被動模式配置(關鍵!)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
pasv_address=你的公網IP # 填寫云服務器公網IP
# 安全增強
chroot_local_user=YES # 限制用戶在自家目錄
allow_writeable_chroot=YES # 允許chroot目錄可寫
rsa_cert_file=/etc/ssl/certs/vsftpd.pem # SSL證書路徑(后續配置)
ssl_enable=YES # 啟用SSL
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
重啟服務使配置(zhi)生(sheng)效:
創建專用(yong) FTP 用(yong)戶:
useradd -d /data/ftp/user1 -s /sbin/nologin ftpuser1passwd ftpuser1 # 設置密碼
創建 FTP 根(gen)目錄并(bing)設置權限:
mkdir -p /data/ftp/user1chown -R ftpuser1:ftpuser1 /data/ftp/user1chmod -R 755 /data/ftp
生成自簽名證書:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/ssl/private/vsftpd.key \-out /etc/ssl/certs/vsftpd.crt \-subj "/C=CN/ST=Shanghai/L=Shanghai/O=Company/OU=IT/CN=yourdomain.com"cat /etc/ssl/private/vsftpd.key /etc/ssl/certs/vsftpd.crt > /etc/ssl/certs/vsftpd.pemchmod 600 /etc/ssl/certs/vsftpd.pem
修改(gai) vsftpd 配置啟用 SSL:
# ..已添加以下配置
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/certs/vsftpd.pem
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
使用 FileZilla(Windows/macOS):
使用命令(ling)行(Linux/macOS):
ftp -p 你的公網IP# 登錄后使用ls、cd、put、get等命令操作
限制 IP 訪問:
# 僅允許特定IP訪問(示例:僅允許192.168.1.0/24網段)echo "192.168.1.0/24" > /etc/vsftpd/allowed_ipsvim /etc/pam.d/vsftpd# 添加以下行到文件開頭auth required pam_listfile.so item=ip sense=allow file=/etc/vsftpd/allowed_ips onerr=fail apply=/usr/sbin/vsftpd
啟用日(ri)志審計(ji):
# 在vsftpd.conf中添加
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
設(she)置連接限制:
# 限制同一IP的并發連接數
max_clients=100
max_per_ip=5
# 限制傳輸速率(KB/s)
local_max_rate=5000
查看服務狀態:
systemctl status vsftpd
journalctl -u vsftpd -f
檢查防火(huo)墻:
# CentOSfirewall-cmd --list-all# Ubuntuufw status
被動模式問題:
使用 SFTP 替代 FTP:
若安全性要求極高,建議禁用 FTP,改用 SFTP(基于 SSH 協議):
# 創建SFTP用戶組groupadd sftpusersusermod -aG sftpusers ftpuser1# 配置SSHvim /etc/ssh/sshd_config# 添加/修改以下行Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /data/ftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
systemctl restart sshd
監控與告警(jing):
配置 Prometheus+Grafana 監控 FTP 服務指標,設置連接數、傳輸速率異常告警。
定期備份:
對 FTP 數據目錄配置每日增量備份至對象存儲(如 AWS S3、阿里云 OSS)。
通(tong)過以(yi)上步驟,你可(ke)以(yi)在云服務器上搭建一個安全、的(de) FTP 服務,支持多用戶隔離和數據加密傳(chuan)輸(shu)(shu)。建議優(you)先使(shi)用 FTPS 或(huo) SFTP 協議,避(bi)免(mian)明(ming)文傳(chuan)輸(shu)(shu)敏感信息。
(聲明:本文來源(yuan)于(yu)網絡(luo),僅供參考閱讀,涉及侵(qin)權請聯系我們(men)刪除、不(bu)代表任何立場以及觀(guan)點。)