温馨提示×

FTP服务器配置时如何设置防火墙

小樊
52
2025-10-04 12:28:56
栏目: 云计算

FTP服务器防火墙配置指南

FTP服务器的防火墙配置需确保控制连接(端口21)、数据连接(端口20)及被动模式端口范围的开放,同时兼顾安全性。以下是分步配置说明:

一、FTP协议端口基础

FTP服务默认使用两个核心端口:

  • 端口21:用于控制连接(客户端与服务器间的命令传输,如登录、目录操作);
  • 端口20:用于主动模式数据连接(服务器向客户端发送文件的端口)。
    若使用被动模式(PASV)(推荐,避免客户端防火墙拦截),需额外开放一组动态端口范围(如50000-50100),用于服务器接收客户端的数据连接。

二、Linux系统防火墙配置(常见发行版)

Linux系统常用ufw(Ubuntu/Debian)、firewalld(CentOS/RHEL)或iptables管理防火墙规则。

1. Ubuntu/Debian(使用ufw)
  • 安装ufw(若未安装):
    sudo apt update && sudo apt install ufw
    
  • 启用ufw
    sudo ufw enable
    
  • 允许FTP端口
    sudo ufw allow 21/tcp       # 控制连接
    sudo ufw allow 20/tcp       # 数据连接(主动模式)
    sudo ufw allow 50000:50100/tcp  # 被动模式端口范围(根据实际情况调整)
    
  • 启用规则
    sudo ufw reload
    
2. CentOS/RHEL(使用firewalld)
  • 启动firewalld
    sudo systemctl start firewalld && sudo systemctl enable firewalld
    
  • 允许FTP端口(永久生效)
    sudo firewall-cmd --permanent --add-port=21/tcp
    sudo firewall-cmd --permanent --add-port=20/tcp
    sudo firewall-cmd --permanent --add-port=50000-50100/tcp  # 被动模式端口范围
    
  • 重新加载配置
    sudo firewall-cmd --reload
    
3. 传统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 50000:50100 -j ACCEPT
    
  • 保存规则(Debian/Ubuntu):
    sudo apt install iptables-persistent && sudo netfilter-persistent save
    
    (CentOS/RHEL):
    sudo service iptables save
    

三、Windows系统防火墙配置

  • 打开“高级设置”
    进入“控制面板 > 系统和安全 > Windows Defender防火墙 > 高级设置”。
  • 新建入站规则(端口21/20)
    1. 选择“端口” > “TCP” > 输入“21”“20” > 点击“下一步”;
    2. 选择“允许连接” > 根据需求选择配置文件(域/专用/公用) > 点击“下一步”;
    3. 输入规则名称(如“FTP控制连接”) > 完成。
  • 新建入站规则(被动模式端口范围)
    重复上述步骤,输入被动模式端口范围(如50000-50100)。

四、被动模式(PASV)配置要点

被动模式需FTP服务器与客户端协商动态端口,因此必须在FTP服务器配置文件中指定端口范围,并同步开放防火墙:

  • vsftpd(Linux):编辑/etc/vsftpd.conf,添加:
    pasv_enable=YES
    pasv_min_port=50000
    pasv_max_port=50100
    
  • IIS(Windows):通过“Internet Information Services (IIS)管理器” > 右键FTP站点 > “FTP防火墙支持” > 设置“数据通道端口范围”。

五、安全增强建议

  • 禁用匿名登录:在FTP配置文件中设置anonymous_enable=NO(vsftpd);
  • 限制用户访问:仅允许特定用户登录(如userlist_enable=YES + userlist_file指定用户列表);
  • 使用加密协议:优先选择SFTP(SSH File Transfer Protocol)或FTPS(FTP over SSL/TLS),避免明文传输数据。

完成配置后,使用FTP客户端(如FileZilla)测试连接,确保能正常上传/下载文件。若遇问题,可通过telnetnc命令检查端口连通性(如telnet 服务器IP 21)。

0