Ubuntu FTP Server 个性化功能与插件定制指南
一、方案总览与选型
二、vsftpd 的个性化配置要点
sudo apt-get install vsftpdlisten=YES、anonymous_enable=NO、local_enable=YES、write_enable=YESchroot_local_user=YES、allow_writeable_chroot=YESftpd_banner=Welcome to My Custom FTPpasv_enable=YES、pasv_min_port=30000、pasv_max_port=30999userlist_enable=YES、userlist_deny=NO、userlist_file=/etc/vsftpd.user_listsudo systemctl restart vsftpdsudo ufw allow 21/tcp、sudo ufw allow 990/tcp(FTPS)、sudo ufw allow 30000:30999/tcp(被动端口范围)。三、ProFTPD 的个性化配置要点
sudo apt-get install proftpdServerIdent on "FTP Server ready."DefaultAddress *、Port 21RequireValidShell off四、Pure-FTPd 的个性化配置要点
sudo apt-get install pure-ftpdecho "yes" > /etc/pure-ftpd/conf/ChrootEveryoneecho "yes" > /etc/pure-ftpd/conf/CreateHomeDirecho "yes" > /etc/pure-ftpd/conf/CallUploadScriptSTANDALONE_OR_INETD=standaloneUPLOADSCRIPT=/usr/local/bin/ftp-upload-hook.shsudo systemctl start pure-uploadscript && sudo systemctl enable pure-uploadscript#!/usr/bin/env bashlogger -p local0.info "FTP upload: user=$1 file=$2 size=$3"五、进阶扩展与自研方案
pip install pyftpdlibfrom pyftpdlib.authorizers import DummyAuthorizerfrom pyftpdlib.handlers import FTPHandler, TLS_FTPHandlerfrom pyftpdlib.servers import FTPServerauthorizer = DummyAuthorizer(); authorizer.add_user("user","12345",".", perm="elradfmwMT")handler = TLS_FTPHandler; handler.certfile="server.crt"; handler.keyfile="server.key"; handler.authorizer=authorizerserver = FTPServer(("0.0.0.0", 21), handler); server.serve_forever()openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365 -nodessudo ufw allow 21/tcp、sudo ufw allow 990/tcp、sudo ufw allow 40000:50000/tcp