Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

FTP ALG

文件传输协议是一种广泛且常用的方法,用于通过 IP 网络交换文件。FTP ALG 监控端口、PAV 和 227 个命令。它NAT对 IP、端口或设备上消息和门开口执行安全保护。

FTP ALG 概述

文件传输协议 (FTP) 是一种通过 IP 网络交换文件的广泛常用方法。除了主控制连接之外,客户端与服务器之间的任何数据传输也进行数据连接;主机、端口和方向则通过控制通道进行协商。

对于活动模式 FTP,Junos OS状态防火墙服务会扫描 PORT 命令的客户端到服务器应用程序数据,PORT 命令将提供服务器连接的 IP 地址和端口号。对于被动模式 FTP,Junos OS 状态防火墙服务会扫描用于PASV 命令的客户端到服务器应用程序数据,然后扫描服务器到客户端的227响应响应,其中包含客户端连接的 IP 地址和端口号。

FTP 表示 ASCII 中的地址和端口号。因此,在重写地址和端口时,TCP 序列号可能会更改,之后 NAT 服务需要在所有后续数据包上执行顺序 NAT 来维持 SEQ 和 ACK 编号中的此 delta。

FTP ALG 支持以下功能:

  • 自动为动态数据连接分配数据端口和防火墙权限

  • 监控主动模式和被动模式下的控制连接

  • 使用相应的地址和端口信息重写NAT数据包

  • 网络地址转换、协议转换 (NAT-PT)

  • 传输层安全 (TLS) 作为安全机制

用于路由的 IPv6 FTP ALG

FTP 中的 PORT/PAV 请求和相应的 200/227 响应用于声明 TCP 端口,由主机侦听 FTP 数据连接。

EPRT/EPSV/229 命令用于这些请求和响应。FTP ALG 已支持 EPRT/EPSV/229,但仅支持 IPv4 地址。

在 Junos OS 10.4 版中,EPRT/EPSV/229 命令已更新,以支持 IPv4 和 IPv6 地址。

FTP ALG 使用预先定位的 cookie 存储其会话 Cookie。如果 FTP ALG 同时支持 IPv4 和 IPv6 地址,会话 Cookie 结构将放大 256 位(32 字节),以存储 IPv6 地址。

FTP ALG 对 IPv6 的支持

FTP ALG 监控 FTP 控制通道上的命令和响应,以取得语法正确性,并打开相应的针孔以允许建立数据通道连接。在 Junos OS 10.4 版中,FTP ALG 仅支持 IPv4 路由、IPv6 路由和NAT模式。在 Junos OS 11.2 和更高版本中,FTP ALG 还支持 IPv6 NAT和NAT-PT 模式。

了解 FTP 命令

FTP ALG 监控 FTP 控制通道上的命令和响应,以取得语法正确性,并打开相应的针孔以允许建立数据通道连接。在 Junos OS 10.4 版中,FTP ALG 支持 IPv4 路由和NAT模式,并且仅支持 IPv6 路由模式。在 Junos OS 11.2 及更高版本中,FTP ALG 还支持 IPv6 NAT 和 NAT-PT 模式。

PORT 命令

PORT 命令在活动 FTP 模式中使用。PORT 命令指定服务器应连接到的地址和端口号。使用此命令时,参数是 32 位互联网主机地址和 16 位 TCP 端口地址的串联。地址信息分为 8 位字段,每个字段的值以十进制数字形式传输(以字符串表示形式)。字段用逗号分隔。

以下示例 PORT 命令,其中 h1 是互联网主机地址的最高顺序 8 位:

端口 h1、h2、h3、h4、p1、p2

PAV 命令

通过PASV 命令,服务器需要侦听并非服务器默认数据端口的数据端口,并等待连接,而不是启动另一个连接。对PASV 命令的响应包括服务器正在侦听的主机和端口地址。

扩展 FTP 命令

扩展的 FTP 命令提供了一种方法,通过此方法,FTP 可以通信 IPv4 外网络协议的数据连接端点信息。扩展 FTP 命令在 RFC 2428 中指定。在 RFC 2428 中,扩展的 FTP 命令 EPRT 和 EPSV 分别更换 FTP 命令 PORT 和PASV。

EPRT 命令

EPRT 命令允许指定数据连接的扩展地址。扩展地址必须由网络协议以及网络和传输地址组成。

EPRT 的格式是:

EPRT<space><><net-prt><d><net-addr><d><tcp-port><d>

参数

描述

net-prt

由 IANA 定义的地址IANA。

net-addr

网络地址的特定协议字符串。

tcp 端口

主机正在侦听数据连接的 TCP 端口号。

分隔符

分隔符字符必须为 33 到 126(含)范围的 ASCII 字符之一。字符"|"(ASCII 124)。

以下命令显示如何指定服务器如何使用 IPv4 地址打开到 TCP 端口 6275 上的主机 132.235.1.2 的数据连接:

EPRT |1|132.235.1.2|6275|

以下命令显示如何指定服务器如何使用 IPv6 网络协议和网络地址在端口 5282 上打开 TCP 数据连接:

EPRT |2|1080::8:800:200C:417A|5282|

在此模式下,FTP ALG 仅关注 EPRT 命令;它从 EPRT 命令中提取 IPv6 地址和端口,并打开针孔。

EPSV 模式

EPSV 命令要求服务器在数据端口上侦听并等待连接。对此命令的响应仅包含侦听连接的 TCP 端口号。

示例响应字符串如下所示:

注意:

使用扩展地址进入被动模式的响应代码必须为 229。您应提取 229 个有效负载中的 TCP 端口,然后用于打开针孔。

示例:配置 FTP ALG

此示例展示如何为 FTP ALG NAT-PT。

要求

开始之前:

  • 为源设备池中的所有 IP 地址配置代理 ARP NAT。

  • 了解 ALG for FTP 背后的概念。请参阅 FTP ALG 概述

概述

此示例将 FTP 的 ALG 配置为监控 FTP 流量并允许在客户端与位于设备两侧的服务器瞻博网络交换。

此示例展示如何为 FTP ALG NAT-PT。

配置

配置源NAT池NAT池和规则集

CLI快速配置

要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit] commit

逐步过程

以下示例要求您在配置层次结构中导航各个级别。有关如何操作的说明,请参阅 CLI用户指南 中的 在配置模式下CLI编辑器 。

要配置源NAT池:

  1. 创建源NAT、静态NAT接口和NAT规则集。

  2. 使用NAT将 PT-PT 应用关联。

结果

在配置模式下,输入 命令以确认 show security nat 您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。

如果完成设备配置,请从配置 commit 模式输入 。

配置 FTP ALG 安全扩展

目的

设置安全 alg ftp 扩展

行动

在配置模式下,输入以下命令。

验证

要确认配置工作正常,请执行以下任务:

验证源NAT池,NAT池规则集

目的

验证用于NAT FTP ALG 的源池和规则集是否正常运行。

行动

在操作模式下,输入 show configuration security nat 命令。

验证 FTP ALG

目的

验证 FTP ALG 是否已启用。

行动

在操作模式下,输入 show security alg status 命令。

意义

输出显示 FTP ALG 状态,如下所示:

  • 启用 - 显示 FTP ALG 已启用。

  • 禁用 - 显示 FTP ALG 已禁用。

注意:

默认情况下,FTP ALG 启用。

版本历史记录表
释放
描述
11.2
在 Junos OS 11.2 及更高版本中,FTP ALG 还支持 IPv6 NAT 和 NAT-PT 模式。
10.4
在 Junos OS 10.4 版中,EPRT/EPSV/229 命令已更新,以支持 IPv4 和 IPv6 地址。
10.4
在 Junos OS 10.4 版中,FTP ALG 仅支持 IPv4 路由、IPv6 路由和NAT模式。