首先更新系统包列表并安装vsftpd:
sudo apt update && sudo apt upgrade -y
sudo apt install vsftpd -y
编辑配置文件/etc/vsftpd.conf(使用nano或vim):
sudo nano /etc/vsftpd.conf
关键配置项(根据需求调整):
anonymous_enable=NO # 禁止匿名访问
local_enable=YES # 允许本地用户登录
write_enable=YES # 允许本地用户上传文件
chroot_local_user=YES # 将用户限制在其主目录(增强安全性)
allow_writeable_chroot=YES # 允许chroot目录可写(避免权限错误)
local_umask=022 # 设置本地用户默认umask(控制文件权限)
pasv_enable=YES # 启用被动模式
pasv_min_port=1024 # 被动模式最小端口
pasv_max_port=1048 # 被动模式最大端口
pasv_address=your_server_ip # 替换为服务器公网IP(可选,明确指定服务器地址)
ssl_enable=YES # 启用SSL加密
allow_anon_ssl=NO # 禁止匿名用户使用SSL
force_local_data_ssl=YES # 强制数据传输使用SSL
force_local_logins_ssl=YES # 强制登录过程使用SSL
ssl_tlsv1=YES # 启用TLSv1协议
ssl_sslv2=NO # 禁用SSLv2(不安全)
ssl_sslv3=NO # 禁用SSLv3(不安全)
rsa_cert_file=/etc/ssl/private/vsftpd.pem # SSL证书路径
rsa_private_key_file=/etc/ssl/private/vsftpd.pem # SSL私钥路径
配置完成后保存并退出编辑器。
创建专用FTP用户(以ftpuser为例):
sudo useradd -m ftpuser -d /home/ftpuser -s /sbin/nologin # 创建用户并设置家目录,禁止shell登录
sudo passwd ftpuser # 设置用户密码
设置目录权限(确保用户对其家目录有读写权限):
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
若系统启用了ufw防火墙,需允许FTP流量通过:
sudo ufw allow 20/tcp # FTP控制连接(主动模式)
sudo ufw allow 21/tcp # FTP控制连接(默认)
sudo ufw allow 1024:1048/tcp # FTP被动模式端口范围(根据配置调整)
sudo ufw reload # 重新加载防火墙规则
启动vsftpd服务并设置为开机自启:
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
使用FTP客户端(如FileZilla)连接服务器:
ftpuser(或创建的本地用户)若未提前准备证书,可使用OpenSSL生成自签名证书:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
chroot_local_user)若需灵活控制哪些用户可被chroot,可启用chroot_list:
sudo nano /etc/vsftpd.conf
修改以下配置:
chroot_local_user=NO # 关闭全局chroot
chroot_list_enable=YES # 启用chroot列表
chroot_list_file=/etc/vsftpd.chroot_list # 指定chroot用户列表文件
创建列表文件并添加用户:
sudo nano /etc/vsftpd.chroot_list
输入需限制的用户名(每行一个),保存后重启服务。
通过以上步骤,可实现Debian系统与vsftpd的完整集成,满足基本的FTP服务需求。根据实际场景(如用户权限、加密要求、防火墙环境),可进一步调整配置项。