病毒橫行、資料外洩風險高,用戶需加密、大容量、高可靠的異地備份空間。結合 ProFTPD 1.2.4+ 的 MySQL 認證模組,實現帳號管理、配額控制、日誌審計一體化。
CREATE TABLE users (
userid VARCHAR(50) NOT NULL PRIMARY KEY,
password VARCHAR(50),
uid INT(5) DEFAULT 0 NOT NULL,
gid INT(5) DEFAULT 65533 NOT NULL,
homedir VARCHAR(255),
count INT(11) DEFAULT 0,
ftime TIMESTAMP(14),
shell VARCHAR(255) DEFAULT '/bin/bash'
);
CREATE TABLE ftp_log (
id INT(12) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
filename VARCHAR(255),
filesize INT(10) UNSIGNED,
email VARCHAR(20) NOT NULL,
ip VARCHAR(15) NOT NULL,
action VARCHAR(255),
ftime DATETIME
);
proftpd.conf./configure --with-includes=/usr/local/mysql/include \
--with-libraries=/usr/local/mysql/lib/mysql \
--with-modules=mod_sql:mod_sql_mysql:mod_quota
SQLConnectInfo FTPusers@localhost sql_user sql_pass
SQLAuthTypes Plaintext
SQLAuthenticate users
SQLUserTable users
SQLNameField userid
SQLPasswordField password
SQLHomedirField homedir
SQLUidField uid
SQLGidField gid
DefaultQuota 204800000 # 200MB 硬配額
QuotaType hard
TransferLog none
SQLLog RETR,STOR,DELE INSERT INTO ftp_log VALUES (NULL, '%f', %b, '%u', '%h', '%r', NOW())
記錄下載 (RETR)、上傳 (STOR)、刪除 (DELE) 操作,含檔名、大小、用戶、IP、動作、時間。
.quota 檔案(格式:總容量 已用容量),需 root 權限。ftp_log 表,支援多維度篩選,效能遠優於文字日誌。