当社には Linux ベースのネットワーク製品 (「Z」と呼びます) があり、これらを一括で販売する傾向があります。これにより、すべての製品が同じサブネット上で実行され、同じ種類の処理を実行し、それらすべてを調整する単一のサーバー (これもサブネット上) にデータを報告します。
これらのユニットは、2.6 カーネルに基づくカスタムの自作バージョンの Linux を実行しています。
以下の機能を追加する可能性について調査するように依頼されました:
「Zユニットはローカルサブネット上の他のZユニットを見つけ、そのIPv4アドレスをリストできなければなりません。リストはないローカルサブネット上に存在する他の無関係なコンピュータを含めます。"
例:
- ユーザーは
ssh
任意の Z 単位を入力し、「listLocalSiblings」というコマンド (新しい bash スクリプトでも可) を発行できます。 - Z ユニットはローカル ネットワークの周辺を調査し、他の Z ユニットのみの IP アドレスの簡単なテキスト リストを出力します...
192.168.1.10
192.168.1.11
192.168.1.12
192.168.1.30
192.168.1.37
192.168.1.71
サブネット上には、さまざまなオペレーティング システムを実行している無関係なデバイスが複数存在する可能性があります。これをできるだけパッシブにしたい (たとえば、ポート スキャンや、リスナーが特別な「ping」を待機して応答することを避ける)。
ありますかジェネリックLinux でネットワークデバイスを分類する方法はありますか?
製品に新しいソフトウェアを追加する余裕はありますが、各マシンが持つ可能性のある何らかの固有のシグネチャに基づいてこれを行う方法があれば、それが望ましいでしょう。これまで、マシン同士が互いを見つけるための経路を実際にハードコーディングせずに、マシン同士が互いを「認識」できるようにしようとしたことはありませんでした。
編集: さまざまな理由により、サーバーからこの情報を取得できません。現時点では、サーバーがクラッシュしたか、イーサネット ケーブルがサーバーの背面から引き抜かれたと想定してください。
リストはユーザーに表示され、ユーザーはそれを自由に操作できます。
Z デバイスは、予想どおり、古いデバイスには古いバージョンの Linux システムと古いマザーボードおよび NIC が搭載されていますが、ハードウェアはほぼ同じです。
理想的には、各ユニットに bash スクリプトを配置して実行するだけであればよいのですが、ネットワーク ツールについて十分な知識がないため、これが現実的な見通しであるかどうかはわかりません。
答え1
nmap でスキャンするか、nc でブロードキャスト パケットを送信するか、NetBIOS を使用するか、ルーティング テーブルまたは ARP パケットを悪用します。
IDS をトリガーせずに使用できる既存のネットワーク トラフィック タイプは多数あります。