我的防火墙(Sonicwall NSA 2400)已经开始从我的远程Linux服务器上删除SSH响应。 当我从内部IP启动SSH会话时,超时,当我看到防火墙日志,我看到以下内容:
TCP connection dropped source (remote Linux server IP), port 1200, interface X1 destination: (my internal IP), port 65050, interface X0 notes: TCP Port: 65050
随后的尝试失败,始终使用不同的内部目标端口。 我在这里错过了什么? 我没有添加任何规则到Sonicwall的防火墙,但Linux服务器的SSHD(Ubuntu 10.10)最近已经更新。
更新:
数据包转储显示数据包由于无效的TCP标志而被丢弃。
IP Type: TCP(0x6), Src=[source ip], Dst=[10.10.10.11] TCP Packet Header TCP Flags = [RST,], Src=[1200], Dst=[51150], Checksum=0x76d7 Application Header Not Known Value:[0] DROPPED, Drop Code: 22, Module Id: 26, (Ref.Id: _3694_uyHtJcpfngKrRmv) 1:1)
hex:
0017c519 be3d0090 1a422c89 08004500 002c0000 00001606 *.....=...B,...E..,......* 82a34e10 18c10a0a 0a0b04b0 c7ce6c45 9d910000 00005004 *..N...........lE......P.* 000076d7 00007366 7463 *..v...sftc *
这是否意味着Sonicwall的exception繁琐,或者是远程服务器上的configuration错误? 我可以从一个不同的远程LAN连接到它没有任何问题。
啊,搞清楚为什么血腥的Sonicwall会丢包。 欢迎拥有一台NSA设备。
首先,在Sonicwall的pipe理页面中指出该放置消息。 你应该看到一个popup消息,并将包含在这将是一个“消息ID”。 您可以使用此处列出的下拉代码交叉引用该值(对于固件版本5.6.0.x)。 如果您使用的是旧版本的固件,请使用5.5.0.x或4.2.0.x版本 。 这些代码非常含糊,但它可能有助于您走上正确的道路。
或者,您可以执行数据包转储,并且在查看丢弃的数据包时,丢弃代码和模块ID将在数据包捕获界面中列出。
– 克里斯托弗·卡雷尔
Linuxpipe理MTU协商(tcp_mtu_probing)是一个问题。 大部分的linux系统都提供了一种模式,在这种模式下,Linux不会以标准的另一种方式(另一方面是不安全的,这就是为什么Sonicwall不接受它的原因)进行关联。 你可以通过这样来修复你的linux系统:
echo 2> / proc / sys / net / ipv4 / tcp_mtu_probing
所以问题是Sonicwall拒绝使用“第一个”和最标准的方法来关联MTU大小,因为它是不安全的,Linux拒绝使用“替代”方法来协商MTU大小,这是更安全但效率更低的方法。
结果,你是性交。 这只发生在防火墙不能自行分割包的情况下,由于一个encryption的有效负载需要在源中重组,而不是在传输中。 这就是为什么SSL,SSH和其他encryption连接似乎有很多问题。
有了OpenSSH,你可以通过触摸openSSH客户端选项中的某些选项来“破解”协商调整有效载荷大小的方式,但是可能会发现使用其他应用程序的问题,所以最好通过改变内核pipe理这种情况,如果没有,你可以修复SSH,但后来发现SSL或OpenVPN的问题。
来自Sonicwall的更多信息: https : //support.software.dell.com/kb/sw3798 SonicWALL不承认或传递给LAN MTUpath发现消息,因为没有办法validation它们,它们可以用作进攻forms。 例如,某人可以通过简单地发送pathMTU发现数据包发起针对不受保护的服务器的拒绝服务攻击,指示服务器将数据包大小限制为5个字节,而不是正常的1500个字节。 这会使服务器的性能下降,因为它必须将相同数量的数据处理成更多的数据包,从而产生大量的开销。