vsftpd与Ubuntu集成的完整流程
在Ubuntu系统上,通过APT包管理器快速安装vsftpd(Very Secure FTP Daemon)。首先更新系统软件包列表,再执行安装命令:
sudo apt update
sudo apt install vsftpd
安装过程中,系统会提示确认安装,输入“Y”即可完成。
vsftpd的主配置文件位于/etc/vsftpd.conf,需根据需求修改以下关键参数(建议先备份原文件):
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf
anonymous_enable=NO)、允许本地用户登录(local_enable=YES)、启用文件写入权限(write_enable=YES);chroot_local_user=YES),避免访问系统其他目录;允许chroot目录可写(allow_writeable_chroot=YES),解决用户无法上传文件到主目录的问题;listen_port=2121,需同步调整防火墙规则)、启用被动模式(pasv_enable=YES)并设置端口范围(pasv_min_port=10000、pasv_max_port=10100),提升防火墙兼容性。为增强安全性,建议创建专用FTP用户,并设置对应的主目录权限:
sudo adduser ftpuser # 按提示设置用户名和密码
sudo mkdir -p /home/ftpuser/ftp # 创建专用FTP目录
sudo chown ftpuser:ftpuser /home/ftpuser/ftp # 设置目录所有者
sudo chmod 755 /home/ftpuser/ftp # 设置目录权限(所有者可读写执行,其他用户仅可读执行)
若需将用户限制在自定义目录(而非主目录),可修改local_root参数:
local_root=/home/ftpuser/ftp
重启vsftpd服务使配置生效:
sudo systemctl restart vsftpd
Ubuntu默认使用UFW防火墙,需开放FTP相关端口:
sudo ufw allow 21/tcp # 默认FTP控制端口
sudo ufw allow 20/tcp # 默认FTP数据端口(主动模式)
sudo ufw allow 10000:10100/tcp # 被动模式端口范围(若启用)
sudo ufw reload # 重新加载防火墙规则
若使用ufw的FTP辅助功能(自动处理数据端口),可简化为:
sudo ufw allow ftp # 自动开放FTP相关端口
使用FTP客户端(如命令行工具ftp或图形化工具FileZilla)连接服务器:
ftp <服务器IP地址>
输入创建的FTP用户(如ftpuser)和密码,验证是否能成功登录及上传/下载文件。sudo apt install vsftpd-ssl
生成自签名证书(有效期365天):sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
修改配置文件启用SSL:ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
重启vsftpd服务:sudo systemctl restart vsftpd
allow_writeable_chroot=YES,并创建/etc/vsftpd.chroot_list文件,写入允许访问的IP地址,提升网络安全性。