
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 サイトにも優れたリソースが豊富に用意されており、詳細なドキュメントも提供されています。