在思科asa防火墙后面的被动FTP问题

我使用被动模式连接到cisco防火墙后面的ftp服务器时遇到了问题。 但是,当我closures“扩展被动”(ftp控制台客户端应用程序中的epsv)时,ftp可以工作在活动模式和“扩展被动”模式下,但它不再起作用 – 所有的命令都会导致超时。 然而,我们需要使用非扩展被动模式。

有任何想法吗?

谢谢,哈拉德

更新/解决scheme

事实certificate,这不完全是ASA的错,还是它? 我不得不在proftpdconfiguration中伪装。 我将proftpd-config中的伪装地址设置为ftp-server域的IP地址,导致stream量通过asa时出现意想不到的事情。 现在 – 没有地址伪装 – 一切工作得很好。

古代的话题,但最近我遇到了类似的问题,并认为我的$ .02可能会帮助某人。

在我的情况下,我们正在运行IIS 7.5,稍微老一点的ASA,我们正在取代。 我们有一个现有的FTP站点,我的计划是简单地添加FTPS支持证书,也许让我们的networkingpipe理员打开几个端口。 对于名为“防火墙的外部IP地址”的每个FTP站点,IIS都具有相似的伪装设置,这本身就具有误导性。

TL / DR版本 :如果你的FTP服务器允许你指定伪装IP和用于PASV连接的一系列端口,你应该可以通过打开这些端口和禁用ftp检查来解决这个问题。

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

  • ASA只能检查未encryption的stream量。 咄?
  • ASA的默认行为是检查一些协议,包括FTP。
  • 客户端在服务器端口21上进行身份validation,并确定服务器支持的function集。
  • 客户端,如果这样configuration,将发送一个PASV请求到服务器
  • 服务器将以“227进入被动模式(a,b,c,d,e,f)”进行响应,其中abcd是服务器地址,e * 256 + f =端口号
  • abcd地址将是内部IP,除非configuration伪装地址
  • FTP检查会将abcd地址重写为外部IP,并为此客户端打开指定的端口。
  • 如果abcd地址是外部地址,则丢弃响应报文。 *这可能是由于严格的选项,我无法validation。
  • CuteFTP将识别PASV响应中的不可路由IP,并尝试使用服务器的外部地址。
  • ASA无法读取SSLencryption的FTPSstream量,因此绕过检查并运行。

所以在我们的情况下,当我设置伪装IP时,我可以通过FTPS连接,但是普通的FTP会失败。 当我删除伪装IP时,我仍然可以使用CuteFTP连接到FTP和FTPS,但我们的主要客户端无法连接到FTPS。 (他们的系统不够“聪明”,不足以翻译不可路由的IP …)

所以我的跛脚的解决方法是使用两个独立的站点:一个使用伪装IP和需要SSL,另一个站点没有。

TMI,但也许它有助于有人通过这个工作。

您需要使用“fixup”命令为FTP启用应用程序级别筛选:

# fixup protocol ftp 21 

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

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

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

ASA没有像PIX那样的修复命令。

您是否使用服务策略规则对FTPstream量进行默认检查?

嗨尝试以下的事情:

FTP模式被动

policy-map global_policy

class inspection_default

检查ftp

我不是很确定第一个命令是做什么的,但是我在几个正在运行的configuration中看到了它。 只是试试看

但我相当肯定你需要用ftp检查来创build一个策略映射。 这就是他们之前称之为fixup协议的东西。 它允许asa在反对者select他们想要谈话的港口时开一个会议。

你可以改用隐式的SFTP,然后你只需要担心打开一个端口。

我认为ftp被动模式是为了asa(路由器本身)发送或接收configuration本身。 不适合通过会议。 就是我发现的….

我刚才说的命令“ftp mode passive”只是为了澄清。