以下是在Ubuntu系统搭建FTP服务器的完整指南,涵盖主流方案vsftpd的部署流程及安全优化建议:

一、FTP服务选择与安装
推荐使用vsftpd(Very Secure FTP Daemon),其轻量且默认集成安全特性。执行安装命令:
sudo apt update && sudo apt install vsftpd
系统将自动创建配置文件/etc/vsftpd.conf和默认服务账户。
二、核心配置参数调整
编辑配置文件sudo nano /etc/vsftpd.conf,重点关注以下参数:
基础权限
anonymous_enable=NO # 禁用匿名登录
local_enable=YES # 允许本地用户登录
write_enable=YES # 开放写权限
chroot_local_user=YES # 将用户限制在个人目录
allow_writeable_chroot=YES # 兼容性参数
被动模式设置(解决客户端连接超时)
pasv_enable=YES
pasv_min_port=40000 # 被动模式端口下限
pasv_max_port=50000 # 端口上限范围建议1000+
pasv_address=公网IP # 服务器公网IP(云服务器必填)
三、用户与权限管理
创建专用FTP用户
sudo useradd -m ftpuser -s /bin/bash
sudo passwd ftpuser # 设置用户密码
sudo chown -R ftpuser:ftpuser /home/ftpuser
限制用户访问范围
在配置文件中追加:
user_sub_token=$USER
local_root=/home/$USER/ftp # 自动绑定用户子目录
四、防火墙与端口放行
使用UFW防火墙时执行:
sudo ufw allow 20:21/tcp # 控制通道
sudo ufw allow 40000:50000/tcp # 被动模式数据通道
五、服务启动与验证
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd
测试连接:
终端命令:ftp 服务器IP
图形工具推荐FileZilla,需选择"FTP-显式TLS"模式
六、安全增强建议
TLS加密传输
通过openssl生成证书,并在配置中启用:
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
替代方案
对安全性要求高的场景建议改用SFTP(基于SSH协议)或FTPS(FTP over SSL)。
提示:完整配置文件示例可通过man vsftpd.conf查阅。若需批量管理用户,可研究虚拟用户模式(需搭配数据库)。云服务器用户需同步配置安全组的入站规则。
Copyright © 2013-2020. All Rights Reserved. 恒讯科技 深圳市恒讯科技有限公司 粤ICP备20052954号 IDC证:B1-20230800.移动站


