Mac
 Computer >> コンピューター >  >> システム >> Mac

macOSのターミナルでローカルネットワークをスキャンする方法【nmap・arp活用ガイド】

macOSのターミナルでローカルネットワークをスキャンする方法【nmap・arp活用ガイド】

macOSにはネットワーク管理に役立つGUIツールがいくつもありますが、本格的な操作を行いたいなら、やはりターミナルの出番です。ターミナルに馴染みがないとハードルが高く感じられるかもしれませんが、技術の専門家にならなくても、ターミナルを使えば自分のネットワークについて詳しく知ることができます。

macOSはUnix系OSをベースにしているため、豊富なネットワーク関連ツールを利用できます。その中でも特に強力なのが「nmap」です。nmapは他のコマンドと組み合わせることで、ネットワークに関するさまざまな情報を教えてくれます。

nmapでローカルネットワークの開いているポートをスキャンする

nmapはmacOSで使えるコマンドラインのポートスキャナーの中でも最高峰のツールですが、まずインストールが必要です。

Homebrewでnmapをインストールする

パッケージマネージャーのHomebrewがインストール済みなら、次のコマンドを実行するだけでOKです。

brew install nmap

これでnmapと必要な依存ライブラリがまとめてダウンロード・インストールされます。

nmapでスキャンを実行する

nmapは、指定したホスト名やネットワークアドレスをスキャンし、開いているポートの一覧を返すツールです。名前の由来は「network mapper(ネットワークマッパー)」ですが、実際にはポートマッパーとしての側面が強いツールです。

最もシンプルな使い方は、スキャン対象としてIPアドレスまたはIPアドレス範囲を指定することです。ローカルネットワーク上の適切なIPアドレスに置き換えて実行してください。以下のコマンドは、nmapが提供する教育用テストサーバーscanme.nmap.orgをスキャンする例です。

nmap scanme.nmap.org
macOSのターミナルでローカルネットワークをスキャンする方法【nmap・arp活用ガイド】

一定範囲のIPアドレスに対して開いているポートをスキャンする場合は、スラッシュを使います。

nmap 192.168.0.0/24

ルーターやネットワーク上の各デバイスのIPアドレスを調べたいときは、「arp」や「ifconfig」コマンドが便利です。

sudo nmap -A scanme.nmap.org
macOSのターミナルでローカルネットワークをスキャンする方法【nmap・arp活用ガイド】

-Aフラグを付けると、nmapはより積極的なスキャンを行い、大幅に多くの情報を返します。ただし、サーバーのログに自分の存在が明確に記録されてしまう点には注意が必要です。-Aフラグを使うにはsudoでの実行が必須です。sudoコマンドが使えない・使いたくない場合は、sudoなしでnmapを実行する方法を解説したガイドも参考にしてください。

sudo nmap -O scanme.nmap.org

このコマンドは、指定したIPアドレスに対してOS検出(-O)を行います。こちらもsudoでの実行が必要です。

もう少しステルス性を高めてnmapを実行したい場合は、-sSフラグを使用します。

sudo nmap -sS scanme.nmap.org
macOSのターミナルでローカルネットワークをスキャンする方法【nmap・arp活用ガイド】

これは「ハーフオープンスキャン(半開きスキャン)」を強制するもので、TCP SYNパケットを送信してポートが開いているかどうかを確認しますが、肯定応答を受け取ってもACKパケットで応答しません。そのため、リモートサーバーにはスキャンの記録が残らない可能性が高くなります。

-sSフラグをはじめとする各種スキャンモードのスイッチは、sudoでの実行が必要です。たとえば-sPモードスイッチはポートではなくIPアドレスのみをスキャンするもので、後述のarpコマンドに近い動作をします。その他のスキャンモードについては、nmapのmanページを参照してください。

より詳細な結果を得たい場合は、-vvまたは-v3タグを追加しましょう。詳細なログレベルが有効になり、出力が読みやすくなる代わりに長くなります。目的に応じて、これらのフラグが役立つこともあります。

もちろん、nmapの結果をgrepにパイプして、特定の結果だけを絞り込むことも可能です。たとえば22番ポートだけを確認したい場合は、次のようなコマンドを実行します。

nmap scanme.nmap.org | grep "22/tcp"

ポートが利用できない場合は何も表示されず、利用可能な場合はそのポートのステータス行が返されます。

arpでローカルネットワークのアクティブなIPアドレスをスキャンする

arpは、ローカルネットワークに接続されているデバイスをスキャンできます。arpは本来アドレス解決プロトコル(ARP)の作成・変更のためのコマンドなので、ネットワークスキャン用の機能は限られています。しかし、すべてのMacに標準搭載されており、手軽に素早く情報を得られるのが魅力です。

現在ネットワークに接続している応答のあるデバイスの一覧を確認するには、ターミナルを開いて次のコマンドを実行します。

arp -a

これにより、ネットワークに接続中の全デバイスが、IPアドレスとMACアドレス付きで一覧表示されます。

macOSのターミナルでローカルネットワークをスキャンする方法【nmap・arp活用ガイド】

arpの機能はこれくらいシンプルです。「arp -a -i en0」と実行すれば、en0インターフェースからのレポートだけを取得できますが、できることはほぼこれだけです。

よくある質問

1. nmapはハッキングツールなのか?

nmapは悪意ある目的にも使用できなくはありませんが、それ自体がハッキングツールというわけではありません。特に自分のネットワークに対して使う分には、何ら問題ありません。

2. nmapはHomebrewでインストールする必要がある?

いいえ。brewコマンドでのインストールは簡単ですが、nmap公式サイトからmacOS用インストーラーをダウンロードしてインストールすることもできます。

3. nmapはmacOS専用?

いいえ。macOS以外にも、Windows、Linux、FreeBSDやSolarisなど他のUnix系OSでも利用できます。

4. nmapにできるのはこれだけ?

nmapの全機能を紹介するには、記事が数本必要になるほど多機能です。詳しくはnmapのマニュアルを参照してください。

ネットワークツールの組み合わせを活用しよう

nmapは間違いなく最も強力なネットワークツールのひとつですが、それだけがツールキットに入れるべきソフトウェアではありません。たとえば、ifconfigはネットワークインターフェースの情報を取得するのに便利ですし、arpコマンドはネットワーク上の全デバイスを手軽に一括確認するのに役立ちます。

macOSでの選択肢をさらに広げたい方は、USBドライブへのmacOSのインストール方法もチェックしてみてください。

  1. ターミナルを使ってMacの隠しファイル・隠しフォルダを表示する方法

    Windowsと同じように、macOSにもユーザーが不用意に触れないよう隠されている「隠しファイル」が存在します。しかし、トラブルシューティングなどを行う際には、これらの隠しファイルへアクセスする必要が出てくることがあります。 たとえば、ログの確認や設定ファイル(preference file)の削除といった作業を行いたい場合には、隠しファイルの中身を操作する必要があります。また、容量を大きく消費していることから、隠しフォルダ内の不要なファイルを整理・削除したいという方も多いでしょう。 そこで気になるのが「隠しファイルにはどうやってアクセスすればいいのか?」という疑問です。 実は、ターミナル(

  2. リモートデスクトップを安全に使うためのセキュリティ対策8選

    リモートデスクトップのセッションは、常に暗号化された状態で確立されるため、第三者が通信内容を盗み見ることは基本的にできません。しかし、セキュリティ技術が進化すると同時に、悪意ある攻撃者の手法も高度化しています。そのため、安全なリモートセッションを実現するには、SSL/TLSプロトコルの活用など、追加の対策が不可欠です。この記事では、クライアントとサーバー間のリモートデスクトップ接続を安全に保つための具体的な方法をご紹介します。 効果的なリモートデスクトップアクセスでネットワークを守る方法 ネットワークやリモートアクセス接続を保護する方法は数多くありますが、ここでは特に重要な対策を厳選してご紹介