设置/问题
给定一个公共互联网上的服务器,其 IP185.48.117.176
为/proc/sys/net/ipv4/ip_forward=1
且没有 iptable-rules。
什么可以防止攻击者
- 直接或
- 间接(通过另一个路由器)
通过使用我的服务器作为她的路由器来连接到互联网?
(我知道,如果没有设置适当的伪装,它是无用的,因为回复不会被路由回来,但它仍然可以用于 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”,这样路由就保留了下来。
但是我仍然无法使用该服务器作为路由,因为没有数据包到达那里(我尝试使用 tcpdump 捕获 ICMP 数据包)。
作为这个帖子关于docker的问题,好像和网络是否支持二层交换有关。
这是为什么?我忽略了什么?
答案1
您的设备将发送 ARP 请求(广播),尝试获取与 185.48.117.176 关联的第 2 层 MAC 地址。由于没有接口物理连接到 185.48.117.176,因此不会返回任何 ARP 回复
为了物理上达到您的目标(185.48.117.176
),您需要将包发送到物理上连接185.48.117.176
到该目标的设备,等等。
理论上,例如,您可以使用路由器的虚假 MAC 地址构建一个以太网包(回答案例2. indirectly (through another router)
),然后它会将该包转发到公共网络,这是可以的,因为这就是路由的工作方式。
您想将包到达或注入到哪个网络?
- 如果它是任何 RFC 1918 地址,则没有公共路由器会路由它,因为这样的私有网络应该在哪里?
- 如果它是公共网络,那么无论如何它都是公众可以访问的
因此,只有当您物理连接到与专用网络物理连接的路由器时,尝试将包注入专用网络才有意义。
物理连接是不可能的,那么您当然需要适当的过滤。
编辑:
请记住:
如果攻击者是您的 ISP/控制来自 ISP 的设备,则连接到路由器/数据中心的人可以将数据包发送到您的网络。如果您启用了 NAT,则可以与私有网络中的设备进行通信。
如果是这种情况,请记住设置适当的过滤器。
答案2
数据包不能同时发往该机器和受害者。如果发往受害者,则不会发往该机器。如果发往该机器,则不会转发,因为它已到达目的地。
严格来说,数据包可以被寻址到一台机器,然后到达目的地——这称为源路由。但除非机器配置严重错误,否则不会满足此类请求。