1. 安装vsftpd
在Ubuntu系统上,使用APT包管理器安装vsftpd(确保系统已更新):
sudo apt update && sudo apt install vsftpd
安装完成后,vsftpd服务会自动启动,可通过systemctl status vsftpd验证状态。
2. 基础配置(关键安全与功能设置)
编辑核心配置文件/etc/vsftpd.conf(建议先备份:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak),调整以下关键参数:
anonymous_enable=NO
local_enable=YES
NO)。write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES # 允许用户在chroot环境中写入(如上传文件)
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO # 仅允许白名单中的用户登录
修改完成后,重启vsftpd服务使配置生效:
sudo systemctl restart vsftpd
3. 用户与权限管理
sudo useradd -m ftpuser -s /usr/sbin/nologin # 创建无shell登录权限的用户
sudo passwd 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 # 上传目录权限(所有者可读写执行,组用户可读写执行,其他用户仅读执行)
userlist_enable=YES,需将允许登录的用户添加至/etc/vsftpd.user_list:echo "ftpuser" | sudo tee -a /etc/vsftpd.user_list
4. 安全增强措施
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.crt
编辑/etc/vsftpd.conf,添加以下配置:ssl_enable=YES
rsa_cert_file=/etc/ssl/private/vsftpd.crt
rsa_private_key_file=/etc/ssl/private/vsftpd.key
force_local_data_ssl=YES # 强制数据传输加密
force_local_logins_ssl=YES # 强制登录过程加密
ufw(Ubuntu默认防火墙)放行FTP控制端口(21)和被动模式端口范围(30000-31000),并重载规则:sudo ufw allow 21/tcp
sudo ufw allow 30000:31000/tcp
sudo ufw reload
/etc/ssh/sshd_config,添加:DenyUsers ftpuser # 禁止ftpuser通过SSH登录
然后重启SSH服务:sudo systemctl restart sshd
5. 服务管理与测试
sudo systemctl enable vsftpd
ftpuser)和密码,验证是否能成功登录并上传/下载文件。6. 日志与维护
/etc/vsftpd.conf中添加以下配置,记录用户操作(如登录、上传、下载),便于故障排查和安全审计。xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/vsftpd.log
sudo apt update && sudo apt upgrade保持vsftpd及系统软件包为最新版本,修复已知安全漏洞。