अगर bash का उपयोग करके मेरे नेटवर्क में एक DHCP सर्वर मौजूद है, तो जांचें


23

स्थैतिक आईपी के साथ CentOS का उपयोग करना, क्या कोई DHCP सर्वर बैश का उपयोग कर नेटवर्क पर चल रहा है, यह निर्धारित करने का कोई तरीका है?

जवाबों:


44

nmap यह आसानी से करता है:

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

दिखाएंगे:

Starting Nmap 6.40 ( http://nmap.org ) at 2016-08-16 09:25 UTC
Pre-scan script results:
| broadcast-dhcp-discover: 
|   IP Offered: 192.168.14.67
|   DHCP Message Type: DHCPOFFER
|   Server Identifier: 192.168.14.1
|   IP Address Lease Time: 0 days, 0:05:00
|   Subnet Mask: 255.255.255.0
|   Router: 192.168.14.1
|   Domain Name Server: 193.190.127.150
|   Domain Name: maas
|   Broadcast Address: 192.168.14.255
|_  NTP Servers: 91.189.91.157, 91.189.89.199, 91.189.94.4, 91.189.89.198
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.27 seconds

1
यद्यपि मौजूदा उत्तर काफी अच्छे थे, मैं आपके समाधान को बहुत पसंद करता हूं!
जूली पेलेटियर

1
अच्छा आदेश, लेकिन यह ध्यान देने योग्य है कि यह सिर्फ पहले डीएचसीपी सर्वर का जवाब देता है। यदि एकाधिक डीएचसीपी सर्वर मौजूद हैं, तो यह कमांड उन्हें नहीं मिलेगा।
प्रहार करें

6

अगर भंडार में उपलब्ध है तो dhcpdump है

मैन पेज से:

SYNOPSIS
       dhcpdump [-h regular-expression] -i interface

DESCRIPTION
       This command parses the output of tcpdump to display the dhcp-packets for easier checking and debugging.

USAGE
       dhcpdump -i /dev/fxp0

       If you want to filter a specific Client Hardware Address (CHADDR), then you can specifiy it as a regular expressions:

       dhcpdump -i /dev/fxp0 -h ^00:c0:4f

       This will display only the packets with Client Hardware Addresses which start with 00:c0:4f.

5

यदि आपके पास tcpdumpउपलब्ध है, तो प्रोग्राम को रूट के रूप में निम्न मापदंडों के साथ लागू करना आपको सर्वर खोजने में सहायता कर सकता है:

tcpdump -i [इंटरफ़ेस आईडी] -nv udp पोर्ट 68

दुर्भाग्य से, मेरे नेटवर्क के लेआउट के कारण, मुझे तुरंत पूर्ण डीएचसीपी हैंडशेक नहीं मिला। हालाँकि, मुझे अपने iPad से DHCP अनुरोध दिखाई देता है:

22:16:44.767371 30:10:e4:8f:02:14 > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x0, ttl 255, id 15652, offset 0, flags [none], proto UDP (17), length 328)
    0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 30:10:e4:8f:02:14, length 300, xid 0x42448eb6, Flags [none]
      Client-Ethernet-Address 30:10:e4:8f:02:14
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: Request
        Parameter-Request Option 55, length 6: 
          Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
          Option 119, Option 252
        MSZ Option 57, length 2: 1500
        Client-ID Option 61, length 7: ether 30:10:e4:8f:02:14
        Requested-IP Option 50, length 4: 192.168.2.222
        Lease-Time Option 51, length 4: 7776000
        Hostname Option 12, length 15: "NevinWiamssiPad"

रात भर `tcpdump 'को चलने देने के बाद, मैंने अंततः इस ACK को देखा:

07:46:40.049423 a8:39:44:96:fa:b8 > 68:a8:6d:58:5b:f3, ethertype IPv4 (0x0800), length 320: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 306)
    192.168.2.1.67 > 192.168.2.22.68: BOOTP/DHCP, Reply, length 278, xid 0x5e7944f, Flags [none]
      Client-IP 192.168.2.22
      Your-IP 192.168.2.22
      Client-Ethernet-Address 68:a8:6d:58:5b:f3
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: ACK
        Server-ID Option 54, length 4: 192.168.2.1
        Lease-Time Option 51, length 4: 86400
        Subnet-Mask Option 1, length 4: 255.255.255.0
        Default-Gateway Option 3, length 4: 192.168.2.1
        Domain-Name-Server Option 6, length 8: 192.168.2.1,142.166.166.166

यदि उस tcpdumpकमांड को चलाते समय , और आप BOOTP / DHCP ऑफ़र या Ack (Nack) देखते हैं, जो कि DHCP सर्वर से होगा, और सर्वर का मैक पता पहली पंक्ति में टाइमस्टैम्प के ठीक बाद होगा।

तो (मान्य) डीएचसीपी सर्वर में मैक का पता a8: 39: 44: 96: fa: b8` है।

वेब पर कई मैक एड्रेस लुकअप टूल्स में से एक का उपयोग करके मैं देख रहा हूं कि यह मैक A8:39:44 Actiontec Electronics, Incमेरा राउटर है।

दुष्ट डीएचसीपी सर्वर पैकेट को पकड़ने के लिए जैसा कि वे होते हैं, मुझे tcpdumpटर्मिनल विंडो में चल रही इस प्रक्रिया को छोड़ना होगा :

tcpdump -i en0 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8

यह मुझे केवल मेरे वैध डीएचसीपी सर्वर के अलावा मेजबानों से डीएचसीपी सर्वर प्रतिक्रियाएं दिखाएगा, जब तक कि प्रक्रिया अपनी खिड़की में चल रही है।

निम्न आदेश पृष्ठभूमि में चलेगा जब तक कि 100 पैकेट कैप्चर नहीं किए जाते हैं, किसी भी दुष्ट डीएचसीपी सर्वर संदेश को फ़ाइल में जोड़ा जाता है /tmp/rogue। फिर से, आपके वैध डीएचसीपी सर्वर के मैक पते को उचित स्थान पर उपयोग किया जाना है, साथ ही साथ आपके सिस्टम पर इंटरफ़ेस डिस्क्रिप्टर भी।

tcpdump -U -i en0 -c 100 -nev udp src port 67 and not ether host a8:39:44:96:fa:b8 >> /tmp/rogue 2>&1 &

`


+1 ने हर समय ग्राहक के वीओआईपी नेटवर्क पर उनका उपयोग करने में मदद करने के लिए उन्हें DHCP सर्वरों को स्पॉट करने में मदद की जो उनकी सेवा में गड़बड़ी कर रहे थे।
MaQleod

हाँ, मुझे केबल मॉडेम नेटवर्क के शुरुआती तैनाती पर दुष्ट डीएचसीपी सर्वर खोजने के लिए इसका उपयोग करना था, जब तक कि हमें पता नहीं था कि हमारे नेटवर्क पर पूर्व-डॉक्सिस केबल मोडेम के प्रत्येक प्रकार पर आउटबाउंड यूडीपी पोर्ट 67 को कैसे फ़िल्टर किया जाए। हम बदमाश की पहचान करने के बाद भी, यह पहचानना संभव नहीं था कि यह क्या मॉडेम था। गंभीर मामलों में, हमें हर नोड को तब तक बंद करना पड़ता था जब तक कि बदमाश बंद नहीं हो जाते, और फिर उस नोड पर उस amp को अलग कर देते हैं जो ट्रक रोल की संख्या को कम करने के लिए MSO बनाता है। मनोरंजन समय। लंबे समय तक DOCSIS।
नेविन विलियम्स

कोई भी सरल उपाय, क्योंकि मैं बैश के साथ अक्सर जाँच करना चाहता हूं
स्टीव

यदि आप इस tcpdumpआदेश को चलाना छोड़ देते हैं , तो यह मैक पते द्वारा भेजे गए डीएचसीपी सर्वर पैकेट को प्रदर्शित करेगा जो आपके डीएचसीपी सर्वर से अलग है। बेशक, आपको संकेतित स्थान पर पते की आपूर्ति करने की आवश्यकता होगी ... मैं इसे अपने उत्तर में वर्तमान में रखूंगा, बेहतर स्वरूपण प्राप्त करने के लिए।
नेविन विलियम्स

0

पर्याप्त समय को देखते हुए, यह पता लगाना संभव हो सकता है कि निष्क्रिय रूप से याद करें: याद रखें कि एक शुरुआती ग्राहक एक डीएचसीपीआईएससीओसीआर प्रसारण प्रसारित करता है। यदि एक dhcpserver उपलब्ध है, तो यह एक प्रस्ताव को प्राप्त करेगा और फिर (DH दोबारा प्रसारण के रूप में! इस प्रकार

  • यदि आप एक DHCPREQUEST प्रसारण प्राप्त करते हैं, तो एक dhcp सर्वर है
  • यदि आप DHCPDISCOVER प्राप्त करते हैं, लेकिन कोई DHCPREQUEST दूसरे या दो के भीतर (dhcp रिले के माध्यम से दूरस्थ dhcp सर्वर के लिए खाता है), कोई dhcp सर्वर नहीं है
  • यदि आपको DHCPDISCOVER भी नहीं मिलता है, तो आपको अधिक समय तक प्रतीक्षा करनी होगी - या सक्रिय रूप से एक dhcp सर्वर खोजने की कोशिश करें (जैसे केनेड की विधि के अनुसार)

पहले दो बिंदुओं की सफलता नेटवर्क से जुड़े अन्य मेजबान / बूट की संख्या और पट्टे के समय पर भी बंद हो जाती है।


0

आप एक उपनाम डिवाइस बनाने और परीक्षण मोड में एक dhcp क्लाइंट का उपयोग करने की कोशिश कर सकते हैं, जहां यह किसी भी प्रतिक्रिया को प्रिंट करता है, वास्तव में इंटरफ़ेस को पुन: कॉन्फ़िगर किए बिना:

ifconfig eth0:1 up
dhclient -w -n eth0:1

मेरे पास केवल एक डेबियन बॉक्स तक पहुंच है, इसलिए यदि आपके पास एक और dhcp कार्यान्वयन है, तो ड्राई-रन विकल्प अलग हो सकता है, जैसे dhcpcd:

dhcpcd -T eth0:1

मैं कुछ इस तरह से क्रोन स्क्रिप्ट चलाता था, जो व्यवस्थापक (मुझे!) बदमाश dhcp सर्वर के बारे में सचेत करता था।


1
जब ifconfig eth0:1 upआउटपुट कहते हैंSIOCSIFFLAGS: Cannot assign requested address
स्टीव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.