Linuxでネットワーク上のIPアドレスをスキャンする方法

Linuxでネットワーク上のIPアドレスをスキャンする方法

ネットワーク上のマシンに静的IPアドレスを設定しようとして、どのアドレスが既に使用されているか全く分からなかった経験は、何度ありますか?デスクトップマシンを使っているなら、ネットワークプロトコルアナライザーをインストールすれば、どのアドレスが使用されているか確認できます。しかし、GUIのない​​サーバーの場合はどうでしょうか?IPアドレスをスキャンするのに、グラフィカルベースのツールに頼ることはまずないでしょう。幸いなことに、非常に使いやすいコマンドラインツールでこのタスクを処理できます。

2つの異なるツール(1つはサーバーにデフォルトでインストールされます)を使って、ローカルエリアネットワーク(LAN)で使用中のIPアドレスをスキャンする方法を紹介します。Ubuntu Serverを例に説明します。

参照: Linux 管理者が知っておくべきトップコマンド (TechRepublic Premium)

arpコマンド

このタスクで最初に使用するツールは、組み込みのarpコマンドです。ほとんどのIT管理者は、ほぼすべてのプラットフォームで使用されているため、arpをよく知っています。arp (アドレス解決プロトコルの略) を使ったことがない方のために説明すると、このコマンドはカーネルのIPv4ネットワークネイバーキャッシュを操作(または表示)するために使用します。モード指定子やオプションを指定せずに arp を実行するとARPテーブルの現在の内容が表示されます。ここでは、これは行いません。代わりに、次のようにコマンドを実行します。

arp -a

-a オプションはBSD形式の代替出力を使用し、LAN上で検出されたすべての既知のIPアドレスを表示します。コマンドの出力には、IPアドレスと関連するイーサネットデバイスが表示されます。

arp -a コマンドの実行。
arp -aコマンドの実行例。画像: Jack Wallen

これで、LAN で使用されているすべての IP アドレスのリストができました。唯一の注意点は、(ネットワーク上のすべてのデバイスの MAC アドレスを把握していない限り)どのマシンに IP アドレスが割り当てられているか全く分からないということです。どのマシンにどのアドレスが割り当てられているかが分からなくても、少なくともどのアドレスが使用されているかは分かります。

注意:arpコマンドはIPv4でのみ機能します。IPv6をご利用の場合は、ndpコマンド(Neighbor Discovery Protocolの略)を使用する必要があります。

ndp -a

IPv4アドレスとIPv6アドレスの区別は簡単です。前者はピリオド、後者はコロンを使用します。詳しくはIBMの解説をご覧ください。

参照: Linux のknown_hosts ファイルに SSH フィンガープリントを追加する方法 (TechRepublic)

1台のPaessler PRTGネットワ​​ークモニター

企業規模

企業規模ごとの従業員数

マイクロ(0~49)、スモール(50~249)、ミディアム(250~999)、ラージ(1,000~4,999)、エンタープライズ(5,000以上)

あらゆる規模の企業 あらゆる規模の企業

特徴

アラート/通知、分析/レポート、APIなど

2 ManageEngine Log360

企業規模

企業規模ごとの従業員数

マイクロ(0~49)、スモール(50~249)、ミディアム(250~999)、ラージ(1,000~4,999)、エンタープライズ(5,000以上)

小規模企業(従業員数0~49名)、小規模企業(従業員数50~249名)、中規模企業(従業員数250~999名)、大規模企業(従業員数1,000~4,999名)、エンタープライズ企業(従業員数5,000名以上) 小規模企業、小規模企業、中規模企業、大規模企業、エンタープライズ企業

特徴

アクティビティ監視、ブラックリスト、ダッシュボードなど

Nmap

次に、より多くのオプションを備えたコマンドを使用します。このコマンドはnmap(Network Mapper の略)です。Linuxマシンにはデフォルトでnmapがインストールされていないため、システムに追加する必要があります。ターミナルウィンドウを開くか(またはGUIレスサーバーにログインし)、次のコマンドを実行します。

sudo apt-get install nmap -y

インストールが完了したら、nmapを使ってLANをスキャンする準備が整います。使用中のアドレスを確認するには、次のコマンドを実行します。

nmap -sP 192.168.1.0/24

注:自分の IP アドレス スキームに合わせて IP アドレス スキームを変更する必要があります。

コマンドの出力には、LAN 上で見つかった各アドレスが表示されます。

nmap は LAN 上で見つかった各アドレスを表示します。
nmapはLAN上で見つかった各アドレスを表示します。画像: Jack Wallen

nmapをもっと便利に使いこなしましょう。nmapはより柔軟な機能を備えているため、IPアドレスに関連付けられているオペレーティングシステムも検出できます。そのためには、-sT(TCP接続スキャン)と-O(オペレーティングシステム検出)オプションを使用します。コマンドは以下のとおりです。

sudo nmap -sT -O 192.168.1.0/24

ネットワークの規模によっては、このコマンドの実行に時間がかかる場合があります。ネットワークが大きい場合は、コマンドの出力を次のようにファイルに送信することを検討してください。

sudo nmap -sT -O 192.168.1.0/24 > nmap_output

その後、テキスト エディターでファイルを表示して、IP アドレスに関連付けられているオペレーティング システムを確認できます。

nmap は LAN 上で見つかった各アドレスを表示します。
nmapはLAN上で見つかった各アドレスを表示します。画像: Jack Wallen

これら2つの簡単なコマンドを使えば、ネットワーク上で使用されているIPアドレスを見つけることができます。これで、静的IPアドレスを割り当てる際に、既に使用されているIPアドレスを誤って割り当ててしまうことがなくなります。それがどれほど厄介な問題を引き起こすかは、誰もが知っていることでしょう。

Tagged: