温馨提示×

Debian与vsftpd的防火墙配置

小樊
41
2025-12-20 20:10:32
栏目: 智能运维

Debian 与 vsftpd 的防火墙配置

一、前置准备

  • 安装并启动 vsftpd:
    • 安装:sudo apt update && sudo apt install vsftpd
    • 启动与开机自启:sudo systemctl start vsftpd && sudo systemctl enable vsftpd
  • 确认防火墙工具:Debian 常用 UFW。查看状态:sudo ufw status;启用:sudo ufw enable。如未安装 UFW,可先 sudo apt install ufw

二、UFW 规则配置

  • 主动模式(Active)
    • 放行控制连接与主动数据端口:sudo ufw allow 20:21/tcp
  • 被动模式(Passive,推荐)
    • 放行控制连接:sudo ufw allow 21/tcp
    • 放行被动端口区间(示例):sudo ufw allow 49152:65535/tcp
  • 显式放行 FTPS(FTP over SSL/TLS)
    • 若启用隐式 FTPS,放行端口 990/tcpsudo ufw allow 990/tcp
  • 使规则生效与核验
    • 重载:sudo ufw reload
    • 查看:sudo ufw status verbose(确认规则与方向)。

三、vsftpd 配置要点

  • 基本安全与功能
    • 禁用匿名、启用本地用户与写入:anonymous_enable=NOlocal_enable=YESwrite_enable=YES
    • 目录限制:chroot_local_user=YES
  • 被动模式端口范围(需与防火墙一致)
    • 示例:pasv_enable=YESpasv_min_port=49152pasv_max_port=65535
  • SSL/TLS(可选)
    • 启用并指定证书(示例路径):ssl_enable=YESrsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemrsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
  • 应用配置
    • 重启服务:sudo systemctl restart vsftpd

四、常见场景与端口对照

场景 需放行端口 vsftpd 关键配置 说明
主动模式 FTP 20/tcp、21/tcp connect_from_port_20=YES 服务器主动连客户端高位端口,需放行服务器出/入站的 20 与 21。
被动模式 FTP 21/tcp + 被动区间 pasv_enable=YESpasv_min_portpasv_max_port 客户端连服务器被动端口区间,区间两端需在防火墙放行。
隐式 FTPS 990/tcp(及被动区间) ssl_enable=YES 隐式 FTPS 常用 990 作为控制端口,数据通道同样走被动区间。
自定义被动区间 例如 21100:21110/tcp pasv_min_port=21100pasv_max_port=21110 便于在云厂商安全组/防火墙中精确放行。

五、验证与排错

  • 规则与连通性
    • 查看防火墙状态:sudo ufw status verbose
    • 端口连通性测试:nc -vz <服务器IP> 21nc -vz <服务器IP> 990nc -vz <服务器IP> <被动端口>
  • 客户端测试
    • 使用 FileZilla 连接,启用“显式 FTP over TLS”(如配置 TLS),验证登录、列目录与传输是否正常。
  • 日志与重启
    • 查看服务日志:sudo journalctl -u vsftpd -f
    • 修改配置后务必重启:sudo systemctl restart vsftpd
  • 注意事项
    • 被动端口区间两端数值需一致(防火墙与 vsftpd 配置保持一致)。
    • 云服务器需同时在 云安全组 放行相同端口与协议(TCP)。
    • 若使用 IPv6,确认 UFW 已启用 IPv6 规则或分别放行 ::/0 方向。
    • 不建议使用过窄的被动区间,避免被动连接失败。

0