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

Ubuntu 原生 vsftpd 架設虛擬主機 FTP 完整教學:匿名禁用、Chroot 限制、用戶目錄映射至 public_html

編輯:關於伺服器

安裝與預設狀態

sudo apt-get install vsftpd
  • 安裝後自動建立 /home/ftp 匿名根目錄
  • 預設:允許匿名下載、禁止上傳
  • 測試:ftp://伺服器IP 應顯示空白目錄

核心配置 /etc/vsftpd.conf

# 備份原檔
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.old

# 關鍵參數
anonymous_enable=NO          # 禁用匿名
local_enable=YES             # 啟用本地帳號
write_enable=YES             # 允許寫入
ftpd_banner=Welcome to FTP   # 歡迎訊息
max_clients=100              # 最大連線數

# Chroot 限制用戶無法跳出家目錄
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

# 個別用戶根目錄覆寫
user_config_dir=/etc/vsftpd_user_conf

建立 Chroot 名單

sudo nano /etc/vsftpd.chroot_list
# 逐行輸入需限制的用戶帳號
linyupark
webuser1
webuser2

將特定用戶根目錄導向 public_html

# 建立個別配置目錄
sudo mkdir -p /etc/vsftpd_user_conf

# 為用戶建立配置檔
sudo nano /etc/vsftpd_user_conf/linyupark
# 內容:
local_root=/home/linyupark/public_html

重啟生效

sudo systemctl restart vsftpd

驗證清單

  • FTP 客戶端以 linyupark 登入 → 直接進入 public_html,無法 cd .. 返回上層
  • 匿名登入 → 拒絕 (530 Login incorrect)
  • 上傳/刪除/建立目錄 → 正常運作

進階安全建議

  • 啟用 SSL/TLS (FTPS):ssl_enable=YES、指定憑證檔
  • 被動模式埠口範圍:pasv_min_port=40000 pasv_max_port=40100,防火牆對應開放
  • 整合 PAM 或虛擬用戶 (MySQL/PostgreSQL) 脫離系統帳號
  • Fail2ban 監控 vsftpd 日誌自動封鎖暴力破解 IP
Copyright © Windows教程網 All Rights Reserved