跳转至主要内容
我最近碰到一个网站,有几个模块,每个模块都在转发数据包。最差的情况是以每2秒左右1个的速度在转发。你说速度不快,但是,一天有86400秒,所以在1天内,该模块可能会从"安全"服务器上转发63兆(86400 / 2 * 1472)1的数据出你的网络,或者将63兆的黑客工具转移到你的安全网络中。

 

然而,在大多数情况下,转发数据包是配置问题的表现,而不是安全漏洞。例如,假设一个模块有2个IP接口。
enet1 10.1.1.1 255.255.0.0。
enet2 192.168.1.1 255.255.0。
让我们也假设默认路由器是192.168.1.254。

 

第一个网络上的所有主机的IP地址应该是10.1.X.Y,子网掩码为255.255.0.0,但如果IP地址为10.1.1.17的server_17配置成使用更多比特的子网掩码,比如255.255.255.0,怎么办?它仍然可以与任何IP地址为10.1.1.X的主机进行通信,所以它可能不会发现问题。但当它发送一个IP广播包时,它将该IP包的地址定为10.1.1.255,而不是10.1.255.255。封装该数据包的以太网帧将以太网广播地址作为其目的地,因此模块的以太网驱动程序读取该帧并将数据包传递给IP驱动程序。IP 驱动程序查看该 IP 地址,确定它的地址不是 enet1 或 enet2,也不是广播地址 10.1.255.255。如果开启了转发功能,IP 驱动程序将尝试把数据包转发到 IP 地址为 10.1.1.255 的主机。如果模块的 ARP 缓存中没有 10.1.1.255 的条目,它将发送一个 ARP 请求。如果它收到回复(或者它已经有一个条目),它将把数据包转发到 10.1.1.255。如果它没有得到回复,它将丢弃该帧。该模块还可以发送ICMP路由重定向消息,说明"路由器"是主机的IP地址。

 

如果server_17使用了较少位数的子网掩码,例如255.0.0.0,会发生什么?在这种情况下,它使用的IP广播地址是10.255.255.255。IP驱动判断这不是它所连接的网络上的地址,于是将数据包转发到默认的路由器192.168.1.254。不仅浪费了模块的资源,也浪费了路由器的资源。如果在同一个广播域内有两个子网,也会出现同样的情况。

 

最后,我们再来看看安全问题。假设安全服务器_S,有一个10.1.1.100的IP地址和正确的子网掩码255.255.0.0。10.1.0.0网络上没有路由器,那么工业间谍Eve如何从服务器_S向她在互联网上的雇主5.6.7.8发送数据?很简单,她只需要在server_S上配置一个主机路由,这样任何发往5.6.7.8的数据包都会发送到10.1.1.1。这就是所有需要做的事情。模块会把数据包转发到默认路由器,假设IP地址过滤没有被默认路由器做掉,它会把数据包转发到下一个路由器,等等,直到到达5.6.7.8。5.6.7.8没有办法响应回10.1.1.100,但Eve没有问题,她有其他方法确认数据是否到达雇主。

 

如何判断你的模块是否在转发数据包,或者至少配置了转发数据包?从"netstat -statistics"将向你展示你所需要的一切。

 

netstat -statistics
. . .
ip:
. . .
1   ipforwarding (ON)
. . .
3117   ipForwDatagrams
. . .

 

如果模块被配置为转发数据包,则该模块将被称为 ipforwarding 变量为1,标签后缀为(ON)。 如果模块确实在转发数据包,那么该变量将以 ipForwDatagrams 计数器将递增。请注意,即使数据包没有实际传输,计数器也会递增,因为没有ARP缓存条目。

 

要关闭IP转发,请执行命令">system>stcp>command_library>IP_forwarding off",是的,IP是大写的。
这时netstat -statistics将显示出 ipforwarding 变量的值为2,标签后缀为(OFF)。注意 ipForwDatagrams 变量没有被重置;它仍然会显示一个正值。不幸的是,没有办法清除该值。

 

netstat -statistics
. . .
ip:
. . .
2   ipforwarding (OFF)
. . .
3117   ipForwDatagrams
. . .

 

最后一句话要提醒大家,如果转发是打开的,你把它关掉,有人(除了Eve)实际上是把模块作为路由器使用,你会破坏他们正在做的任何事情。在我看来,这并不是一件坏事,STCP并不是设计成路由器的,但要做好被投诉的准备。

 

————-
笔记
1 1472是在以太网上传输的ICMP回波包中可以放入的最大字节数。

© 2024Stratus Technologies.