DHCP-Protokoll: wie es funktioniert und Beispiele zur Konfiguration

Das DHCP-Protokoll ist eines der am häufigsten von Routern verwendeten, sowohl im privaten als auch im professionellen Bereich, außerdem standardmäßig alle kabelgebundenen oder W-Lan Der Client ist so konfiguriert, dass er eine IP-Adresse per DHCP bezieht. Obwohl wir ständig DHCP verwenden, wissen Sie sicherlich nicht genau, wozu es dient, welche Funktionen es hat und auch wie es funktioniert und welche Nachrichten zwischen dem Server und den Clients ausgetauscht werden. Heute erklären wir in diesem Artikel alles, was Sie über das DHCP-Protokoll wissen müssen.

Was ist dieses Protokoll und wozu dient es?

DHCP-Protokoll

Das DHCP-Protokoll (Dynamic Host Configuration Protocol ) oder auch als „Dynamic Host Configuration Protocol“ bekannt, ist ein Netzwerkprotokoll, das eine Client-Server-Architektur verwendet. Daher haben wir einen oder mehrere DHCP-Server und auch einen oder mehrere Clients, die korrekt miteinander kommunizieren müssen, damit der DHCP-Server den verschiedenen angeschlossenen Clients Informationen zur Verfügung stellt. Dieses Protokoll ist dafür zuständig, dynamisch und automatisch eine IP-Adresse zuzuweisen, entweder eine private IP-Adresse vom Router an die Rechner im lokalen Netzwerk oder auch eine öffentliche IP durch einen Betreiber, der dieses Protokoll für den Verbindungsaufbau verwendet.

Wenn ein DHCP-Server läuft, werden alle IP-Adressen, die er verschiedenen Clients zur Verfügung gestellt hat, in einer Liste gespeichert, in der die bereitgestellte IP (logische Adresse) und die MAC-Adresse (physikalische Adresse der Netzwerkkarte) aufgelistet sind. . Dank dieser Auflistung stellt der DHCP-Server sicher, dass nicht zwei verschiedenen Computern die gleiche IP-Adresse zur Verfügung gestellt wird, was im lokalen Netzwerk für Chaos sorgt. Da der Server IP-Adressen zuweist, berücksichtigt er auch, wenn eine bestimmte Zeit verstrichen ist und diese ablaufen, so dass ein anderer Client dieselbe IP-Adresse erhalten kann. Der DHCP-Server weiß jederzeit, wer eine IP-Adresse seit wann besitzt und wann sie einem anderen Client zugewiesen wurde.

Das DHCP-Protokoll umfasst verschiedene Formen der Zuweisung von IP-Adressen, je nach der von uns vorgenommenen Konfiguration und dem Szenario können wir die eine oder andere Zuweisungsform verwenden:

  • Manuell oder statisch : Der DHCP-Server ermöglicht es uns, eine Liste von IP-MAC-Paaren zu konfigurieren, damit einem Client immer eine bestimmte IP-Adresse zur Verfügung gestellt wird und sich diese Adresse nie ändert.
  • automatische : Der DHCP-Server ist dafür verantwortlich, dem anfragenden Client eine IP-Adresse zur Verfügung zu stellen, die diesem Client bis zur Freigabe zur Verfügung steht. Es gibt Router, die intern so konfiguriert sind, dass sie private IP-Adressen sequentiell bereitstellen, es gibt jedoch Firmwares, die eine bestimmte IP-Adresse innerhalb des Bereichs bereitstellen und die nicht sequenziell ist, basierend auf einem internen Algorithmus und der verwendeten MAC-Adresse. verbunden haben.
  • Dynamisch : Diese Methode ermöglicht die dynamische Wiederverwendung von IP-Adressen.

Obwohl das DHCP-Protokoll dafür bekannt ist, IP-Adresse, Subnetzmaske und Gateway, drei grundlegende und grundlegende Parameter, bereitzustellen, kann es auch andere Informationen für Clients bereitstellen, z. B. die folgenden konfigurierbaren und optionalen Parameter:

  • Primärer und sekundärer DNS-Server.
  • DNS-Name.
  • MTU für die Schnittstelle.
  • NIS-Domäne und -Server.
  • NTP-Server.
  • WINS-Nameserver für Windows.
  • Andere erweiterte Optionen, all dies ist in RFC2132 .

Ein sehr wichtiger Aspekt ist, dass, wenn a Windows System keine IP-Adresse über den DHCP-Client in einem Netzwerk beziehen kann, wird ein Prozess namens APIPA (Automatic Private Internet Protocol Addressing) gestartet. Dieser APIPA-Prozess wird von Betriebssystemen verwendet, wenn eine IP-Adresse nicht über DHCP bezogen werden kann. Dieses Protokoll ist für die Zuweisung einer privaten IP-Adresse der Klasse B im Bereich 169.254.0.0/16 mit der entsprechenden Subnetzmaske 255.255.0.0 verantwortlich. Dieser Adressierungsblock wird bei IPv4-Netzwerken als „link-local“ bezeichnet. Obwohl die Betriebssysteme diese private IP-Adresse selbst konfigurieren, prüfen sie alle 5 Minuten erneut, ob ein DHCP-Server im Netzwerk vorhanden ist, um ihnen eine typische private IP-Adresse der Klasse A, B oder C bereitzustellen. Wenn der DHCP-Server nicht funktioniert oder wir ihn nicht konfiguriert haben, können Sie die automatisch konfigurierte IP-Adresse überprüfen, wenn wir die private IP-Adresse unseres Computers abrufen.

Sobald wir wissen, was das DHCP-Protokoll ist und seine Hauptmerkmale, werden wir sehen, wie es funktioniert und welche Nachrichten ausgetauscht werden.

Bedienung und Austausch von Nachrichten

Die Kommunikation zwischen dem DHCP-Server und den DHCP-Clients, die wir mit dem Netzwerk verbunden haben, erfolgt über das UDP-Protokoll, ein Protokoll, das wir bereits aus anderen Artikeln kennen und das ein nicht verbindungsorientiertes Protokoll ist. Beim DHCP-Server verwenden wir das UDP-Protokoll auf Port 67, bei Clients verwenden wir das UDP-Protokoll auf Port 68 Firewall Blockieren dieser Ports, entweder auf dem Server oder auf dem Client, müssen wir sie überprüfen und eine Regel hinzufügen, um diese Ports für Ursprung und / oder Ziel zu akzeptieren, andernfalls funktioniert der Dienst nicht und wir können die IP-Adressen nicht abrufen automatisch.

Wenn wir einen Computer zum ersten Mal mit dem Netzwerk verbinden, hat er keine IP-Adressierung, daher müssen wir im gesamten Netzwerk nach dem DHCP-Server „suchen“, da wir zunächst keine Informationen über das ARP-Protokoll haben. Aus diesem Grund sendet der Kunde als erstes eine DHCP-ERKENNUNG mit Quell-IP-Adresse 0.0.0.0 und Ziel-IP-Adresse 255.255.255.255, die die globale Broadcast-IP ist. Natürlich wird ein UDP-Datagramm mit Quellport 68 (Client) und Zielport 67 (Server) gesendet. Diese Kommunikation wird im Netzwerk rundgesendet und kann intern so konfiguriert werden, dass das ANGEBOT per Broadcast oder Unicast empfangen wird, obwohl es im ANGEBOT generell Unicast ist.

Wenn ein Server vorhanden ist und ordnungsgemäß funktioniert, sendet er Ihnen eine Antwort namens DHCP-ANGEBOT . Dies ist das Antwort-Datagramm vom Server an den Client vor der Anforderung, Parameter über das Protokoll abzurufen. In diesem Fall ist die Quell-IP-Adresse die des Servers selbst, der in der Regel auch als Router fungiert, die Ziel-IP ist ebenfalls 255.255.255.255, der Quell-Port 67 und der Ziel-Port 68. In diesem Paket haben wir die zur Verfügung gestellte private IP-Adresse, die mit der MAC-Adresse des Computers verknüpft ist. Diese Kommunikation ist im Allgemeinen unicast, obwohl sie optional rundgesendet werden kann.

Sobald der Kunde das ANGEBOT erhält, sendet er eine DHCP-ANFRAGE zurück. In diesem Fall wählt der Client die vom ANGEBOT erhaltene Konfiguration aus und fordert erneut die IP an, die der Server zuvor angegeben hat. Auch diese Kommunikation wird rundgesendet, da sie noch keine gültige private IP-Adresse besitzt.

Zuletzt sendet der Server eine DHCP-ACK an den Client und teilt ihm mit, dass er es korrekt empfangen hat und enthält alle Informationen, die wir auf dem Server konfiguriert haben, wie z. B. die Dauer der Verbindung, Informationen über die DNS Server und mehr. Mit diesem letzten Vorgang sind alle Schritte des Vorgangs abgeschlossen, das Protokoll wartet auch eine gewisse Zeit, bis der DHCP-Client seine Schnittstelle korrekt mit den ausgehandelten Parametern konfiguriert. Sobald der Client die IP-Adresse erhält, beginnt der Client mit dem Empfang von Informationen vom ARP-Protokoll mit allen Computern im lokalen Netzwerk, um mögliche IP-Adresskonflikte oder Überschneidungen von Adressgruppen von DHCP-Servern zu verhindern. Falls ein Problem auftritt, sendet der Client dem Server eine DHCPDECLINE-Nachricht, die angibt, dass die Adresse bereits verwendet wird.

Nachdem wir gesehen haben, wie das DHCP-Protokoll funktioniert, werden wir erklären, welche Angriffe es gibt und wie man sie vermeidet.

Angriffe, die auf DHCP existieren

Das DHCP-Protokoll verwendet keine Art der Authentifizierung, daher ist es sehr anfällig für Angriffe und es gibt verschiedene Arten von Angriffen, die wir ausführen können.

Ein sehr häufiger Angriff besteht darin, einen betrügerischen DHCP-Server so zu konfigurieren, dass er den Clients „falsche“ oder „bösartige“ Informationen zur Verfügung stellt. Wenn wir einen nicht autorisierten DHCP-Server mit einem lokalen Netzwerk verbinden, das bereits über einen legitimen DHCP-Server verfügt, erhalten Clients die IP-Adresse, DNS und andere Informationen, wenn sie zum ersten Mal antworten. Aus diesem Grund könnte ein böswilliger Benutzer eine ” Rogue-DHCP-Server “ im Netzwerk, um die Adressen verschiedener Clients zu kontrollieren. Wenn ein Cyberkrimineller Rogue DHCP installiert, tut er dies aus mehreren Gründen:

  • Führen Sie einen Denial-of-Service-Angriff auf das Netzwerk durch : Wenn der Client oder die Clients diese Adresse erhalten, können sie die Internetverbindung „trennen“. Auf diese Weise haben Clients keinen Zugriff auf das Internet oder das lokale Netzwerk.
  • Mann in der Mitte Angriff : Da wir die vollständige Kontrolle über die Adressierungs- und DNS-Server haben, ist es nicht einmal erforderlich, einen ARP-Spoofing-Angriff durchzuführen, da wir die vollständige Kontrolle über das gesamte Netzwerk haben und Clients auf bösartige Websites weiterleiten können, indem wir das DNS des Servers ändern unseren eigenen DHCP-Server, den wir gerade installiert haben. Ein unrechtmäßiger DHCP-Server kann verschiedenen Clients falsche DNS-Serverinformationen bereitstellen. Natürlich greifen sie nicht nur auf bösartige Websites zu, sondern Sie können auch Verbindungen problemlos ausspionieren, da wir das Gateway sind.

Um diesen Angriff abzuwehren, muss sichergestellt werden, dass es in unserem lokalen Netzwerk kein Rogue-DHCP gibt, und hier kommt das in den Switches eingebaute „DHCP-Snooping“ ins Spiel. Diese Technologie ermöglicht das Blockieren von DHCP-Angebots- und DHCP-Ack-Nachrichten von Ports, an denen dies nicht zulässig ist, dh dort, wo sich der legitime Server nicht befindet. Auf diese Weise kann der gefälschte DHCP-Server, selbst wenn er die Nachrichten erhält, niemals antworten und die Clients im lokalen Netzwerk bleiben sicher. Im folgenden Diagramm sehen Sie, wie DHCP-Snooping funktioniert:

Ein weiterer sehr häufiger Angriff auf DHCP-Server besteht darin, aufgrund der Tatsache, dass wir über keine Art von Client-Authentifizierungsmechanismus verfügen, Dutzende von Anfragen nach IP-Adressen zu stellen, um den IP-Adressspeicher des Servers zu erschöpfen, indem jeweils neue Kundenkennungen präsentiert werden wann eine Anfrage gestellt wird. Dies würde dazu führen, dass der Server „abstürzt“ und keine weitere Adressierung mehr bereitstellen kann. Es gibt einige Abschwächungsmechanismen, insbesondere auf der Ebene von Internet-Betreibern, die DHCP verwenden, wie z. B. RFC3046 mit Tags, die als Autorisierungs-Token verwendet werden, wir haben auch RFC3118, der Nachrichten authentifizieren soll, aber nicht weit verbreitet ist. Mit der Veröffentlichung des 802.1X-Protokolls zur Authentifizierung kabelgebundener Clients wurden diese RFCs in den Hintergrund gedrängt.

In Bezug auf das lokale Netzwerk ist es am wichtigsten, dass DHCP-Snooping gut konfiguriert ist, um Rogue-DHCP zu vermeiden. Auf diese Weise sind wir geschützt.

Was ist statisches DHCP oder „Statisches DHCP“?

Die statische DHCP-Funktionalität, auch „Statisches DHCP“ oder „Statisches Mapping“ genannt, ist die Möglichkeit, einen bestimmten Client anhand seiner MAC-Adresse oder seines „Client Identifiers“ gezielt zu konfigurieren. Dank dieser Funktion können wir für diesen speziellen Client spezifische Parameter einstellen, wie zum Beispiel immer dieselbe private IP-Adresse, damit sie sich nie ändert. Andere Optionen, die wir konfigurieren können, sind der Hostname, die Konfiguration der DNS- und WINS-Server, der Domänenname, die NTP-, TFTP-, LDAP-Server und andere Informationen, die auch die DHCP-Server bereitstellen können.

Die Bedienung des statischen DHCP ist sehr einfach, wir müssen die MAC- oder Client-Kennung in den entsprechenden Abschnitt eingeben, dann konfigurieren wir eine bestimmte IP-Adresse und den Rest der Parameter, die der Client haben soll. Unten sehen Sie alle Konfigurationsoptionen, die in einem pfSense-Betriebssystem verfügbar sind.

Nachdem wir gesehen haben, wie statisches DHCP konfiguriert werden kann, sehen wir die globale Konfiguration eines DHCP-Servers.

Globale Einstellungen des DHCP-Servers

Nehmen wir als Beispiel den DHCP-Server des pfSense-Betriebssystems. Dieses Betriebssystem und auch viele Router ermöglichen es uns, für jedes von uns konfigurierte Subnetz einen DHCP-Server einzurichten. Abhängig von der Firmware haben wir mehr Konfigurationsoptionen oder weniger Konfigurationsoptionen, daher müssen wir dies berücksichtigen.

Im Fall von pfSense können wir den DHCP-Server aktivieren oder deaktivieren, die Anforderungen des BOOTP-Protokolls ignorieren oder nicht, wir können auch eine Zugriffskontrollliste erstellen, damit Clients Adressen erhalten oder nicht erhalten können, wir können auch den IP-Bereich konfigurieren Adressierung Innerhalb des von uns konfigurierten Subnetzes haben wir nämlich problemlos die Möglichkeit, zusätzliche „Pools“ anzulegen. Natürlich müssen wir auch die Informationen für die DNS- und WINS-Server sowie die anderen erweiterten Optionen eingeben, wenn wir sie benötigen.

In den vorherigen Screenshots können Sie sehen, dass wir die Möglichkeit haben, den DHCP-Server in pfSense sehr fortschrittlich zu konfigurieren, im Allgemeinen haben professionelle Router all diese Konfigurationsmöglichkeiten, im Gegensatz zu Heimroutern, die viel einfacher sind und nicht so viele Konfigurationen haben Optionen. Zum Beispiel können wir NTP, TFTP und sogar das LDAP konfigurieren, wenn wir möchten, zusätzlich haben wir auch die Möglichkeit, diese Optionen anzuzeigen, um sie im Detail zu konfigurieren.

Wie Sie gesehen haben, wird das DHCP-Protokoll von uns allen häufig verwendet, um die IP-Adressierung und andere Informationen zu erhalten, die für das ordnungsgemäße Funktionieren des lokalen Netzwerks erforderlich sind. Außerdem dürfen wir die Angriffe nicht vergessen und wie wir uns davor schützen können Denken Sie schließlich daran, dass wir die statische DHCP-Funktionalität haben, damit der Server uns immer die gleiche IP-Adresse zur Verfügung stellt.