cisco asa 防火墙后面的被动 FTP 问题

cisco asa 防火墙后面的被动 FTP 问题

我在使用被动模式连接到 cisco asa 防火墙后面的 ftp 服务器时遇到问题。ftp 使用主动和“扩展被动”模式工作,但是:当我关闭“扩展被动”(ftp 控制台客户端应用程序中的 epsv)时,它不再工作 - 所有命令都导致超时。但是,对于我们使用的某些应用程序,我们需要非“扩展被动”模式。

有任何想法吗?

谢谢,哈拉德

更新/解决方案

事实证明,这并非 ASA 的错,是吗?我不得不在 proftpd 配置中关闭伪装。我将 proftpd-config 中的伪装地址设置为 ftp 服务器域的 IP 地址,这导致在通过 asa 传递流量时出现意外情况。现在 - 没有地址伪装 - 一切都运行良好。

答案1

古老的话题,但我最近遇到了类似的问题并认为我的 0.02 美元可能会对某些人有所帮助。

就我而言,我们在稍旧版本的 ASA 后面运行 IIS 7.5,我们正在更换它。我们有一个现有的 FTP 站点,我的计划是简单地使用证书添加 FTPS 支持,也许让我们的网络管理员打开几个端口。IIS 为每个 FTP 站点设置了类似的伪装设置,名为“防火墙的外部 IP 地址”,这本身就具有误导性。

TL/DR 版本:如果您的 FTP 服务器允许您指定伪装 IP 和用于 PASV 连接的端口范围,您应该能够通过打开这些端口和禁用 ftp 检查来解决此问题。

由于其他一些限制,我无法禁用 ASA 上的检查,因此我不得不做出一些妥协。以下是我观察到/了解到的情况:

  • ASA 只能检查非加密流量。嗯?
  • ASA 的默认行为是检查许多协议,包括 FTP。
  • 客户端在服务器端口 21 上进行身份验证,并确定服务器支持的功能集。
  • 如果配置正确,客户端将向服务器发送 PASV 请求
  • 服务器将响应“227 进入被动模式 (a,b,c,d,e,f)”,其中 abcd 是服务器地址,e*256 + f = 端口号
  • 除非配置了伪装地址,否则 abcd 地址将是内部 IP
  • FTP检查将会把abcd地址重写为外部IP,并为此客户端开放指定的端口。
  • 如果 abcd 地址是外部地址,则响应数据包将被丢弃。 *这可能是由于严格选项造成的,我无法验证。
  • CuteFTP 将识别 PASV 响应中的不可路由 IP,并尝试使用服务器的外部地址。
  • ASA 无法读取 SSL 加密的 FTPS 流量,因此它绕过检查并正常工作。

因此,在我们的案例中,当我设置伪装 IP 时,我能够通过 FTPS 顺利连接,但常规 FTP 会失败。当我删除伪装 IP 时,我仍然能够使用 CuteFTP 连接到 FTP 和 FTPS,但我们的主要客户端无法连接到 FTPS。(他们的系统不够“智能”,无法转换不可路由的 IP...)

因此,我的蹩脚解决方法是使用两个独立的站点:一个使用伪装 IP 并需要 SSL,另一个则不需要。

信息量太大,但也许它能帮助某些人解决这个问题。

答案2

您需要使用“fixup”命令启用 FTP 的应用程序级过滤:

# fixup protocol ftp 21

有关 PIX 的这篇文章也适用于 ASA:

http://www.ciscopress.com/articles/article.asp?p=24685

答案3

您可能需要创建一条规则来允许 Pasv 端口,而不仅仅是端口 21。在您的 FTP 程序中,它们通常有一个配置设置,您可以在其中指定客户 Pasv 端口范围。指定一些高范围的端口,比如 45200 到 45500 或类似的端口。然后在您的 ASA 中允许这些端口到 FTP 服务器的 IP。

答案4

您好,请尝试以下方法:

ftp 模式被动

策略图 global_policy

检查类_默认

检查 ftp

我不太清楚第一个命令的作用,但我在几个正在运行的配置中看到了它。试一试

但我很确定您需要创建一个带有 ftp 检查的策略图。这就是他们以前在 pix 上所称的修复协议。它允许 asa 在对方选择他们想要对话的端口时打开会话。

相关内容