萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

CentOS 系統下建立與配置 FTP 虛擬用戶完整教學

前言

在 CentOS 環境中,若需提供 FTP 服務且不想建立真實系統帳號,使用 vsftpd 搭配虛擬用戶是常見且安全的做法。本文將詳細記錄從下載原始碼、編譯安裝、建立映射用戶、配置 PAM 驗證到目錄權限設定的完整流程,供管理員參考部署。

一、下載 vsftpd 最新原始碼

wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz

二、安裝前置準備

1. 建立虛擬用戶映射的本地用戶

useradd wwwftp -d /data/www -s /sbin/nologin

此用戶不具備登入 Shell,僅作為虛擬用戶文件操作的身份映射。

2. 建立自定義配置目錄結構

mkdir -p /data/soft/vsftpd/conf
mkdir -p /data/soft/vsftpd/bin
mkdir -p /data/soft/vsftpd/lib
mkdir -p /data/soft/vsftpd/user_conf
mkdir -p /data/soft/vsftpd/empty
mkdir -p /data/soft/vsftpd/logs
mkdir -p /data/www
mkdir -p /data/www/user1
mkdir -p /data/www/user2

3. 設定目錄權限與擁有者

chown -R wwwftp:www /data/www
chmod -R 700 /data/soft/vsftpd/empty/
chown -R wwwftp:wwwftp /data/soft/vsftpd/empty/

4. 複製 PAM 驗證所需庫文件

cp /lib/security/pam_userdb.so /data/soft/vsftpd/lib/

5. 安裝編譯依賴套件

yum -y install gcc db4* pam*

三、解壓、修改原始碼並編譯安裝 vsftpd

tar zxvf vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4

修改 builddefs.h 啟用所需功能

預設原始碼未啟用 TCP Wrappers 與 SSL,需手動調整:

/* 原始預設值 */
#undef VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL

/* 修改為支援 TCP Wrappers 與 SSL(視需求) */
#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#define VSF_BUILD_SSL

編譯並驗證 PAM 支援

make
ldd vsftpd | grep pam

若輸出顯示 libpam.so 相關依賴,即表示編譯成功且已載入 PAM 模組。

四、後續配置重點(摘要)

  • 配置 /etc/vsftpd/vsftpd.conf 啟用虛擬用戶、指定 PAM 服務名稱、設定用戶配置目錄等。
  • 建立虛擬用戶資料庫(使用 db_load 將帳號密碼文本轉為 Berkeley DB 格式)。
  • 編寫 /etc/pam.d/vsftpd.virtual 引用 pam_userdb.so 進行驗證。
  • 為每位虛擬用戶建立專屬配置文件於 /data/soft/vsftpd/user_conf/,限制根目錄、上傳下載權限等。
  • 啟動 vsftpd 服務並設定開機自啟:systemctl enable vsftpd --now。

完成上述步驟後,即可使用 FTP 客戶端以虛擬用戶身份登入,實現隔離、安全的文件傳輸環境。

copyright © 萬盛學電腦網 all rights reserved