温馨提示×

Debian下vsftp的防火墙设置

小樊
32
2025-12-06 23:25:52
栏目: 智能运维

Debian 下 vsftpd 防火墙设置

一 前置检查与准备

  • 确认 vsftpd 已安装并运行:sudo apt update && sudo apt install vsftpd;sudo systemctl start vsftpd && sudo systemctl enable vsftpd。
  • 确认防火墙状态:sudo ufw status;如未启用可执行 sudo ufw enable。
  • 建议先备份 vsftpd 配置:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak。

二 使用 UFW 放行 FTP 与被动端口

  • 放行控制连接与主动数据端口:sudo ufw allow 21/tcp;sudo ufw allow 20/tcp
  • 配置并放行被动模式端口范围(示例为 50000–50100,需在 vsftpd 配置中同步设置):sudo ufw allow 50000:50100/tcp
  • 重载规则:sudo ufw reload;核对:sudo ufw status。

三 使用 iptables 放行 FTP 与被动端口

  • 放行控制与主动数据端口:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT;sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT。
  • 放行被动端口范围(示例为 50000–50100):sudo iptables -A INPUT -p tcp --dport 50000:50100 -j ACCEPT。
  • 保存规则(持久化):sudo apt install iptables-persistent;sudo netfilter-persistent save(或 iptables-save > /etc/iptables/rules.v4)。

四 vsftpd 配置与防火墙联动

  • 编辑 /etc/vsftpd.conf,确保启用被动模式并设定与防火墙一致的端口范围:
    pasv_enable=YES
    pasv_min_port=50000
    pasv_max_port=50100
  • 可选:如需加密传输,启用 SSL/TLS(示例端口 990/989):
    ssl_enable=YES
    implicit_ssl=YES
    listen_port=990
    ftp_data_port=989
    并在防火墙放行相应端口(UFW:sudo ufw allow 990/tcp;iptables:–dport 990989)。
  • 重启服务:sudo systemctl restart vsftpd。

五 验证与常见问题

  • 验证规则生效:UFW 执行 sudo ufw status verbose;iptables 执行 sudo iptables -L -v -n。
  • 客户端连接测试:使用 FileZilla 或命令行 ftp,验证登录、列目录、上传/下载是否正常。
  • 常见问题与处理:
    • 被动模式失败:检查 pasv_min_port/pasv_max_port 与防火墙端口范围完全一致,且云服务器安全组/外部防火墙已放行。
    • 数据连接超时:确认服务器与客户端之间的 20/tcp(主动模式)或被动端口范围未被拦截。
    • 规则未持久:UFW 已启用;iptables 使用 iptables-persistent 保存。
    • IPv6 场景:如仅使用 IPv4,可在 vsftpd.conf 设置 listen_ipv6=NO。

0