以下是Debian FTP(以vsftpd為例)與其他服務的集成方法:
sudo apt install vsftpd apache2 # 安裝vsftpd和Apache
/etc/vsftpd.conf
,設置本地用戶根目錄為Web根目錄(如/var/www/html
):local_root=/var/www/html
chroot_local_user=YES
sudo useradd -m -d /var/www/html ftpuser
sudo passwd ftpuser
sudo chown -R ftpuser:ftpuser /var/www/html
sudo chmod 755 /var/www/html
sudo ufw allow 21/tcp
sudo ufw allow 80/tcp
sudo ufw enable
sudo apt install proftpd-mysql
CREATE DATABASE ftpdb;
CREATE TABLE ftpusers (id INT, username VARCHAR(50), password VARCHAR(50));
INSERT INTO ftpusers VALUES (1, 'ftpuser', 'encrypted_password');
/etc/proftpd/proftpd.conf
,啟用MySQL認證:<IfModule mod_sql.c>
SQLBackend mysql
SQLConnectInfo ftpdb@localhost ftpuser ftppassword
SQLUserDB ftpusers
</IfModule>
sudo systemctl restart proftpd
sudo apt install openssh-server
sudo usermod -s /bin/bash ftpuser # 允許shell訪問(可選)
sudo mkdir /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp
/etc/ssh/sshd_config
,添加:Subsystem sftp internal-sftp
Match Group ftpgroup
ChrootDirectory /home/%u/ftp
ForceCommand internal-sftp
AllowTcpForwarding no
sudo systemctl restart ssh
chroot
限制用戶僅能訪問指定目錄,避免越權操作。ssl_enable=YES
)或使用SFTP加密數據。ufw
或iptables
。/var/log/vsftpd.log
或/var/log/auth.log
,排查異常訪問。具體集成方案可根據實際需求選擇,參考官方文檔進一步優化配置。