什么阻止启用ip_forwarded的服务器被攻击者用作路由器

安装程序/问题

假设公共Internet上的服务器的IP为185.48.117.176其中/proc/sys/net/ipv4/ip_forward=1且没有iptable-rules。

什么防止攻击者是

  1. 直接或
  2. 间接(通过另一台路由器)

连接到互联网从我的服务器作为她的路由器?

(我知道,没有适当的伪装设置它的无用,因为这些回收不会被路由回来,但是它仍然可以被用于UDP泛滥攻击,其中不应该有响应包。

我试过的:

我试图添加一个路由(在我的客户端/攻击者机器上)

 route add 0.0.0.0 gw 185.48.117.176 

在我添加了“假接口ip”

 ip address add dev wlan0 scope link 185.48.117.176 

防止SIOCADDRT: Network is unreachable错误消息。 然后,我删除了“假接口IP”,所以路线停留。

但是,我仍然无法使用服务器作为路由,因为没有包到达那里(我试图捕获ICMP包使用tcpdump)。

在docker问题上的这篇文章中 ,似乎与networking是否支持第2层交换有关。

为什么是这样? 我错过了什么?

来自@MarkoPolo(评论) :

您的设备将发送ARP请求(广播),尝试获取与185.48.117.176关联的第2层MAC地址。 因为没有接口物理连接到185.48.117.176,所以不会有ARP回复

为了达到目标( 185.48.117.176 ),你需要将包裹发送到一个物理连接到185.48.117.176的设备上。

例如,你可以用你的路由器伪造一个MAC地址来构build一个以太网包2. indirectly (through another router)地回答案例2. indirectly (through another router) ),并且它会把包裹放到公网上,这是可以的,路由工作。

你试图达到/注入一个包什么网?

  • 如果是RFC 1918的任何一个地址,没有公共路由器将路由它,因为这样的专用networking应该在哪里?
  • 如果是公共networking,无论如何都是公共的

所以只有在物理上连接到与私有networking物理连接的路由器时,才能尝试将包注入到私有networking中。
而身体上的连接毫无疑问,那么你当然需要适当的过滤。


编辑:

记住:
如果攻击者是来自ISP的ISP /控制设备,连接到路由器/数据中心,则可以将软件包接入您的networking。 如果您启用了NAT,则可以与私有networking中的设备进行通信。

如果这是你记住要设置适当的过滤的情况。

数据包不能同时被寻址到该机器和受害者。 如果发给受害者,它不会去那台机器。 如果发往那台机器,它将不会被转发,因为它已经到达目的地。

严格来说,一个数据包可以被发送到一个机器,然后到一个目的地 – 这就是所谓的源路由 。 但是,除非机器configuration错误,否则这样的要求是不被接受的。