启用Cisco IPS时,通过VPN传输文件问题

我们有安装了IPS模块的Cisco ASA 5510防火墙。

我们有一个客户,我们必须通过VPN连接到他们的networking,通过FTP交换文件。 我们在本地工作站上使用Cisco VPN客户端(版本5.0.01.0600),这些工作站位于防火墙之后并受到IPS的约束。

VPN客户端成功连接到远程站点。 但是,当我们开始FTP文件传输,我们只能上传150K到200K的数据,然后一切都停止。 一分钟后,VPN会话被丢弃。

我想我通过使用以下命令临时禁用IPS上的ASA上的服务策略来将此问题隔离为IPS问题:

access-list IPS第1行extended permit ip 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0 inactive

在这个命令发布后,我build立了VPN到远程站点,并成功传输整个文件。

虽然仍然连接到VPN和FTP会话,我发出命令启用IPS:

access-list IPS line 1 extended permit ip 0.0.0.0 0.0.0.0 0.0.0.0 0.0.0.0

文件传输再次尝试,并再次成功,所以我closures了FTP会话,并重新打开它,同时保持相同的VPN会话打开。 这个文件传输也是成功的。 这告诉我,FTP程序没有被过滤或导致问题。 此外,我们使用FTP每天交换与许多网站的文件没有问题。

然后,我断开了访问列表处于非活动状态时build立的原始VPN会话,并重新连接了VPN会话,现在访问列表处于活动状态。 开始FTP传输后,文件在150K后停止。

对我来说,这似乎是IPS阻止,或者以某种方式干扰到远程站点的初始VPN设置。

这只是在最新的IPS签名更新被应用之后才开始发生(sig version 407.0)。 我们以前的版本是95天,因为系统没有自动更新。

任何想法可能会导致这个问题?

尝试在发送端设置MTU(实际上双方都可能需要它)。 可能是有一个设备不能生成或不正确传递pathMTU发现数据包。 如果将mtu降低到1350,则修复它,然后调查是否有ACL阻塞ICMP。

与FTP相关的407签名中没有任何内容。 一般来说,当你有这样的FTP问题时,就会启动然后停止,通常与主动和被动FTP相关。 你使用的是什么ftp客户端? 尝试改变你的FTP客户端从活动到被动,看看是否有帮助。

在活跃的FTP中,你正在通过FTP进行传输,在不同的端口启动数据传输,然后传入请求…这就是为什么它通常被防火墙阻止。

在被动FTP中,您启动数据传输到不同的端口,因为大多数防火墙允许所有出站事件发生,所以它工作。

编辑添加:签名是累积的。 尽pipe407更新没有显示与FTP相关的任何内容,但是从95天前到现在的每一个更新都可以有一些东西。 我不打算研究每一个更新,以找出你虽然;)

我也不得不问,因为你有关于这个问题的其他问题…你是否使用这个5510的默认检查,除了将stream量转移到IPS模块? 如果你是,你真的不需要。

它开始传输的事实表明,build立FTP会话的数据部分没有问题,这就排除了一个ACL阻塞连接的input或输出。 在大文件传输过程中,VPN会话本身的下降似乎指向IPS对连接采取行动(尽pipe你可能认为它只是终止FTP会话,但是这些动作是可configuration的,所以谁知道?)如果你认为这是你的IPS掉VPN会话,你应该有日志来通过和IPS警报,如果这是你的IPS丢弃它。 您的IPS是在混杂模式(基本上是IDS模式)还是内联模式下运行? 据我所知,如果它处于混杂模式,它就不能丢弃stream量,因为它只接收stream量的副本。 由于它到目前为止一直没有任何变化(除了签名更新),所以我会询问客户是否改变了任何事情,不允许大文件传输超过一定的大小; 特别是因为你说你FTP没有问题的其他网站。 如果只是与这一个客户,你可以打赌问题是在他们的最后。

MTU或窗口缩放可能是原因

如果ftp传输是PASV,则需要启用数据包检查,并在防火墙中启用适当的ACL。

先备份一下你运行configuration!

这是我采用思科ASA 5505进行数据包检测的程序

  1. SSH / Telnet到防火墙
  2. 启用
  3. conf t
  4. class-map inspection_default
  5. 匹配默认检查stream量
  6. 按ctrl + z
  7. conf t
  8. policy-map global_policy
  9. class inspection_default
  10. 检查ftp
  11. wr mem

任何访问列表可以有多个条目您的VPN客户端将被分配一个子网

在线的一个IPS的ACL应该拒绝检查stream量到/来自VPN客户端子网线路的两个ACL应该启用IPS的其他stream量可能是值得排除其他stream量,如isakmp,GRE,ESP等啊被检查将需要看到更多的configuration

我会说忘记使用被动或主动FTP。 我讨厌FTPS和FTP的双端口性质。 而是下载WinSSHD服务器并在单个端口上运行SFTP服务器:端口22。 这样你只能处理一个针孔。

使用Tunnelier客户端连接到它。

刚刚有另一个想法:

有两种思科VPN:基于UDP的IPSec和基于TCP的IPSec。 很有可能您使用的是TCP版本,这可能会导致NAT scenerio中的数据包丢失。 VPN的UDP版本更稳定,因为TCP报头的封装方式不同。 使用TCP版本,您可能会遇到NAT转换问题。 它很难解释,但我会尝试编辑客户端协议VPNtypes…将其更改为通过UDP的IPSec。

基本上,这个线程上的其他答案是build议更改MTU设置,以尝试破解/解决可能在NAT中出现的IPSec over TCP问题。 那不是那个样子。 方法是使用IPSec over UDP,然后MTU无关紧要。