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

vsftpd 虛擬用戶完整配置實戰 (權限、頻寬、目錄隔離)

編輯:Linux 教學

在 CentOS 上部署 vsftpd,使用虛擬用戶 (非系統帳號) 實現多組 FTP 帳號、差異化目錄權限、上傳下載頻寬限制、並發連線控制。附完整安裝、PAM 認證、配置檔、測試驗證步驟。

需求場景

用戶類型目錄權限頻寬
匿名anonymous/var/ftp/soft唯讀下載100 KB/s
devadm虛擬/var/ftp/soft完整管理 (上傳/建目錄/刪除)500 KB/s
sales虛擬/var/market唯讀下載100 KB/s
saleadm虛擬/var/market完整管理500 KB/s

全域限制:最大 150 並發連線,單 IP 最大 5 連線。上傳檔案自動去除非擁有者寫入權限。

實作步驟

1. 安裝套件


yum install vsftpd db4-utils   # db4-utils 提供 db_load

2. 建立虛擬用戶資料庫


cat > /etc/vsftpd/vusers.list <

3. 建立映射系統用戶與目錄


# 匿名/共用目錄
mkdir -p /var/ftp/soft
chown ftp:ftp /var/ftp/soft
chmod 777 /var/ftp/soft   # 允許虛擬用戶寫入

# 虛擬用戶映射目錄
useradd -d /var/market -s /sbin/nologin virtual
chmod 755 /var/market

4. 配置 PAM 認證 (/etc/pam.d/vsftpd.vu)


auth required pam_userdb.so db=/etc/vsftpd/vusers
account required pam_userdb.so db=/etc/vsftpd/vusers

5. 主配置檔 (/etc/vsftpd/vsftpd.conf)


anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_root=/var/ftp/soft
chroot_local_user=YES
anon_umask=022
guest_enable=YES
guest_username=virtual
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir
max_clients=150
max_per_ip=5
anon_max_rate=102400   # 匿名/預設 100KB/s

6. 個別虛擬用戶配置 (/etc/vsftpd/vusers_dir/)


mkdir /etc/vsftpd/vusers_dir

# devadm
cat > /etc/vsftpd/vusers_dir/devadm < /etc/vsftpd/vusers_dir/saleadm <

7. SELinux 設定 (若啟用)


chcon -R -t samba_share_t /var/ftp/soft   # 同類型標籤可用
setsebool -P allow_ftpd_anon_write 1
setsebool -P ftp_home_dir 1

8. 啟動服務


service vsftpd restart
chkconfig vsftpd on

客戶端驗證測試

匿名用戶


ftp 192.168.1.10
# user: ftp, pass: (空)
# 下載測試速度 ~250 KB/s (受限 100KB/s 實測略高)

devadm (讀寫刪 + 500KB/s)


ftp> put install.log   # 上傳成功
ftp> mkdir aaa        # 建目錄成功
ftp> rmdir aaa        # 刪目錄成功
ftp> get test.list    # 下載 ~1.1 MB/s (受限 500KB/s)

sales (唯讀 100KB/s)


ftp> put aa.txt   # 550 Permission denied
ftp> get fangan.file  # 下載成功

saleadm (讀寫刪 + 500KB/s)


ftp> put aa.txt        # 上傳成功
ftp> mkdir saleadm    # 建目錄成功
ftp> delete install.log # 刪檔成功

關鍵配置對照表

參數作用
guest_enable=YES啟用虛擬用戶映射
guest_username=virtual映射至系統用戶 virtual
user_config_dir指定個別用戶配置目錄
anon_max_rate限制傳輸速率 (Bytes/s)
anon_upload_enable允許上傳
anon_mkdir_write_enable允許建目錄
anon_other_write_enable允許刪除/重命名
anon_umask=022上傳檔案預設權限 755 (去除群組/其他寫入)
Copyright © Windows教程網 All Rights Reserved