在安装任何软件前,先更新系统软件包列表以确保获取最新版本:
sudo apt update && sudo apt upgrade -y
vsftpd是Ubuntu上最流行的FTP服务器软件,以安全性和稳定性著称:
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
# 禁用IPv6(若无需IPv6支持)
listen_ipv6=NO
# 启用被动模式(解决防火墙/NAT环境下的连接问题)
pasv_enable=YES
# 设置被动模式端口范围(需与防火墙规则匹配)
pasv_min_port=50000
pasv_max_port=50100
# 启用详细日志记录(便于排查问题)
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
Ctrl+O保存,Ctrl+X退出。为避免使用系统管理员账户,建议创建专门用于FTP访问的用户:
# 创建用户(如"ftpuser")
sudo adduser ftpuser
# 设置密码(按提示输入两次)
# 可选:填写用户信息(全名、房间号等,直接回车跳过)
确保FTP用户的主目录权限正确,避免因权限问题导致无法访问:
# 设置主目录所有者(将"ftpuser"替换为你的用户名)
sudo chown ftpuser:ftpuser /home/ftpuser
# 设置主目录权限(755:所有者可读写执行,其他用户仅可读执行)
sudo chmod 755 /home/ftpuser
若系统启用了UFW防火墙,需允许FTP相关端口通过:
# 允许FTP控制端口(21)
sudo ufw allow 21/tcp
# 允许被动模式端口范围(50000-50100)
sudo ufw allow 50000:50100/tcp
# 启用防火墙
sudo ufw enable
# 检查防火墙状态
sudo ufw status
修改配置文件后,必须重启服务以应用更改:
sudo systemctl restart vsftpd
# 设置开机自启动(可选但推荐)
sudo systemctl enable vsftpd
使用FTP客户端(如FileZilla、命令行工具)验证配置是否生效:
ftp localhost
输入创建的FTP用户(如"ftpuser")和密码,若能成功登录并列出目录,则配置正确。sudo apt install vsftpd-tls -y
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
force_local_data_ssl=YES
force_local_logins_ssl=YES
sudo systemctl restart vsftpd
/etc/vsftpd.conf,添加:userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
/etc/vsftpd.user_list,添加允许登录的用户名(每行一个)。通过以上步骤,你可在Ubuntu上搭建一个安全、可用的FTP服务器。根据实际需求调整配置(如被动模式端口范围、用户权限等),确保服务器稳定运行。