debian与vsftp的文件共享设置
小樊
41
2025-12-16 21:07:42
Debian 与 vsftpd 文件共享实操指南
一 环境准备与安装
- 更新索引并安装 vsftpd:
- sudo apt update
- sudo apt install vsftpd
- 启动服务并设为开机自启:
- sudo systemctl start vsftpd
- sudo systemctl enable vsftpd
- 确认服务状态:
- sudo systemctl status vsftpd
以上步骤适用于 Debian 系列系统,安装后即可进行后续配置与连接测试。
二 基础安全配置
- 编辑主配置文件:
- sudo nano /etc/vsftpd.conf
- 常用安全基线(按需求启用/调整):
- 监听与协议
- listen=YES
- listen_ipv6=NO(如不需 IPv6)
- 身份与权限
- anonymous_enable=NO(禁止匿名,生产推荐)
- local_enable=YES(允许本地系统用户)
- write_enable=YES(允许写入/上传)
- chroot_local_user=YES(将本地用户限制在其家目录)
- allow_writeable_chroot=YES(允许在 chroot 内写入;部分环境可用)
- 访问控制
- userlist_enable=YES
- userlist_deny=NO(仅允许 /etc/vsftpd.user_list 中的用户登录)
- 同时确保关键系统账号在 /etc/vsftpd.ftpusers 中禁用 FTP 登录
- 说明
- 以上布尔项在 vsftpd 中以“option=value”形式书写,等号两侧不可有空格;chroot 与 user_list 的组合可实现灵活的访问控制策略。
三 共享目录与用户权限
- 创建专用共享用户与目录(示例):
- sudo adduser ftpuser
- sudo usermod -d /home/ftpuser -s /usr/sbin/nologin ftpuser
- 设置目录所有权与权限:
- sudo chown -R ftpuser:ftpuser /home/ftpuser
- sudo chmod 755 /home/ftpuser(避免使用 777,存在安全与功能风险)
- 如需共享给多用户或指定组,可将用户加入同一组并对共享目录设置组写权限(如 775),同时确保父目录对组有执行权限,以便进入与列目录。
四 被动模式与防火墙
- 被动模式端口范围(建议在 NAT/云环境中启用):
- 在 /etc/vsftpd.conf 中添加:
- pasv_enable=YES
- pasv_min_port=40000
- pasv_max_port=50000
- 重启服务:sudo systemctl restart vsftpd
- 防火墙放行(UFW 示例):
- 控制连接:sudo ufw allow 21/tcp
- 被动端口范围:sudo ufw allow 40000:50000/tcp
- 如启用 FTPS:sudo ufw allow 990/tcp
- 如使用主动模式数据端口:sudo ufw allow 20/tcp
- 如使用 firewalld:
- sudo firewall-cmd --permanent --add-service=ftp
- sudo firewall-cmd --reload
- 说明
- 主动模式由服务器主动连接客户端数据端口,通常需放行 20/tcp;被动模式由客户端连接服务器端口段,需放行所配置的端口范围。
五 加密传输与测试
- 启用 SSL/TLS(FTPS,推荐):
- 生成证书(合并证书与私钥):
- sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
-keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/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/private/vsftpd.pem
- rsa_private_key_file=/etc/ssl/private/vsftpd.pem
- 重启服务:sudo systemctl restart vsftpd
- 客户端连接测试
- 命令行:ftp your_server_ip(明文 FTP,若启用 TLS 请使用支持 TLS 的客户端)
- 图形工具:FileZilla,选择 FTP over TLS(显式)或 FTPS(隐式,若启用 implicit_ssl=YES 并使用 990/tcp)
- 匿名共享(可选,谨慎开放)
- 配置要点:anonymous_enable=YES,按需设置 anon_upload_enable、anon_mkdir_write_enable,并将匿名根目录(如 /var/ftp)权限设为 555 等只读安全权限,避免 777。