温馨提示×

Debian FTP服务器的防火墙设置技巧

小樊
41
2025-12-06 05:31:30
栏目: 云计算

Debian FTP服务器的防火墙设置技巧

一、前置准备与端口规划

  • 明确FTP模式与端口:控制通道使用TCP 21;主动模式数据通道由服务器从TCP 20发起;被动模式(PASV)需要预先开放一段高位端口范围(建议在配置文件中固定,如30000–3100040000–50000)。如使用显式TLS/FTPS,还需开放TCP 990
  • 服务器配置要点:在FTP服务配置(如 vsftpd)中启用被动模式并设置与防火墙一致的端口范围,例如:pasv_enable=YES、pasv_min_port=30000、pasv_max_port=31000。
  • 安全原则:FTP明文传输,生产环境优先采用SFTP(基于SSH)或FTPS(SSL/TLS)。

二、使用 UFW 快速放行

  • 安装与启用:sudo apt update && sudo apt install ufw -y;sudo ufw enable。
  • 放行规则(示例为被动端口范围30000–31000):
    • 控制连接:sudo ufw allow 21/tcp
    • 主动数据端口:sudo ufw allow 20/tcp
    • 被动端口范围:sudo ufw allow 30000:31000/tcp
    • 如需FTPS:sudo ufw allow 990/tcp
  • 应用与核验:sudo ufw reload;sudo ufw status(或 sudo ufw status numbered)。

三、使用 iptables 精细控制

  • 基本放行(示例端口范围30000–31000):
    • 控制通道: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 -i lo -j ACCEPT;sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 规则持久化:
    • 方式A(推荐):安装 iptables-persistent / netfilter-persistent,执行 sudo netfilter-persistent save 与 sudo netfilter-persistent reload。
    • 方式B:将规则保存至 /etc/iptables/rules.v4,并在 /etc/network/if-pre-up.d/iptables 中写入 /sbin/iptables-restore < /etc/iptables/rules.v4 并 chmod +x。
  • 核验:sudo iptables -L -n -v。

四、被动模式与 FTPS 的端口对照示例

  • 主动模式:放行21/TCP(控制),服务器用20/TCP主动连客户端数据端口。
  • 被动模式(示例范围30000–31000):放行21/TCP30000:31000/TCP;客户端将在此范围内建立数据通道。
  • 显式FTPS:在放行21/TCP的基础上,额外放行990/TCP
  • 隐式FTPS(若使用):通常需放行990/TCP及协商出的数据端口范围(以服务端与客户端协商为准)。

五、验证与加固建议

  • 连通性验证:
    • 查看规则:UFW 用 sudo ufw status numbered;iptables 用 sudo iptables -L -n -v。
    • 客户端测试:分别测试主动/被动模式登录、上传/下载;FTPS 使用支持TLS的客户端。
  • 加固要点:
    • 限制来源IP(如仅内网网段):sudo ufw allow from 192.168.1.0/24 to any port 21,20,30000:31000;iptables 使用 -s 源地址限定。
    • 避免使用过大的端口范围(如1024:65535),以减少攻击面。
    • 优先采用SFTP/FTPS替代明文FTP,必要时结合 fail2ban 做暴力破解防护。

0