Ubuntu FTP服务搭建与配置
目录
1. 安装vsftpd
2. 配置vsftpd
关键配置修改:
3. 创建FTP专用用户
4. 设置目录权限
5. 防火墙放行端口
6. 重启服务
7. 客户端连接测试
常见问题排查
安全增强建议
在Ubuntu系统中搭建FTP服务,推荐使用vsftpd(Very Secure FTP Daemon),它轻量、安全且易于配置。以下是详细步骤:
1. 安装vsftpd
sudo apt update
sudo apt install vsftpd
2. 配置vsftpd
编辑配置文件:
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=30000
pasv_max_port=31000# 可选:启用用户列表白名单(更安全)
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list # 白名单文件路径
userlist_deny=NO # 仅允许白名单中的用户登录
3. 创建FTP专用用户
# 创建用户(无SSH登录权限)
sudo useradd -m ftpuser -s /usr/sbin/nologin
sudo passwd ftpuser # 设置密码# 将用户加入白名单
echo "ftpuser" | sudo tee -a /etc/vsftpd.user_list
4. 设置目录权限
# 用户主目录(例如 /home/ftpuser)
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser# 创建上传目录并授权
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:ftpuser /home/ftpuser/upload
sudo chmod 775 /home/ftpuser/upload
5. 防火墙放行端口
# 开放FTP控制端口(21)和被动端口范围
sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload
6. 重启服务
sudo systemctl restart vsftpd
sudo systemctl enable vsftpd # 开机自启
7. 客户端连接测试
- 命令行工具:
ftp your_server_ip # 输入用户名 ftpuser 和密码
- 图形工具(如FileZilla):
- 协议:
FTP
- 主机:
服务器IP
- 用户名/密码:
ftpuser
及其密码 - 端口:
21
- 协议:
常见问题排查
-
连接超时:
- 检查防火墙:
sudo ufw status
- 确认服务器IP是否正确,云服务器需检查安全组规则。
- 检查防火墙:
-
登录失败:
- 检查白名单:用户是否在
/etc/vsftpd.user_list
中。 - 验证密码:
sudo passwd ftpuser
重设密码。
- 检查白名单:用户是否在
-
无法上传文件:
- 目录权限:确保上传目录(如
upload
)有写权限(chmod 775
)。 - 配置项:确认
write_enable=YES
。
- 目录权限:确保上传目录(如
安全增强建议
-
启用TLS加密(FTPS):
在配置中添加:ssl_enable=YES rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
客户端需使用FTPS协议连接。
-
替代方案(更安全):
- 使用 SFTP(基于SSH):无需额外安装,通过OpenSSH提供。
sftp ftpuser@your_server_ip # 直接使用SSH登录
- 使用 SFTP(基于SSH):无需额外安装,通过OpenSSH提供。
通过以上步骤,您已成功在Ubuntu上部署了安全的FTP服务。根据需求选择基础FTP或更安全的FTPS/SFTP方案。