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

Linux 下使用 vsftpd 搭建高安全 FTP 伺服器完整教程

編輯:關於伺服器

vsftpd 核心優勢

vsftpd(Very Secure FTP Daemon)以安全性著稱,運行於 Linux、BSD、Solaris、HP-UX 等類 Unix 系統,完全免費開源。支援高安全需求、頻寬限制、良好擴展性、虛擬用戶、IPv6、高傳輸速率等眾多其他 FTP 伺服器不具備的特性。

安裝前準備(以 RedHat Linux 9.0 為例)

系統帳號與目錄檢查

# 檢查/建立 nobody 用戶
useradd nobody

# 檢查/建立空目錄
mkdir -p /usr/share/empty

# 匿名訪問需建立 ftp 用戶與目錄
mkdir /var/ftp
chown root.root /var/ftp
chmod 755 /var/ftp

安全考量:/var/ftp 不屬於 ftp 用戶,無寫入權限,防止匿名上傳惡意文件。

源碼編譯安裝 vsftpd 2.0.3

# 下載源碼
wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.0.3.tar.gz

# 解壓編譯安裝
tar xzvf vsftpd-2.0.3.tar.gz
cd vsftpd-2.0.3
make
make install

安裝後配置文件部署

# 主配置文件
cp vsftpd.conf /etc/

# PAM 認證文件(關鍵:源碼安裝缺失導致本地用戶無法登入)
cp RedHat/vsftpd.pam /etc/pam.d/ftp

關鍵說明:vsftpd 採用 PAM 認證,源碼安裝未自動部署 PAM 文件,導致匿名可登入但本地用戶失效,必須手動複製。

核心配置參數詳解(/etc/vsftpd.conf)

1. 禁止匿名訪問

anonymous_enable=NO

2. 啟用本地用戶與上傳權限

local_enable=YES
write_enable=YES
# 需配合 PAM 文件 /etc/pam.d/ftp 生效

3. 限制用戶於家目錄(chroot)

chroot_local_user=YES

4. 用戶訪問控制列表

userlist_enable=YES
userlist_deny=YES          # YES=列表用戶禁止登入,NO=僅允許列表用戶
userlist_file=/etc/vsftpd.user_list

建立 /etc/vsftpd.user_list,每行一個用戶名。

5. 禁止 FTP 修改檔案權限

chmod_enable=NO

6. 設定上傳檔案預設權限

local_umask=022
# 檔案 644、目錄 755,解決網頁權限不足問題(預設 077 導致 Permission denied)

7. 建立純 FTP 虛擬用戶(無系統登入權限)

useradd -g ftp -s /sbin/nologin ftpuser
passwd ftpuser

8. 連接數限制防濫用

max_clients=100      # 最大並發連接數
max_per_ip=3         # 單 IP 最大連接數

以上配置滿足基礎 FTP 伺服器需求,vsftpd 提供豐富進階選項可按業務深度調優。

Copyright © Windows教程網 All Rights Reserved