Der Wahn im LAN: DHCP

Fast jeder, der ein Büronetz zu betreuen hat, kennt DHCP. Im Folgenden werde ich einige Vor- und Nachteile erläutern:

Üblicherweise genannte Vorteile:

  • Maschine anstecken, geht!
  • das klappt bei jedem, wenig Konfigurationsaufwand
  • jeder hat eine IP, nichts wird doppelt vergeben

Nachteile:

  • Man kann auch zu doof für DHCP sein! Es gibt Leute, die ihren Laptop alle paar Wochen mitbringen, den hochfahren, bevor sie das LAN-Kabel reinstecken und sich anschließend jedes Mal wundern, dass die Domänenanmeldung nicht funktioniert…
  • Oftmals geben sich Mitarbeiter “mal eben kurz” eine andere IP Adresse, weil irgendwas im Netzwerk nicht klappt (meist PEBCAK Fehler), einige scheinen das für ein Allheilmittel zu halten. Besonders beliebt sind durch 10 teilbare Adressen und 23, 42, 69, 111, 123 und 222, die der gedächtnisschwache Admin an irgendwelche unwichtige Geräte wie z.B. Printserver, Router, Managebare Switche vergeben hat. Leider darf man auch nicht jedem Adminrechte entziehen.
  • Der 2. DHCP Server, den irgendwer im Netzwerk versteckt hat und der IPs vergibt, die in einem andere Netz sind! Besonders bei chaotischer Verkabelung macht das lustige Suchen sehr viel Spass, vor allem wenn es sich bei dem Gerät um eins handelt, dass SOHO-Switch-größe hat, keinerlei Beschriftung, von einem Mitarbeiter mitgebraucht und unterm Tisch versteckt wurde, um ab und zu mal einen Laptop dran anschließen zu können.
  • Die IPs wechseln, wenn die Lease-Zeit zu kurz ist; beim Kopieren von Daten zu jemand anderem, muss man immer die IP erfragen. Man will nicht immer den Umweg über eine Server-Freigabe machen (ich sage nur: Datenbankdumps…). Ewig lange lease-Zeiten (10 Jahre, als “Hack” damit jeder immer die selbe IP bekommt) bewirken, dass irgendwann keine IPs mehr vergebbar sind. Beides endet darin, dass sich jeder selbst eine IP einstellt, was vor allem dann ziemlich blöde ist, wenn er sich eine IP in der DHCP-Range gibt; dann bekommen auch diejenige, die nichts geändert haben Probleme. (2 Leute kommen ins Büro: “Duuu, ich habe hier so einen IP-Adresskonflikt, dabei habe ich garnichts gemacht!)

Wenn schon DHCP, dann mit festen IPs, die PCs werden anhand der MAC zu einer IP geordnet. Oftmals hört man, die Umstellung wäre viel zu aufwendig und andere Ausreden, vor allem von Windows-Admins. Ich will hier nun kurz das Gegenteil beweisen.

Scannen des Netzwerkes nach lebenden PCs (ja, mal sollte vorher schon alle anschalten):

nmap -sP -P0 -PR -T5 192.168.0.0/24 -oX mynet.xml

Dann noch etwas rumschnippeln (ich weiß, quick and dirty aber für einmalige Anwendung muss es eben nicht 100% perfekt sein):

grep up -A1 mynet.xml | grep addrtype=\"ipv4\" | awk -F\" '{print $2}' | while read IP
 do
  MAC=`grep -F ${IP}\" mynet.xml -A1 | grep addrtype=\"mac\" | awk -F\" '{print $2}'`
  if [ "$MAC" != "" ]
  then
   printf "${IP} ${MAC}n"
   #template $IP $MAC >> /etc/dhcp/dhcpd.conf
   MAC=
  fi
 done

Der Output sieht dann z.B. so aus:

192.168.0.1 00:59:FC:C2:B1:ED
192.168.0.2 00:5f:DA:43:5B:20
192.168.0.3 00:41:8C:38:71:84
192.168.0.4 00:12:49:10:59:40

Wer schlau ist, übergibt das ganze gleich an eine Funktion, indem der Aufruf für die template-Funktion einkommentiert und folgendes Codestückchen an den Anfang des Bash-Scripts gepackt wird:


template()
{
cat <<EOF
host pc-$2
{
 hardware ethernet $2;
 option subnet-mask 255.255.225.0;
 fixed-address $1;
 option broadcast-address 192.168.0.255;
 option routers 192.168.0.1;
 option domain-name-servers 192.168.0.2;
 option domain-name "fun.de";
}
EOF
}

So bekommt man eine schöne Liste für den ISC DHCP und das Ganze geht – da ich euch den Code einfach in die Hand drücke – in etwa 10 Minuten, wenn man nach der Ausführung noch kontrolliert, ob alles wirklich ok ist.

Übrigens sollte man im LAN generell noch ein Tool wie z.B. arpcheck einsetzen, um IP-klauende oder private Geräte anschließende Mitarbeiter sowie ARP-Spoofing entdecken zu können ;)

12 Kommentare zu “Der Wahn im LAN: DHCP”

  1. Lukas Beeler schrieb:

    Ich weiss ja nicht wie dein Betrieb aussieht, aber ich habe das Gefühl das mal dringend entsprechende administrative Massnahmen getroffen werden müssen um zu verhindern das jeder Depp am LAN was umgestellt.

    Erster Schritt zu solcher Massnahme wäre die Einführung von 802.1x in allen produktiven Netzen. Damit hast du eine sichere Authentifizierung der einzelnen Geräte – Rogue DHCP-Server sind kein Problem mehr, da du dann entweder weisst wer dem Gerät ein Zertifikat gegeben hat, oder es garnicht funktioniert.

    Domainanmeldung tut auch mit Laptop problemlos – man muss einfach einen kurzen Moment warten nachdem man das Kabel eingesteckt hat, und sich dann einloggen. Bei richtiger Konfiguration gibts eh nur ein Standardprofil, sodass man auf den Ärger mit Roaming Profiles verzichten kann.

    Die fixen IP-Adressen per DHCP machen IMHO nur in wenigen Fällen Sinn, wie z.B. Printer und ähnlichen Appliances – Arbeitsplatzrechner müssen eh nie direkt miteinander reden.

  2. Stefan schrieb:

    Hahaha. Und wer bezahlt den Spass, die 802.1x-Geräte einzuführen? Und wer bringt dem Chef bei, dass die Konfiguration aller PCs alleine einen Tag dauert?
    Außerdem entgeht einem dann der BOFH-Spass, jemanden zusammenstauchen zu können, lol ;)

    Wegen des Laptops: Nein, ging nicht. Frag’ nicht warum, ist eben Windows drauf. Und mehrere Profile müssen da sein, Wunsch der Geschäftsführung.

    Hast wohl den Beitrag nicht ganz richtig gelesen? Arbeitsplatzrechner müssen in manchen Szenarien sehr wohl mal miteinander reden.

  3. Meine del.icio.us-Links vom 19. Juli bis zum 22. Juli | Stephan A. aus B. schrieb:

    [...] Der Wahn im LAN: DHCP | adminlife.net :: [...]

  4. Stefan schrieb:

    Leider hat Wordpress den Beitrag etwas zerschrebbelt und Matze hat bisher nicht editiert, ich habe dazu keine Rechte. Die Zeilen mit awk müssen hinter die jeweils vorherige > ist durch ein Größer-Zeichen zu ersetzen (>) und < durch ein Kleiner-Zeichen (

  5. Stefan schrieb:

    VERDAMMTES WORDPRESS MACHT WAS ES WILL!

  6. Michél schrieb:

    Hallo Stefan!

    Das ist doch mal ein nettes Script. Bekomme bei mir nur die Fehlermeldung:

    “Fehler beim Laden des Stylesheets”

    In dieser Richtung kenne ich mich mal gar nicht aus- fehlen da vielleicht noch bestimmte Pakete auf einem nackten System Etch mit Apache und PHP5?

    thx

  7. Stefan schrieb:

    Äh womit willst du das denn Laden?! Das ist ein Bash-Script.

  8. Michél schrieb:

    Naja, dachte die .xml Datei wäre dann aufrufbar im Browser? Denke ich da mal wieder falsch bzw. in einer falschen Richtung?

  9. stefan schrieb:

    Viel falscher kann man garnicht mehr liegen, lies den Beitrag nochmal, sorry…

  10. matthias schrieb:

    @stefan
    Nun bleib mal freundlich ;)
    Mich hat allerdings auch gewundert, dass du die Ausgabe in eine XML Datei und nicht in eine einfache Text Datei schreibst?

  11. michél schrieb:

    Naja, habe halt wirklich so gedacht… mal kurz ins www kopiert und anschauen.

    Sorry für die Frage.

    Gruß

  12. Stefan schrieb:

    @Matthias: Sorry, aber was soll ich dazu sagen?! Im ganzen Text habe ich keinmal das Wort webserver, www oder browser erwähnt, nur weil man irgendwo .xml liest, hat das ja nicht gleich was mit einem Browser zu tun; zur Info: http://de.wikipedia.org/wiki/XML :)
    Ist nicht böse gemeint, aber irgendwie hat der michél doch ziemlich vorbeigelesen, oder nicht?

    Ich schreibe das in eine XML weil es so leichter war, nach der IP und MAC zu greppen, war halt ein Quick ‘n’ Dirty hack :)


Ein Kommentar schreiben

XHTML: Diese Tags können benutzt werden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>