我們有一個基於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 系統以及較舊的主機板和網路卡(正如您所期望的那樣)。
理想情況下,最好在每個單元上放置一個 bash 腳本並運行它,但我對網路工具了解不夠,不知道這是否是一個現實的前景。
答案1
使用 nmap 進行掃描,或使用 nc 傳送廣播封包,或使用 NetBIOS,或透過濫用路由表或 ARP 封包。
有許多現有的網路流量類型可以在不觸發 IDS 的情況下使用。