GNU/Linux >> Linux の 問題 >  >> Linux

Linux martian ソース メッセージの解釈方法

マーシャン パケットとは

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 でルース モードを使用します。


Linux
  1. OracleLinuxでMySQLマルチマスターレプリケーションを構成する方法

  2. Linux でソースから (および YUM を使用して) MongoDB をインストールする方法

  3. Linux にソースから TBB をインストールして動作させる方法

  1. ソースコードを使用してLinuxにphpMyAdminをインストールする方法

  2. LinuxでAppleのiMessageを使用する方法(一種)

  3. Linux で入出力エラーを解釈して修正する方法は?

  1. Linux でソースから Nginx をインストールして構成する方法

  2. Linux でソース コードからソフトウェアをコンパイルしてインストールする方法

  3. Linux でゲートウェイ IP アドレスを見つける方法