マーシャン パケットとは
IANA では、Martian パケットを、インターフェイスがそのネットワークを使用しないインターフェイスに到着するパケットとして定義しています。 Linux の場合、それは、そのサブネット用に構成されていないインターフェイスに到着するパケットです。
火星のパケット通知はすべて調査する必要があります。火星のパケット:
- ハッキング侵入に頻繁に使用されます。
- ネットワーク上の別の場所にあるサーバーの設定が間違っている可能性があります。
- ネットワーク インフラストラクチャの問題を示している可能性があります。
/etc/sysctl.conf の設定項目の場合 ファイルがこの検出を無効にしている場合は、有効にして sysctl プログラムを再実行する必要があります。チェックするサンプル エントリは次のとおりです。
net.ipv4.conf.all.log_martians=1 net.ipv4.conf.default.log_martians=1 net.ipv4.conf.bondib0.log_martians=1
この投稿では、火星のソース メッセージを解釈する方法を実際の例を使って説明します。
例 1 – 火星のソース メッセージを解釈する方法
以下の shjown の例を使用してみましょう:
Aug 22 11:08:21 server kernel: martian source 192.168.12.197 from 192.168.12.198, on dev bondib0 Aug 22 11:08:21 server kernel: ll header: 08:00:00:00:45:00:01:00:00:00:40:00:40:11:9f:11:c0:a8:0c:c6:c0:a8:0c:c5
これは、サーバーがインターフェイス bondib0 でパケットを受信し、パケットのソース (送信者) が 192.168.12.198、パケットの宛先 (受信者) が 192.168.12.197 であることを意味します。ただし、追加情報がなければ、パケットがマーシャン パケットとして報告された理由はわかりません。
例 2 – 無効なブロードキャスト
May 22 03:40:37 example2 kernel: IPv4: martian source 255.255.255.255 from 10.140.249.4, on dev eth1 May 22 03:40:37 example2 kernel: ll header: 00000000: ff ff ff ff ff ff 00 50 56 ad 59 09 08 00 .......PV.Y...
ここで、eth1 は送信者 10.140.249.4 からブロードキャスト パケットを受信し、受信者 255.255.255.255 は限定されたブロードキャストであり、ターゲット オーディエンスは「ローカル ネットワーク」内のすべてのホストです (ここでは、未知のネットマスクを持つ 10.140.249.4 セグメント)。トラフィックはルーターによって転送されるべきではありません。
ただし、この場合、eth1 の IP アドレスは 10.168.252.8/16 であり、送信者 10.140.249.4 と同じネットワークではありませんでした。したがって、この送信者からそのようなブロードキャスト パケットを受信することは想定されておらず、パケットは火星の送信元として拒否されました。このような問題は、ルーターの構成ミスが原因である可能性があります。
例 3 – 逆パス フィルタリング
May 25 16:46:04 example3 kernel: martian source 10.255.16.101 from 10.255.1.140, on dev eth0 May 25 16:46:04 example3 kernel: ll header: 00:10:e0:3b:1b:8a:00:1f:27:3f:34:00:08:00
この例 3 では、eth0 が 10.255.1.140 からパケットを受信し、受信者は 10.255.16.101 です。拒否された理由を理解するには、以下に示すように、2 つのホストのネットワーク構成を検査する必要があります:
サーバーexample3には2つのインターフェースeth0(10.255.16.101)とbond0(10.255.1.101)があり、L3スイッチとL2スイッチに別々に接続されています。 2 つのネットワーク セグメントに接続された L3 スイッチ:10.255.16.0/24、および 10.255.1.0/24。 Sender は L2 スイッチに直接接続され、L2 スイッチは L3 スイッチに接続されました。
ここで、送信者は example3 の eth0 に到達しようとしました。パケットは L2 スイッチと L3 スイッチを通過し、宛先 10.255.16.101 に到達します。これは通常許可されます。ただし、最近の Linux では通常、リバース パス フィルタリングが有効になっています。
# sysctl -a | grep eth0.rp_filter net.ipv4.conf.eth0.rp_filter = 1
制限モードでは、カーネルは RFC3704 を使用して着信パケットをテストします。インターフェイスが最適な逆方向パスでない場合、パケット チェックは失敗します。この場合、送信者は同じセグメントにあるため、bond0 経由でサーバー example3 に到達できたはずです。チェックに失敗し、パケットは拒否されました。
最も簡単な解決策は、代わりに bond0 (10.255.1.101) を接続することです。特別な理由でそれが不可能な場合は、リザーブ パス フィルタリングを無効にするか、eth0 でルース モードを使用します。