Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

Linux VSFTPD 主動/被動模式完整配置指南:端口範圍、防火牆穿透、匿名上傳與虛擬用戶

編輯:關於伺服器

VSFTPD 作為 Linux 經典 FTP 服務,主動/被動模式配置直接決定能否穿透 NAT/防火牆。本文系統梳理核心配置文件結構、兩大模式參數詳解、匿名/本地/虛擬用戶權限模型、啟動模式選擇,提供生產級配置模板。

核心文件與目錄

路徑用途
/usr/sbin/vsftpd主程式
/etc/vsftpd/vsftpd.conf主配置文件
/etc/pam.d/vsftpdPAM 認證配置
/etc/vsftpd/ftpusers禁止登入用戶列表 (root 等)
/etc/vsftpd/user_list允許/禁止登入用戶列表 (受 userlist_enable/deny 控制)
/var/ftp匿名用戶根目錄
/var/ftp/pub匿名上傳目錄

啟動模式選擇

  • Standalone (獨立守護進程): 適用高頻訪問。listen=YES,systemctl start vsftpd。
  • xinetd/inetd 超級守護進程: 適用極低頻訪問。註釋 listen,配置 /etc/xinetd.d/vsftpd。

主動模式配置 (PORT)


# 客戶端發起數據連接,服務器從 20 端口主動連回客戶端高端口
# 需防火牆允許「出站」連接至客戶端隨機高端口 (難以預測,主動模式在 NAT 客戶端常失敗)
pasv_enable=NO
port_enable=YES
connect_from_port_20=YES          # 強制使用 20 端口發起數據連接
# ftp_data_port=20                # 可自定義數據端口 (罕用)

被動模式配置 (PASV) —— 生產環境推薦


pasv_enable=YES
pasv_min_port=40000               # 被動模式數據端口範圍起
pasv_max_port=40100               # 被動模式數據端口範圍止 (建議預留 100+ 端口)
# pasv_address=公網IP             # 後端有 NAT/負載均衡時,指定對外公網 IP
# pasv_addr_resolve=YES           # 支援主機名解析

防火牆必放行: 命令端口 21 + 被動端口範圍 40000-40100 (TCP)。

匿名用戶權限模型


anonymous_enable=YES
anon_world_readable_only=NO       # 允許匿名用戶瀏覽非公開目錄 (視需求)
anon_upload_enable=YES            # 允許上傳
anon_mkdir_write_enable=YES       # 允許建立目錄
write_enable=YES                  # 全域寫入開關 (必開)
# 匿名用戶根目錄權限:chown ftp:ftp /var/ftp/pub; chmod 777 /var/ftp/pub

本地用戶 Chroot 限制 (安全基線)


chroot_local_user=YES             # 所有本地用戶限制在家目錄
# 或精細控制
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list  # 列表內用戶被 chroot (與上互斥)
# 家目錄權限:chown user:user /home/user; chmod 755 /home/user (不可寫)
# 寫入子目錄:mkdir /home/user/upload; chown user:user /home/user/upload; chmod 775

連接與頻寬限制


max_clients=200                   # 總並發連接數
max_per_ip=10                     # 單 IP 並發
anon_max_rate=1024000             # 匿名限速 1000 KB/s
local_max_rate=512000             # 本地用戶限速 500 KB/s
# 用戶級差異限速
user_config_dir=/etc/vsftpd/user_conf
# 文件 /etc/vsftpd/user_conf/username 內容:local_max_rate=2048000

虛擬站點 (多 IP/多域名隔離)


# 建立第二配置
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
# 修改 vsftpd2.conf: listen_address=第二IP, 匿名/本地根目錄分離
# 建立系統用戶: useradd -d /var/ftp2 -M ftp2
# xinetd 模式下啟動: 在 /etc/xinetd.d/ 建立 vsftpd2 指向 vsftpd2.conf
# systemctl restart xinetd

生產級最小化安全配置模板


# /etc/vsftpd/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES        # 允許 chroot 目錄可寫 (需目錄權限 755 且擁有者為用戶)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40100
max_clients=200
max_per_ip=10
local_max_rate=1024000
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd_xfer.log

掌握主被動模式防火牆穿透邏輯、Chroot 安全模型、虛擬用戶擴展,即可構建合規、高效、可監管的 FTP 服務。

Copyright © Windows教程網 All Rights Reserved