与 openvpn 客户端连接后的 Martian 数据包

与 openvpn 客户端连接后的 Martian 数据包

背景:

我从运行 OpenWRT 的住宅路由器后面的命令行通过 openvpn 客户端 (v2.4.4) 连接到服务器。

最近,我在系统日志中看到以下内容:

Aug  8 17:16:28 Deluxe kernel: [12972.603549] IPv4: martian source 192.168.1.100 from 34.210.182.212, on dev eno1
Aug  8 17:16:28 Deluxe kernel: [12972.603572] ll header: 00000000: d0 17 c2 ac 64 4b c4 e9 84 48 79 32 08 00        ....dK...Hy2..
Aug  8 17:16:28 Deluxe kernel: [12972.910801] IPv4: martian source 192.168.1.100 from 34.210.182.212, on dev eno1
Aug  8 17:16:28 Deluxe kernel: [12972.910822] ll header: 00000000: d0 17 c2 ac 64 4b c4 e9 84 48 79 32 08 00        ....dK...Hy2..
Aug  8 17:16:28 Deluxe kernel: [12973.230932] IPv4: martian source 192.168.1.100 from 34.210.182.212, on dev eno1
Aug  8 17:16:28 Deluxe kernel: [12973.230953] ll header: 00000000: d0 17 c2 ac 64 4b c4 e9 84 48 79 32 08 00        ....dK...Hy2..

该行中的第一个 MAC 地址ll header是我的网卡,第二个是路由器上的以太网接口。

连接之前我的路由表如下所示:

[2020-08-08 ☱ 18:35 ☴]$ route -n
Kernel IP routing table                                                        
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface  
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eno1   
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno1   

连接后不久,它看起来像这样:

[2020-08-08 ☱ 18:35 ☴]$ route -n                                                
Kernel IP routing table                                                             
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface       
0.0.0.0         10.25.40.1      128.0.0.0       UG    0      0        0 tun0        
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eno1        
10.25.40.0      0.0.0.0         255.255.255.0   U     0      0        0 tun0        
128.0.0.0       10.25.40.1      128.0.0.0       UG    0      0        0 tun0        
185.228.19.148  192.168.1.1     255.255.255.255 UGH   0      0        0 eno1        
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno1             

倒数第二个主机 IP 是 VPN 网关。适配器tun0的配置如下:inet 10.25.40.244 netmask 255.255.255.0 destination 10.25.40.244

三到五分钟后,火星交通将会减弱并且很少出现。

我已经测试过在openvpn没有路由器的情况下通过连接(直接连接到我的调制解调器),并且发生了同样的情况。

我在这里有点冒险,但看起来,当路由发生突然变化(如用户启动的 VPN 连接时发生)时,已建立的/相关的连接会持续存在并被视为无效而被丢弃。随着时间的推移,这些联系就会消失。

问题:

  1. 我对火星数据包产生原因的理解正确吗?
  2. 如果我想避免丢失这些数据包,我该怎么做?例如,我可以使用natmangleiptables将这些数据包定向到tun接口吗?

答案1

  1. 你的理解是正确的。
  2. 就我而言,我只是停止记录此类数据包。即使这是一次攻击,它也不会起作用,因为路由会阻止它成功:
net.ipv4.conf.all.log_martians = 0

相关内容