ネットワーク上に不正なDHCPサーバーが存在するかどうかを確認するにはどうすればよいですか?


92

ネットワーク内に不正なDHCPサーバーがあるかどうかを判断するための最善の方法は何ですか?

私は、ほとんどの管理者がこの種の問題にどのように取り組んでいるか疑問に思っています。検索でDHCPプローブを見つけたので、試してみようと考えました。誰もがそれを経験したことがありますか?(コンパイルしてインストールするのに時間をかける前に知りたいです)。

不正なDHCPサーバーを見つけるための便利なツールやベストプラクティスを知っていますか?


2
MSツールと非常に使いやすい!ローグDHCPサーバーの検出- RogueChecker.zipのblogs.technet.com/b/teamdhcp/archive/2009/07/03/...
aa.malta

私はであなたのリンクaa.maltaへの公式の参照を見つけたんsocial.technet.microsoft.com/wiki/contents/articles/...が、リンクは、もはやそれは2009年から私のブログの記事を示し2016年の時点で動作しているように見えますが、私だけを7月6日と6月29日の投稿を参照してください。投稿したリンクURLで示されているように、7月3日の投稿はないようです。MSは、誰がどのような理由でそれを削除したように見えます。
ダニエル

この直接リンク(ワードプレスサイトで見つけた)は、Microsoftサーバーからファイルをダウンロードするように機能しているようです。:リンクURLは、Microsoftですので、私はそれが信頼できると感じ、私は何の保証をしない1月2016のとして働いているblogs.technet.com/cfs-file.ashx/__key/...
ダニエル・

ウェイバックマシンはコピーがあるweb.archive.org/web/20100601022750/http://blogs.technet.com/b/...
antgiant

回答:


54

1つの簡単な方法は、コンピューター上でtcpdump / wiresharkのようなスニファーを実行し、DHCP要求を送信することです。実際のDHCPサーバー以外のオファーが表示された場合は、問題があることがわかります。


28
(のみ示すDHCPの提供のために、異なる/未知のソースからの応答があれば見て)「bootp.type == 2」:次のフィルタを使用して支援します
l0c0b0x

4
DHCP-Find(softpedia.com/get/Network-Tools/Network-IP-Scanner/…)などのプログラムをTCPDump / Wiresharkと組み合わせて使用​​して、DHCP応答をトリガーします。
saluce

1
より具体的なソリューションを提供できますか?
タラバイト

@tarabyte解決策や改善点を提供すべきかわかりません。この質問には他にもたくさんの良い答えがありますか?最近の私のgotoオプションは、Jason Lutherが提案したように、DHCPをブロックするようにスイッチを設定することです。よりよくカバーする必要がある特定の何かがありましたか?
ゾレダチェ

2
私が使用するコマンドのシーケンスのより期待していたtcpdumparp明示的なパラメータおよびそれらのパラメータの説明と、など。
タラバイト16

22

要約して他の回答の一部に追加するには:

本番DHCPサーバーを一時的に無効にし、他のサーバーが応答するかどうかを確認します。

ipconfig /allWindowsマシンで実行することでサーバーのIPアドレスを取得し、次にを使用してそのIPアドレスを検索することでMACアドレスを取得できますarp -a

Macでは、実行ipconfig getpacket en0(またはen1)。http://www.macosxhints.com/article.php?story=20060124152826491を参照してください

DHCPサーバー情報は通常、/ var / log / messagesにあります。 sudo grep -i dhcp /var/log/messages*

もちろん、実稼働DHCPサーバーを無効にすることは良い選択肢ではないかもしれません。

特に不正なDHCPサーバーを探すツールを使用する

ツールのリストについては、http://en.wikipedia.org/wiki/Rogue_DHCPを参照してください(その多くは他の回答に記載されています)。

DHCPオファーをブロックするようにスイッチを構成する

ほとんどの管理対象スイッチは、不正なDHCPサーバーを防ぐように構成できます。



15

Wireshark / DHCPエクスプローラー/ DHCPプローブアプローチは、1回または定期的なチェックに適しています。ただし、ネットワークでのDHCPスヌーピングのサポートを検討することをお勧めします。この機能は、ネットワーク上の不正なDHCPサーバーから常に保護され、多くの異なるハードウェアベンダーによってサポートされています。

Cisco docsに示されている機能セットを次に示します。

•信頼できないソースから受信したDHCPメッセージを検証し、無効なメッセージを除外します。

•信頼できるソースと信頼できないソースからのDHCPトラフィックをレート制限します。

•DHCPスヌーピングバインディングデータベースを構築および維持します。これには、リースされたIPアドレスを持つ信頼できないホストに関する情報が含まれます。

•DHCPスヌーピングバインディングデータベースを使用して、信頼できないホストからの後続の要求を検証します。


2
ジュニパーのDHCPスヌーピングDOC:juniper.net/techpubs/en_US/junos9.2/topics/concept/... のProCurveのDHCPスヌーピング:h40060.www4.hp.com/procurve/uk/en/pdfs/application-notes/...
sclarson

10

dhcploc.exeは、Windowsシステムで最も高速で便利な方法です。XPサポートツールで利用できます。サポートツールはすべてのOEM /小売XPディスクにありますが、一部のOEMが提供する「リカバリディスク」にある場合とない場合があります。MSからダウンロードすることもできます。

シンプルなコマンドラインツールです。dhcploc {yourIPaddress}を実行し、「d」キーを押して偽の発見を行います。キーを押さずに実行したままにすると、すべてのDHCP要求が表示され、応答が聞かれます。「q」を押して終了します。


これを、個々のスイッチポートを削除することと組み合わせて使用​​し、対処している不正な不正サーバーを追跡しました。いい物!
DHayes

1
Windows 7でもDHCPloc.exeを引き続き使用できます。1. [こちら] [1]から「Windows XP Service Pack 2サポートツール」をダウンロードします。2.実行可能ファイルを右クリックして[プロパティ]-> [互換性]を選択し、互換モードをオンにして[Windows XP(Service Pack 3)]に設定します。3.通常どおりインストールします。DHCPLoc.exeは、Win7 x64インストールで正常に動作します。[1]:microsoft.com/en-us/download/details.aspx
id

1
次の場所から実行可能ファイルのみをダウンロードでき、Win 10 x64で正常に動作することに気づきました。gallery.technet.microsoft.com
Utility

9

Scapyは、これらの並べ替えタスクに適したpythonベースのパケット作成ツールです。ここに正確にこれを行う方法の例があります


2
うわー、Scapyは数日間調べた後、とても強力だと思います。dhcpfind.exeやdhcploc.exeなどのくだらないツールを凌しています。Scapy 2.2はLinuxとWindowsで実行できます-私は両方を試しました。唯一の障壁は、Pythonプログラミング言語をある程度知っていて、その力を活用することです。
ジムチェン

投稿したリンクが壊れています
ジェイソンS

@JasonSこんにちは、リンクを更新しましたが、変更はピアレビューを保留しています...待っている間、ここで見つけることができます:bitbucket.org/secdev/scapy/wiki/doc/IdentifyingRogueDHCPServers
Huygens

7

フィルターとしての使用に関するl0c0b0xのコメントを展開しbootp.type == 2ます。bootp.typeフィルターは、Wireshark / tsharkでのみ使用可能です。彼のコメントの文脈上の位置が私を信じさせようとしたtcpdumpでは利用できません。

Tsharkはこれに最適です。

ネットワークを多数のブロードキャストドメインに分割し、それぞれが「ローカル」ブロードキャストドメインおよび管理サブネット上に存在する独自のLinuxベースのプローブを何らかの形で持っています。TsharkとClusterSSHを組み合わせることで、ネットワークのさらに隅にあるDHCPトラフィックまたは(それ以外のもの)を簡単に探すことができます。

これにより、Linuxを使用したDHCP応答が見つかります。

# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'

非常に参考になりました。私はかなりの時間を費やして、なぜ自分が取得したのかを理解しようとしましたtcpdump: syntax error。質問を投稿しても、あなたの答えは私をブロックしませんでした、ありがとう!networkengineering.stackexchange.com/questions/39534/...
イライジャ・リン

1
また、で何かが変わったと思います-R <Read filter>。私は得るtshark: -R without -2 is deprecated. For single-pass filtering use -Y.-Yうまく動作します。
イライジャ・リン

6

ネットワーク上に不正なdhcpサーバーがあることを確認したら、それを解決する最も簡単な方法を見つけました...

会社全体に次のようなメールを送信します。

「あなたの誰がLANにワイヤレスルーターを追加したか、あなたは他の皆のためにインターネットを殺しました」

羊のような反応、または競合するデバイスがすぐに消えることを期待してください:)


3

メインDHCPサーバーを無効にし、接続を(再)構成します。

IPアドレスを取得した場合、不正が発生しています。

便利なLinuxがある場合、標準のdhcpclientはDHCPサーバーのIPアドレスを通知します(そうでない場合は、DHCP応答の送信元を確認するためにトラフィックをスニッフィングできます)。


2
これは、コースワークのでしょうが、あなたが実際に懸念している場合は、生産DHCPサーバを停止することは、おそらく最善のアプローチではないサービスを提供する ...
マッシモ

2
あなたが仕えている人の数に依存します。ほとんどの場合、数分でサービスを中断できます。特に、ほとんどの人がすでにリースを所有している日中は特に誰も気付かないでしょう。
ビンコヴサロビッチ

3

いくつかの方法があります。小規模なネットワークを実行している場合、最も簡単な方法は、dhcpサーバーをオフ/無効化/アンプラグし、クライアントでipconfig / renewまたは同様のコマンドを実行することです。通信網。

別の方法は、Wiresharkパケットキャプチャー/アナライザーを使用してネットワークトラフィックを調べ、DHCP接続を見つけることです。これを行う方法に関するラボワークシートがここから利用できます

また、これを行うために利用できるユーティリティが多数あります。これはDHCPエクスプローラーであり、別のDHCPプローブは元の投稿で言及したものです。


3

2

ネットワークのpingスイープを実行し、それをDHCPサーバーから渡されたDHCPリースの数と比較できます。

静的デバイス(ルーターインターフェイスとプリンター)の数について一般的な考えを持っている必要がありますが、これはこの数をわずかにゆがめますが、これは複数のネットワークでそれらを識別する迅速かつ正確な方法です。


0

debian / ubuntuには、使用するオプションdhcpdumptcpdump、たとえば、dhclient

dhcpdumpを使用します。

  • 1.a)dhcpdump -i eth01つのシェル/シェル(eth0またはインターフェイスの名前)で実行します
  • 1.b)dhclient別のシェルで起動します(正常に実行する必要はありません)
  • 1.c)dhcpdump情報の出力を確認します(最も詳細な、書式が整った有益なリストである必要があります)

dhcpdumpを使用したくない場合のオプション2:

  • 2.a)tcpdump -i eth0 -t -n > /tmp/my_file.txt1つのシェル/ウィンドウで実行
    (オプション:-t=タイムスタンプを無効にする// -n=名前解決を無効にし、IPアドレスのみ、サーバー名なし(RHEL / centosでは-nnを使用))
  • 2.b)dhclient別のシェルで起動します(正常に実行する必要はありません)
  • 2.c)実行中のtcpdump()を停止します
  • 2.d)お気に入りのエディターでファイル/tmp/my_file.txtを調べて、「。53」(デフォルトのDNSポート)/「NX」/「CNAME」/「A?」などを検索します。/「AAAA」-

*補足:tcpdumpおよびdhcpdumpはおそらくインストールする必要があります(例:)sudo apt get install tcpdump dhcpdump。dhcpdumpはtcpdumpに依存しています


0

監視用とリクエスト送信用の2つの端末を起動することをお勧めします。Terminal1は、MACアドレスを含む既存のすべてのDHCPサーバーからの応答を表示します。この例はUbuntuで実行されました。

ターミナル1(監視用):

sudo tcpdump -nelt udp port 68 | grep -i "boot。* reply"

tcpdump:詳細な出力を抑制し、enp2s0、リンクタイプEN10MB(イーサネット)でリッスンする完全なプロトコルデコードに-vまたは-vvを使用し、キャプチャサイズ262144バイト20:a6:80:f9:12:2f> ff:ff:ff: ff:ff:ff、ethertype IPv4(0x0800)、長さ332:192.168.1.1.67> 255.255.255.255.68:BOOTP / DHCP、返信、長さ290 00:23:cd:c3:83:8a> ff:ff :ff:ff:ff:ff、ethertype IPv4(0x0800)、長さ590:192.168.1.253.67> 255.255.255.255.68:BOOTP / DHCP、応答、長さ548

ターミナル2(リクエスト送信用):

sudo nmap --script broadcast-dhcp-discover -e eth0

NEST 7.01(https://nmap.org)を2019-10-13 21:21 EESTプレスキャンスクリプト結果で開始:| broadcast-dhcp-discover:| 応答1の1:| 提供されるIP:192.168.1.228 | DHCPメッセージタイプ:DHCPOFFER | IPアドレスのリース時間:2h00m00s | サーバー識別子:192.168.1.1 | サブネットマスク:255.255.255.0 | ルーター:192.168.1.1 | _ドメインネームサーバー:8.8.8.8、8.8.4.4警告:ターゲットが指定されていないため、0個のホストがスキャンされました。Nmap完了:0.94秒でスキャンされた0個のIPアドレス(0個のホスト)

その監視端末は、すべての応答を確認するためにのみ必要です(nmapは最初の応答のみを表示できます)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.