Linuxでnmapを使ってネットワーク上の全デバイスを確認する方法

  • Linuxコンピュータにnmapがインストールされていない場合、インストールします。Ubuntuでは「sudo apt-get install nmap」、Fedoraでは「sudo dnf install nmap」を実行します。
  • nmapを使ってネットワークをスキャンし、接続されているデバイスのIPアドレスを検出します。クイックスキャン(-snオプション)を実行するか、デバイス上のポートをプローブするディープスキャンを実行できます。

自宅のネットワークに何が接続されているか知っていますか?驚くかもしれません。Linuxでnmapを使って確認する方法を学びましょう。ネットワークに接続されているすべてのデバイスを調べることができます。

自宅のネットワークはシンプルで、深く調べる必要はないかもしれません。それは正しいかもしれませんが、知らなかったことを学ぶ可能性があります。ブロードバンドルーター、ノートパソコン、デスクトップコンピューターなどの「通常の」ネットワークデバイスに加えて、IoTデバイス、携帯電話やタブレットなどのモバイルデバイス、スマートホーム革命が普及しているため、目から鱗かもしれません。

必要に応じて、nmapをインストール

nmapコマンドを使用します。コンピューターにインストールされている他のソフトウェアパッケージによっては、nmapがすでにインストールされている場合があります。

そうでない場合、Ubuntuにインストールする方法は次のとおりです。

sudo apt-get install nmap

Fedoraにインストールする方法は次のとおりです。

sudo dnf install nmap

Manjaroにインストールする方法は次のとおりです。

sudo pacman -Syu nmap

Linuxディストリビューションのパッケージマネージャーを使用して、他のバージョンのLinuxにインストールできます。

IPアドレスを見つける

最初のタスクは、LinuxコンピューターのIPアドレスを検出することです。ネットワークで使用できる最小限と最大限のIPアドレスがあります。これは、ネットワークのIPアドレスの範囲または範囲です。nmapにIPアドレスまたはIPアドレスの範囲を提供する必要があるため、それらの値を知っておく必要があります。

Linuxでは、ipというコマンドが用意されており、addr(アドレス)というオプションがあります。ip、スペース、addrと入力して、Enterキーを押します。

ip addr

出力の一番下には、IPアドレスがあります。「inet」というラベルが付いています。

このコンピューターのIPアドレスは「192.168.4.25」です。「/24」は、サブネットマスクに連続する8つの1が3セットあることを意味します。(そして3 x 8 = 24)

2進数では、サブネットマスクは次のとおりです。

11111111.11111111.11111111.00000000

10進数では、255.255.255.0です。

サブネットマスクとIPアドレスは、IPアドレスのどの部分がネットワークを識別し、どの部分がデバイスを識別するかを示すために使用されます。このサブネットマスクは、IPアドレスの最初の3つの数字がネットワークを識別し、IPアドレスの最後の部分が個々のデバイスを識別することをハードウェアに通知します。また、8ビット2進数で保持できる最大の数が255であるため、このネットワークのIPアドレス範囲は192.168.4.0から192.168.4.255になります。

それらはすべて「/24」にカプセル化されています。幸いなことに、nmapはその表記で動作するため、nmapの使用を開始するために必要なものがあります。

nmapを使い始める

nmapはネットワークマッピングツールです。提供する範囲内のIPアドレスにさまざまなネットワークメッセージを送信することで動作します。取得した応答の種類を判断して解釈することにより、プローブしているデバイスについて多くのことを推測できます。

nmapでシンプルなスキャンを開始しましょう。-sn(ポートスキャンなし)オプションを使用します。これは、nmapに当面はデバイスのポートをプローブしないように指示します。軽量で高速なスキャンを実行します。

それでも、nmapの実行には少し時間がかかる場合があります。もちろん、ネットワーク上のデバイスが多いほど、時間がかかります。最初にプローブと偵察の作業をすべて行い、第1フェーズが完了すると結果が表示されます。1分程度何も表示されない場合は驚かないでください。

使用するIPアドレスは、前にipコマンドを使用して取得したものですが、最後の数字は0に設定されています。これは、このネットワークで最初に可能なIPアドレスです。「/24」は、nmapにこのネットワークの範囲全体をスキャンするように指示します。パラメーター「192.168.4.0/24」は「IPアドレス192.168.4.0から開始し、192.168.4.255までのすべてのIPアドレスを処理する」と解釈されます。

sudoを使用していることに注意してください。

sudo nmap -sn 192.168.4.0/24

少し待つと、出力がターミナルウィンドウに書き込まれます。

sudoを使用せずにこのスキャンを実行できますが、sudoを使用すると、可能な限り多くの情報を抽出できます。たとえば、sudoを使用せずにこのスキャンを実行すると、製造元情報は返されません。

-snオプションを使用することの利点は、高速かつ軽量なスキャンであるだけでなく、アクティブなIPアドレスのリストをきれいに提供することです。言い換えると、ネットワークに接続されているデバイスのリストと、そのIPアドレスが得られます。そして可能な場合、nmapは製造元を特定しました。これは最初の試みとしては悪くないでしょう。

リストの最後を次に示します。

接続されているネットワークデバイスのリストを作成したので、その数がわかります。ネットワークに接続され、電源が入っているデバイスは15台です。そのうち一部の製造元はわかります。または、後で説明するように、nmapが可能な限り製造元として報告したものがあります。

結果を調べると、認識できるデバイスが表示されるでしょう。認識できないものもあるかもしれません。これらはさらに調査する必要があるものです。

これらのデバイスのいくつかは私には明らかです。Raspberry Pi Foundationは説明するまでもありません。Amazon Technologiesのデバイスは私のEcho Dotでしょう。私が持っている唯一のSamsungデバイスはレーザープリンターなので、それが絞り込まれます。Dellによって製造されたとリストされているデバイスがいくつかあります。それらは簡単です。PCとラップトップです。Avayaデバイスは、本社で電話システムの拡張機能を提供するVoice Over IP電話です。これにより、自宅でより簡単に迷惑をかけられるので、そのデバイスにはよく気づいています。

しかし、まだ疑問が残っています。

私にはまったく意味のない名前のデバイスがいくつかあります。たとえば、Liteon TechnologyとElitegroup Computer Systemsです。

私は(はるかに)複数のRaspberry PIを持っています。ネットワークに接続されている数は、再イメージ化や再利用のために継続的に交換されるため、常に異なります。しかし、間違いなく1つ以上表示されるはずです。

不明としてマークされたデバイスがいくつかあります。明らかに、それらを調べる必要があります。

より詳細なスキャンを実行

-snオプションを削除すると、nmapはデバイスのポートのプローブも試みます。ポートは、デバイスのネットワーク接続の番号付きエンドポイントです。集合住宅を考えてみましょう。すべてのアパートには同じ住所(IPアドレスに相当)がありますが、各アパートには独自の番号(ポートに相当)があります。

デバイス内の各プログラムまたはサービスにはポート番号があります。ネットワークトラフィックは、IPアドレスだけでなく、IPアドレスとポートに配信されます。一部のポート番号は事前に割り当てられているか予約されています。これらは常に特定の種類のネットワークトラフィックを伝送するために使用されます。たとえば、ポート22はSSH接続用に予約されており、ポート80はHTTP Webトラフィック用に予約されています。

nmapを使用して各デバイスのポートをスキャンし、どのポートが開いているかを伝えます。

nmap 192.168.4.0/24

今回は、各デバイスの詳細な概要が得られます。ネットワークには13のアクティブデバイスがあると伝えられます。ちょっと待ってください。先ほどは15台ありました。

これらのスキャンを実行すると、デバイスの数が大きく異なる場合があります。これは、モバイルデバイスが構内に出入りしたり、機器の電源を入れたり切ったりすることが原因である可能性があります。また、電源を切っていたデバイスの電源を入れると、前回使用したときと同じIPアドレスにならない場合があることに注意してください。同じになるかもしれませんが、ならないかもしれません。

出力がたくさんありました。もう一度実行してファイルに保存しましょう。

nmap 192.168.4.0/24 > nmap-list.txt

これで、lessでファイルをリストし、必要に応じて検索できます。

less nmap-list.txt

nmapレポートをスクロールして、説明できないものや異常に見えるものを探します。リストを確認するときは、さらに調査したいデバイスのIPアドレスをメモしてください。

前に生成したリストによると、192.168.4.10はRaspberry Piです。これはLinuxディストリビューションのいずれかを実行しています。では、445ポートを使用しているのは何でしょうか?それは「microsoft-ds」として記述されています。Linuxを実行しているPiのMicrosoft?確かに調べてみましょう。

192.168.4.11は、以前のスキャンでは「不明」としてタグ付けされていました。開いているポートがたくさんあります。それが何であるかを知る必要があります。

192.168.4.18もRaspberry Piとして識別されました。しかし、そのPiとデバイス192.168.4.21の両方にポート8888が開いており、これは「sun-answerbook」によって使用されていると説明されています。Sun AnswerBookは、何年も前に廃止された(基礎的な)ドキュメント検索システムです。言うまでもなく、私はそれをどこにでもインストールしていません。確認する必要があります。

デバイス192.168.4.22は、以前は「printer」というタグで確認されたSamsungプリンターとして識別されました。私の目を引いたのは、HTTPポート80が存在し、開いていることでした。このポートはWebサイトのトラフィック用に予約されています。私のプリンターにはWebサイトが組み込まれていますか?

デバイス192.168.4.31は、Elitegroup Computer Systemsという会社によって製造されていると伝えられています。私はそれについて聞いたことがなく、デバイスには多くのポートが開いているので、調べてみます。

デバイスが開いているポートが多いほど、サイバー犯罪者が侵入する可能性が高くなります(つまり、インターネットに直接さらされている場合)。それは家のようです。ドアや窓が多いほど、泥棒が侵入する可能性が高くなります。

容疑者を並べたので、話してもらいましょう

デバイス192.168.4.10はポート445が開いているRaspberry Piで、「microsoft-ds」として記述されています。インターネットを少し検索すると、ポート445は通常Sambaに関連付けられていることがわかります。Sambaは、MicrosoftのServer Message Blockプロトコル(SMB)の無料ソフトウェア実装です。SMBは、ネットワークを介してフォルダーとファイルを共有する方法です。

これは理にかなっています。私はその特定のPiを一種のミニネットワーク接続ストレージデバイス(NAS)として使用しています。Sambaを使用しているため、ネットワーク上のどのコンピューターからでも接続できます。わかりました。簡単でした。1つ終了し、あと数個残っています。

開いているポートが多数ある不明なデバイス

IPアドレス192.168.4.11のデバイスは、製造元が不明で、開いているポートが多数ありました。

nmapをより積極的に使用して、デバイスからより多くの情報を引き出そうとすることができます。-A(積極的なスキャン)オプションにより、nmapはオペレーティングシステムの検出、バージョンの検出、スクリプ​​トのスキャン、およびtracerouteの検出を使用するように強制されます。

-T(タイミングテンプレート)オプションを使用すると、0から5の値を指定できます。これにより、タイミングモードの1つが設定されます。タイミングモードには、パラノイア(0)、こそこそ(1)、礼儀正しい(2)、普通(3)、攻撃的(4)、狂気(5)という素晴らしい名前があります。数字が小さいほど、nmapが帯域幅や他のネットワークユーザーに与える影響が少なくなります。

nmapにIP範囲を提供していないことに注意してください。nmapを1つのIPアドレス、つまり問題のデバイスのIPアドレスに焦点を当てています。

sudo nmap -A -T4 192.168.4.11

この記事を調査するために使用したマシンでは、nmapがそのコマンドを実行するのに9分かかりました。出力が表示されるまでしばらく待つ必要がある場合は、驚かないでください。

残念ながら、この場合、出力には期待した簡単な答えは得られませんでした。

学んだもう1つのことは、Linuxのバージョンが実行されていることです。私のネットワークではそれは大きな驚きではありませんが、このバージョンのLinuxは奇妙です。かなり古いようです。Linuxはほとんどすべてのモノのインターネットデバイスで使用されているため、手がかりになる可能性があります。

出力のさらに下で、nmapはデバイスのメディアアクセス制御アドレス(MACアドレス)を教えてくれました。これは、ネットワークインターフェイスに割り当てられた一意の参照です。

MACアドレスの最初の3バイトは、組織的に一意の識別子(OUI)として知られています。これを使用して、ネットワークインターフェイスのベンダーまたは製造元を識別できます。たまたま35,909のデータベースをまとめたオタクなら、可能です。

私のユーティリティは、それがGoogleに属していると言っています。Linuxの奇妙なバージョンに関する以前の質問と、それがモノのインターネットデバイスである可能性があるという疑いで、これは私のGoogle Home miniスマートスピーカーを正しく指し示しています。

Wireshark Manufacturer Lookupページを使用して、オンラインで同じ種類のOUIルックアップを実行できます。

励みになるのは、それが私の結果と一致することです。

デバイスのIDを確実に知るには、スキャンを実行し、デバイスの電源を切り、もう一度スキャンします。2番目の結果から欠落しているIPアドレスは、電源を切ったばかりのデバイスになります。

Sun AnswerBook?

次の謎は、IPアドレス192.168.4.18のRaspberry Piの「sun-answerbook」の説明でした。同じ「sun-answerbook」の説明が、192.168.4.21のデバイスに表示されていました。デバイス192.168.4.21はLinuxデスクトップコンピューターです。

nmapは、既知のソフトウェアの関連付けのリストから、ポートの使用状況を推測します。もちろん、これらのポートの関連付けのいずれかが適用されなくなった場合(おそらく、ソフトウェアが使用されなくなり、寿命が尽きた場合)、スキャン結果に誤解を招くポートの説明が表示される場合があります。これがここでの場合であった可能性があります。Sun AnswerBookシステムは1990年代初頭にさかのぼり、聞いたことのある人にとっては遠い記憶にすぎません。

したがって、それが古いSun Microsystemsソフトウェアではない場合、Raspberry Piとデスクトップの2つのデバイスに共通点がある可能性はありますか?

インターネット検索では、役に立つものは何も見つかりませんでした。ヒット数は多かったです。ポート80を使用したくないWebインターフェイスを備えたものは何でも、フォールバックとしてポート8888を選択しているようです。そのため、次の論理的なステップは、ブラウザを使用してそのポートに接続してみることでした。

ブラウザのアドレスとして192.168.4.18:8888を使用しました。これは、ブラウザでIPアドレスとポートを指定する形式です。コロン:を使用して、IPアドレスとポート番号を区切ります。

確かにWebサイトが開きました。

それは、Resilio Syncを実行しているすべてのデバイスの管理ポータルです。

私は常にコマンドラインを使用しているので、この機能を完全に忘れていました。したがって、Sun AnswerBookエントリリストは完全な赤ニシンであり、ポート8888の背後にあるサービスが識別されました。

隠されたWebサーバー

次に、確認するために記録した問題は、プリンターのHTTPポート80でした。ここでも、nmapの結果からIPアドレスを取得し、ブラウザのアドレスとして使用しました。ポートを指定する必要はありませんでした。ブラウザはデフォルトでポート80になります。

見よ。私のプリンターには組み込みのWebサーバーがあります。

これで、通過したページ数、トナーのレベル、およびその他の有用または興味深い情報を確認できます。

別の不明なデバイス

これまでのところ試したnmapスキャンでは、192.168.4.24のデバイスは何も明らかにしませんでした。

-Pn(pingなし)オプションを追加しました。これにより、nmapはターゲットデバイスが起動していることを想定し、他のスキャンに進みます。これは、想定通りに反応せず、オフラインであるとnmapが誤解するデバイスに役立ちます。

sudo nmap -A -T4 -Pn 192.168.4.24

これは情報のダンプを取得しましたが、デバイスを特定するものはありませんでした。

Mandriva LinuxのLinuxカーネルが実行されていると報告されました。Mandriva Linuxは、2011年に廃止されたディストリビューションでした。OpenMandrivaとして、新しいコミュニティのサポートを受けて存続しています。

モノのインターネットデバイスの可能性もありますか?おそらくそうではありません。私は2つしか持っておらず、どちらも説明がつきました。

部屋を歩き回り、物理的なデバイスを数えても何も得られませんでした。MACアドレスを調べてみましょう。

結局のところ、それは私の携帯電話でした。

Wireshark Manufacturer Lookupページを使用して、オンラインでこれらのルックアップを実行できることを忘れないでください。

Elitegroup Computer Systems

最後に残った2つの質問は、LiteonとElitegroup Computer Systemsという認識できない名前の製造元を持つ2つのデバイスに関するものでした。

方向転換してみましょう。ネットワーク上のデバイスのIDを特定するのに役立つもう1つのコマンドはarpです。arpは、Linuxコンピューターのアドレス解決プロトコルテーブルを操作するために使用されます。IPアドレス(またはネットワーク名)からMACアドレスに変換するために使用されます。

arpがコンピューターにインストールされていない場合は、次のようにインストールできます。

Ubuntuでは、apt-getを使用します。

sudo apt-get install net-tools

Fedoraでは、dnfを使用します。

sudo dnf install net-tools

Manjaroでは、pacmanを使用します。

sudo pacman -Syu net-tools

デバイスとそのネットワーク名のリストを取得するには(割り当てられている場合)、arpと入力してEnterキーを押します。

これは私の調査マシンの出力です。

1番目の列の名前は、デバイスに割り当てられたマシン名(ホスト名またはネットワーク名とも呼ばれます)です。そのうちのいくつかは私が設定したもの(たとえば、Nostromo、Cloudbase、Marineville)で、製造元が設定したもの(たとえば、Vigor.router)もあります。

この出力により、nmapの出力と相互参照する2つの方法が得られます。デバイスのMACアドレスがリストされているため、nmapの出力を参照してデバイスをさらに識別できます。

また、マシン名とpingを使用でき、pingは基になるIPアドレスを表示するため、pingを各名前で順番に使用することで、マシン名とIPアドレスを相互参照できます。

たとえば、Nostromo.localをpingして、そのIPアドレスを確認してみましょう。マシン名は、大文字と小文字を区別しないことに注意してください。

ping nostromo.local

Ctrl+Cを使用してpingを停止する必要があります。

出力には、そのIPアドレスが192.168.4.15であることが示されています。そして、それはLiteonが製造元として表示された最初のnmapスキャンで表示されたデバイスです。

Liteon社は、多くのコンピューターメーカーが使用するコンピューターコンポーネントを製造しています。この場合、それはAsusラップトップの内部のLiteon Wi-Fiカードです。したがって、前述したように、nmapによって返される製造元の名前は、単なる推測にすぎません。nmapがLiteon Wi-FiカードがAsusラップトップに取り付けられていることをどうやって知ることができたのでしょうか?

そして最後に。Elitegroup Computer Systemsが製造したデバイスのMACアドレスは、LibreELEC.localという名前を付けたデバイスのarpリストのMACアドレスと一致します。

これは、LibreELECメディアプレーヤーを実行しているIntel NUCです。したがって、このNUCには、Elitegroup Computer Systems社のマザーボードが搭載されています。

そして、すべての謎が解決されました。

すべて説明がつきました

このネットワークに説明できないデバイスがないことを確認しました。ここで説明した手法を使用して、ネットワークを調査することもできます。内なるオタクを満足させるために、興味本位でこれを行うことも、ネットワークに接続されているすべてのものが存在する権利があることを確認するために行うこともできます。

接続されたデバイスには、さまざまな形とサイズがあることに注意してください。私は奇妙なデバイスを追跡しようとしてしばらく右往左往していましたが、それが実際には手首のスマートウォッチであることに気づきました。

関連:開発者と愛好家向けの最高のLinuxラップトップ