温馨提示×

Debian FTPServer的防火墙设置怎么做

小樊
42
2025-11-16 11:47:01
栏目: 智能运维

Debian FTP Server 防火墙设置

一、前置准备与模式选择

  • 明确使用的 FTP 类型与控制端口:
    • 明文 FTP:控制通道 21/TCP,主动模式数据通道由服务器从 20/TCP 发起。
    • 显式 FTPS(FTP over SSL/TLS):控制通道 21/TCP,数据通道协商为 990/TCP(显式)或在 TLS 握手后使用协商端口。
    • 被动模式(PASV):除 21/TCP 外,还需在服务器上固定一个数据端口范围(如 30000–31000/TCP),并在防火墙放行该范围。
  • 建议做法:在服务器(如 vsftpd)配置中固定被动端口范围,并在防火墙放行对应端口;若使用云服务器,还需在云平台安全组同步放行相同端口。

二、使用 UFW 放行规则

  • 安装并启用 UFW:
    • sudo apt update && sudo apt install ufw
    • sudo ufw enable
  • 放行规则(按需选择):
    • 明文 FTP:sudo ufw allow 21/tcp;主动模式通常还需 sudo ufw allow 20/tcp;被动模式需放行自定义端口段,例如 sudo ufw allow 30000:31000/tcp
    • 显式 FTPS:sudo ufw allow 21/tcp;如服务器/客户端要求显式数据端口,放行 990/tcp;被动端口段同样需要放行(如 30000:31000/tcp)。
  • 应用与检查:
    • sudo ufw reload
    • sudo ufw status verbose(或 sudo ufw status numbered)

三、使用 iptables 放行规则

  • 基本放行(示例):
    • 控制通道:sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
    • 主动模式数据:sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
    • 被动端口范围(示例):sudo iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT
    • 已建立/相关连接:sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    • 本地回环:sudo iptables -A INPUT -i lo -j ACCEPT
  • 持久化保存与恢复(Debian 常用做法):
    • 保存:sudo iptables-save > /etc/iptables/rules.v4
    • 开机恢复:可创建 /etc/network/if-pre-up.d/iptables,内容:/sbin/iptables-restore < /etc/iptables/rules.v4 并 chmod +x;或使用 iptables-persistent / netfilter-persistent 保存与加载规则。

四、vsftpd 与防火墙联动配置

  • 编辑配置文件(/etc/vsftpd.conf)以匹配防火墙策略:
    • 启用被动模式:pasv_enable=YES
    • 设置被动端口范围(与防火墙一致):pasv_min_port=30000;pasv_max_port=31000
    • 如为显式 FTPS:ssl_enable=YES;require_ssl_reuse=NO;rsa_cert_file=…;rsa_private_key_file=…
  • 重启服务:sudo systemctl restart vsftpd
  • 说明:主动模式由服务器从 20/TCP 主动连接客户端高位端口,通常需要在客户端侧或边界防火墙允许该方向连接;若不确定,优先使用被动模式并固定端口范围。

五、验证与常见问题

  • 验证规则是否生效:
    • UFW:sudo ufw status verbose(或 sudo ufw status numbered)
    • iptables:sudo iptables -L -v -n
  • 客户端连通性测试:
    • 使用 FileZilla 连接,切换到目标模式(主动/被动或显式 FTPS),验证登录、列目录与传输是否正常。
  • 常见问题与处理:
    • 被动模式失败:检查服务器 pasv_min_port/pasv_max_port 与防火墙端口范围一致,且云安全组已放行。
    • 数据连接超时:主动模式需确保服务器 20/TCP 能出网并到达客户端高位端口;被动模式需确保客户端能访问服务器被动端口段。
    • 安全性建议:FTP 明文传输不安全,优先使用 SFTP(基于 SSH)或 FTPS(显式/隐式 TLS)。

0