Watch

Mac OS X 用 Nmap はネットワークの探索、ポートのスキャンなどを行います

Mac OS X 用 Nmap はネットワークの探索、ポートのスキャンなどを行います

Mac OS X用のnmap

Nmapは、強力なコマンドラインネットワーク検出ユーティリティです。ネットワークインベントリ、ホストの応答時間と稼働時間の確認、ポートスキャン、OSとファイアウォールの検出などによるセキュリティ監査を実行できます。無料(かつオープンソース)で、多くのバージョンのLinuxに付属していますが、Mac OS Xには標準で付属していないため、別途インストールする必要があります。Nmapは一般的にかなり高度なツールですが、ネットワーク管理者やセキュリティ専門家ではない人でも役立つアプリケーションが豊富に用意されており、簡単なネットワーク設定タスクやトラブルシューティングにも役立ちます。


nmapをインストールする際には、ncat、zenmap(X11が必要)、ndiff、npingなど、ネットワーク検出ユーティリティ一式をインストールするオプションもあります。これらも便利なツールなので、インストール時にすべてインストールしておくことをお勧めします。

Mac OS XにNmapをインストールする方法

DMG インストーラーを使用するのが最も簡単な方法ですが、ソースから自分で nmap を構築したり、Homebrew や MacPorts などを通じて入手したりすることもできます。

nmap.org から nmap の dmg インストーラーをダウンロードするには:

  • Mac OS X用のnmapを入手する(無料)
  • dmg からインストールします。Gatekeeper の警告がまだ有効になっている場合は、右クリックして「開く」を選択して回避してください。
  • nmap スイート全体をインストールするか、ncat、ndiff、nping などをインストールするかどうかを選択的に選択します。

Homebrew を使用して Mac に Nmap をインストールするには、次のコマンドを実行します。

brew install nmap

再起動する必要はありませんが、パス内で nmap が見つかるように、ターミナルを更新するか、新しいターミナルを開く必要があります。

Nmapの使用例

NmapはLANとWANの両方のIPアドレスに対応しており、用途はほぼ無限ですが、ここではよく使われる簡単なトリックをいくつか紹介します。Mac OS Xマシンから返される情報が非常に少ないことは珍しくありません。特にソフトウェアファイアウォールが有効で共有サービスが有効になっていない場合、その傾向が顕著です。一方、Windows PCやWindowsマシンのネットワークをスキャンすると、Windowsファイアウォールが有効であっても、膨大な情報が得られ、多くのサービスが明らかになることがよくあります。

ローカルホスト上の開いているポートを見つける

Nmap を使用すると、ローカルホスト (つまり、自分のコンピューター) で開いているポートを簡単に見つけることができます。

nmap localhost

次のような内容が報告されることがあります。

PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
445/tcp open microsoft-ds
548/tcp open afp
6817/tcp open unknown

これにより、SSH/SFTP、HTTP、Samba、および Apple ファイル共有プロトコルがすべてローカルホスト Mac 上で開いていることがわかり、どのポートで実行されているかが表示されます。

Macの場合、システム環境設定の「共有」パネルで様々なオプションを直接切り替えると、SSHサーバーやSFTPサーバーの起動、リモートログインの有効化、MacまたはWindows、あるいはその両方のファイル共有のオン/オフ、画面共有など、実行中のものに直接影響します。また、ローカルWebサーバー(超高速のPython httpサーバーでも)を起動していた場合は、それらも実行中になっているはずです。

ローカルネットワークのIPアドレスの範囲をスキャンして一覧表示する

ローカルネットワーク上の他のマシンの情報も確認できます。LANのIPアドレス範囲は192.168.0.1から192.168.0.25と仮定します。必要に応じて数字を変更してください。

nmap -sP 192.168.0.1-25

範囲がわからない場合は、ワイルドカードを使用することもできます。

nmap 192.168.0.*

オペレーティングシステムのスキャンと検出

上記と同じIP範囲の概念を用いて、ネットワーク上のマシンで実行されているオペレーティングシステムとそのバージョンを特定することができます。必ずしもうまくいくとは限りませんが、試してみる価値はあります。

nmap -O 192.168.0.1-5

何も報告されない場合は (珍しいことではありません)、代わりに –osscan-guess フラグを使用して、検出されたサービスに基づいてどの OS が実行されているかを推測してみてください。

nmap --osscan-guess 192.168.0.2

代替DNSサーバーとトレースルートでNmapを使用する

Nmapは、インターネット接続、WANの問題、公開されている資産のトラブルシューティングにも非常に役立ちます。ネットワークの問題が自分のネットワークにあるのか、ISPにあるのか、それともどこか他の場所にあるのかを判断する際にも役立ちます。–tracerouteと–dns-serversフラグを使用すると、何がどこで起こっているのかを特定するのに役立ちます。–dns-serversフラグは、特定のリモートIPにアクセスできないのに、ホストが実際に利用できないのか、それともDNSサーバーに問題があるのか​​わからない場合に特に役立ちます。

–dns-servers フラグは、そのスキャンにおけるシステムDNS設定を上書きします。ここでは、nmapを使ってyahoo.comの代替DNS(例で使用しているGoogleのDNSサーバー)をスキャンします。

nmap --dns-servers 8.8.8.8 yahoo.com

この例では、yahoo.com が代替 DNS 経由では利用可能であるものの、–dns-servers を指定しないと利用できない場合は、ホスト自体ではなく、使用している DNS サーバーに問題がある可能性があります。

–traceroute フラグは、スキャンにおなじみのトレース ルート機能を組み込みます。これは sudo 経由で root として実行する必要があることに注意してください。

sudo nmap --traceroute yahoo.com

その他のリソース

Nmap には上で説明したもの以外にも多くの機能があり、次のように入力すると、使用可能なコマンドとフラグの完全なリストが表示されます。

nmap --help

または、マニュアルページを呼び出すことによって:

man nmap

さらに詳しく知りたい場合は、nmap の Web サイトにも優れたリソースが豊富に用意されており、詳細なドキュメントも提供されています。