
背景:
OpenWRT を実行している住宅用ルーターの背後から、コマンド ラインから openvpn クライアント (v2.4.4) を介してサーバーに接続します。
最近、syslog に次のような内容が表示されるようになりました。
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
は NIC で、2 番目はルーターのイーサネット インターフェイスです。
接続前のルート テーブルは次のようになります。
[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
下から 2 番目にリストされているホスト IP は VPN ゲートウェイです。アダプタはtun0
次のように構成されています。inet 10.25.40.244 netmask 255.255.255.0 destination 10.25.40.244
3 ~ 5 分後には、火星の交通量は減り、まれにしか現れなくなります。
openvpn
ルーターを設置せずに(モデムに直接接続して)接続をテストしましたが、同じことが起こります。
大胆な推測ですが、ルーティングが突然変更されると (ユーザーが開始した VPN 接続で発生する場合など)、確立された接続や関連する接続はそのまま残り、無効として破棄されるようです。時間が経つと、これらの接続は消滅します。
質問:
- 火星のパケットの原因についての私の理解は正しいでしょうか?
- これらのパケットがドロップされないようにするには、どうすればよいですか? たとえば、
nat
または のmangle
表を使用して、iptables
これらのパケットをインターフェイスに送信できますかtun
?
答え1
- あなたの理解は正しいです。
- 私の場合は、単にそのようなパケットのログ記録を停止しました。たとえ攻撃であっても、ルーティングによって成功が阻止されるため、機能しません。
net.ipv4.conf.all.log_martians = 0