ネットワーク内に不正なDHCPサーバーがあるかどうかを判断するための最善の方法は何ですか?
ほとんどの管理者がこの種の問題にどのように取り組んでいるのだろうと思います。検索で DHCPプローブ が見つかり、試してみようと考えました。誰かがそれを経験したことがありますか? (時間をかけてコンパイルしてインストールする前に知っておきたい)。
不正なDHCPサーバーを見つけるための便利なツールやベストプラクティスを知っていますか?
1つの簡単な方法は、tcpdump/wiresharkなどのスニファをコンピュータで実行し、DHCP要求を送信することです。実際のDHCPサーバーから他のオファーが表示された場合は、問題があることがわかります。
要約して他の回答のいくつかに追加するには:
一時的に運用DHCPサーバーを無効にして、他のサーバーが応答するかどうかを確認します。
Windowsマシンでipconfig /all
を実行してサーバーのIPアドレスを取得できます。次に、arp -a
を使用してそのIPアドレスを検索することにより、MACアドレスを取得できます。
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サーバーを防止するように構成できます。
Wireshark/DHCP Explorer/DHCPプローブアプローチは、1回または定期的なチェックに適しています。ただし、ネットワークでの DHCP Snooping サポートを調べることをお勧めします。この機能は、ネットワーク上の不正なDHCPサーバーから常に保護し、さまざまなハードウェアベンダーによってサポートされています。
Cisco docs に示されている機能セットを次に示します。
•信頼できないソースから受信したDHCPメッセージを検証し、無効なメッセージを除外します。
•信頼できるソースと信頼できないソースからのDHCPトラフィックをレート制限します。
•DHCPスヌーピングバインディングデータベースを構築および維持します。このデータベースには、リースされたIPアドレスを持つ信頼できないホストに関する情報が含まれています。
•DHCPスヌーピングバインディングデータベースを利用して、信頼できないホストからの後続の要求を検証します。
dhcploc.exe は、Windowsシステムで最も速くて便利な方法です。これは、XPサポートツールで利用できます。サポートツールは、すべてのOEM /小売店にありますXPディスクですが、「リカバリディスク」にある場合とない場合があります。一部のOEMから提供されています ダウンロード MSから入手することもできます。
シンプルなコマンドラインツールです。 dhcploc {yourIPaddress}を実行し、 'd'キーを押して偽の検出を行います。キーを押さずに実行したままにすると、すべてのDHCP要求が表示され、応答が聞こえます。 「q」を押して終了します。
Scapyはpythonベースのパケットクラフトツールであり、これらのソートタスクに適しています。これを正確に行う方法の例があります here )。
フィルターとしてのbootp.type == 2
の使用に関する l0c0b0x のコメントを拡張するには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'
不正なdhcpサーバーがネットワーク上にあることを確認したら、それを解決する最も速い方法は...
会社全体にメールラウンドを送信します。
「LANにワイヤレスルーターを追加したのはどれですか。他のすべての人のためにインターネットを停止しました。」
羊のような反応、または競合するデバイスがすぐに消えることを期待してください:)
MicrosoftのRogueCheckerを使用できます。
元のリンク: http://blogs.technet.com/b/teamdhcp/archive/2009/07/03/rogue-dhcp-server-detection.aspx
この情報も読んでください:
メインDHCPサーバーを無効にし、接続を(再)構成します。
IPアドレスを取得した場合は、不正が発生しています。
Linuxが手元にある場合は、標準のdhcpclientがDHCPサーバーのIPアドレスを通知します(そうでない場合は、トラフィックを傍受してDHCP応答の送信元を確認できます)。
いくつかの方法があります。小規模なネットワークを実行している場合、最も簡単な方法は、dhcpサーバーをオフ/無効化/取り外し、次にクライアントでipconfig/renewまたは同様のものを実行し、IPを取得して何か問題がある場合です。通信網。
別の方法は、 Wireshark パケットキャプチャー/アナライザーを使用してネットワークトラフィックを調べ、DHCP接続を見つけることです。これを行う方法についてのラボワークシートに ここ からアクセスできます。
これを実行するために利用できるユーティリティがいくつかあります DHCP Explorer もう1つは、元の投稿で言及したDHCPプローブです。
ネットワークのpingスイープを実行し、それをDHCPサーバーから渡されたDHCPリースの数と比較できます。
静的デバイス(ルーターインターフェイスとプリンターなど)の数を大まかに把握する必要がありますが、これにより、この数がわずかにずれますが、これは、複数のネットワークでデバイスを識別するための迅速かつ正確な方法です。
debian/ubuntuでは、dhcpdump
やtcpdump
を使用するオプションもあります。 dhclient
Dhcpdumpを使用します。
dhcpdump -i eth0
を実行しますdhclient
を起動します(正常に実行する必要はありません)dhcpdump
の出力を調べて情報を確認します(最も詳細なニース形式の有益なリストである必要があります)Dhcpdumpを使用したくない場合のオプション2:
tcpdump -i eth0 -t -n > /tmp/my_file.txt
を実行します-t
=タイムスタンプを無効化// -n
=名前解決を無効化、IPアドレスのみ、サーバー名なし(RHEL/centosの場合は-nnを使用))dhclient
を起動します(正常に実行する必要はありません)*補足:tcpdumpとdhcpdumpをインストールする必要があります(例:Sudo apt get install tcpdump dhcpdump
); dhcpdumpはtcpdumpに依存
監視用とリクエスト送信用の2つの端末を起動することをお勧めします。 Terminal1は、MACアドレスを含むすべての既存のDHCPサーバーからの応答を表示します。この例はUbuntuで実行されました。
Terminal1(監視用):
Sudo tcpdump -nelt udp port 68 | grep -i "boot。* reply"
tcpdump:詳細な出力を抑制し、-vまたは-vvを使用してenp2s0でリスニングする完全なプロトコルデコード、リンクタイプEN10MB(イーサネット)、キャプチャサイズ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
Terminal2(リクエストを送信するため):
Sudo nmap --script broadcast-dhcp-discover -e eth0
2019-10-13 21:21 EESTプレスキャンスクリプトの結果でNmap 7.01( https://nmap.org )を開始:| 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警告:ターゲットが指定されていないため、スキャンされたホストはありません。 Nmap完了:0.94秒でスキャンされた0個のIPアドレス(0個のホストが起動)
その監視端末は、すべての応答を表示するためだけに必要です(nmapは最初の応答のみを表示できます)。