在 Debian 上安装与配置 vsftpd 的步骤
一 安装与基础准备
- 更新软件包索引并升级系统:
- sudo apt update
- sudo apt upgrade -y
- 安装 vsftpd:
- sudo apt install vsftpd -y
- 确认服务状态:
- sudo systemctl status vsftpd(如未运行可执行:sudo systemctl start vsftpd)
- sudo systemctl enable vsftpd(设置开机自启)
二 基本配置 vsftpd.conf
- 编辑配置文件:
- sudo nano /etc/vsftpd.conf
- 常用安全与功能项(按需求调整):
- 禁用匿名访问:anonymous_enable=no
- 允许本地系统用户登录:local_enable=yes
- 允许写操作(上传/删除等):write_enable=yes
- 将本地用户限制在其主目录:chroot_local_user=yes
- 允许被限制的 chroot 目录可写(避免登录失败):allow_writeable_chroot=yes
- 监听设置(仅 IPv4 常用):listen=yes;listen_ipv6=no
- 被动模式端口范围(云服务器需放通):pasv_enable=yes;pasv_min_port=1024;pasv_max_port=1048
- 保存后重启服务生效:
- sudo systemctl restart vsftpd
三 防火墙与端口放通
- 使用 ufw(Debian 常见):
- 放通控制连接与数据端口:sudo ufw allow 20/tcp;sudo ufw allow 21/tcp
- 放通被动模式端口段:sudo ufw allow 1024:1048/tcp
- 启用防火墙:sudo ufw enable
- 如使用 firewalld(较少见于 Debian,如已安装可用):
- sudo firewall-cmd --permanent --add-service=ftp
- sudo firewall-cmd --reload
四 创建 FTP 用户与目录
- 新建系统用户(禁止 shell 登录更安全,目录按需调整):
- sudo adduser ftpuser(交互设置密码;家目录将作为 FTP 根目录)
- 如需禁止登录 shell,可改为:sudo useradd -d /home/ftpuser -s /usr/sbin/nologin ftpuser
- 若使用 nologin 作为 shell,确保其存在于 /etc/shells,否则部分环境可能拒绝登录:
- echo “/usr/sbin/nologin” | sudo tee -a /etc/shells
- 设置目录权限(示例将 /data/ftp 作为根目录):
- sudo mkdir -p /data/ftp
- sudo chown -R ftpuser:ftpuser /data/ftp
五 连接测试与可选加密
- 本机测试:
- ftp localhost(输入用户名与密码,验证登录与读写)
- 或使用 FileZilla 以 FTP 主动/被动模式连接服务器 IP、端口 21
- 可选启用 SSL/TLS(推荐):
- 生成自签名证书(示例有效期 365 天):
- sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
- 在 /etc/vsftpd.conf 增加/修改:
- ssl_enable=yes
- allow_anon_ssl=no
- force_local_data_ssl=yes
- force_local_logins_ssl=yes
- ssl_tlsv1=yes;ssl_sslv2=no;ssl_sslv3=no
- rsa_cert_file=/etc/ssl/certs/vsftpd.pem
- rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- 重启服务:sudo systemctl restart vsftpd
- 客户端连接时选择 FTPS(显式 AUTH TLS)