Konsortium ISC Release des DHCP-Servers , der den klassischen ISC DHCP ablöst. Der Quellcode des Projekts steht unter der Lizenz , anstelle der zuvor für ISC DHCP verwendeten ISC-Lizenz.
Der DHCP-Server Kea basiert auf der Technologie von BIND 10 und mit einer modularen Architektur entwickelt, die die Aufteilung der Funktionalität auf verschiedene Prozess-Handler vorsieht. Das Produkt umfasst eine voll funktionsfähige Serverimplementierung mit Unterstützung für die Protokolle DHCPv4 und DHCPv6 und ist in der Lage, ISC DHCP zu ersetzen. In Kea sind Funktionen zur dynamischen Aktualisierung von DNS-Zonen (Dynamic DNS) integriert, es werden Mechanismen zur Servererkennung, Adresszuweisung, Aktualisierung und Wiederverbindung, zur Bearbeitung von Informationsanfragen, zur Adressreservierung für Hosts und zur PXE-Boot Unterstützung bereitgestellt. In der Implementierung von DHCPv6 ist zusätzlich die Möglichkeit zur Delegierung von Präfixen vorgesehen. Für die Interaktion mit externen Anwendungen steht eine spezielle API zur Verfügung. Eine Live-Änderung der Konfiguration ohne Neustart des Servers ist möglich.
Informationen zu den zugewiesenen Adressen und den Kundeneinstellungen können in unterschiedlichen Speicherarten abgelegt werden — derzeit stehen Backends für die Speicherung in CSV-Dateien, MySQL-Datenbanken, Apache Cassandra und PostgreSQL zur Verfügung. Die Parameter für die Hostreservierung können in einer Konfigurationsdatei im JSON-Format oder in Form einer Tabelle in MySQL und PostgreSQL definiert werden. Enthalten ist auch das Tool perfdhcp zur Messung der DHCP-Serverleistung sowie Komponenten zur Statistiksammlung. Kea zeigt eine beeindruckende Leistung: Bei Verwendung des MySQL-Backends kann der Server 1000 Adresszuweisungen pro Sekunde (etwa 4000 Pakete pro Sekunde) durchführen, und bei Verwendung des memfile-Backends erreicht die Leistung 7500 Zuweisungen pro Sekunde.
Schlüssige in Kea 1.6:
- Ein Backend zur Konfiguration (CB, Configuration Backend) wurde implementiert, das eine zentrale Verwaltung der Einstellungen mehrerer DHCPv4- und DHCPv6-Server ermöglicht. Dieses Backend kann zur Speicherung der meisten Kea-Einstellungen verwendet werden, einschließlich globaler Parameter, Informationen über gemeinsame Netzwerke, Subnetze, Optionen, Pools und Optionsdefinitionen. Anstatt all diese Einstellungen in einer lokalen Konfigurationsdatei zu speichern, können sie jetzt in einer externen Datenbank abgelegt werden. Dabei ist es möglich, über CB nicht alle, sondern nur einen Teil der Einstellungen zu definieren und Parameter aus der externen Datenbank sowie lokalen Konfigurationsdateien miteinander zu kombinieren (beispielsweise können in den lokalen Dateien die Einstellungen der Netzwerkinterfaces belassen werden).
Aktuell wird für die Speicherung der Konfiguration nur MySQL unterstützt (für die Speicherung von Adresszuweisungen (Leases) können auch MySQL, PostgreSQL und Cassandra verwendet werden, während für die Reservierung von Hosts MySQL und PostgreSQL zur Anwendung kommen). Die Konfiguration in der Datenbank kann sowohl direkt über SQL-Zugriffe als auch über speziell entwickelte Middleware-Bibliotheken geändert werden, die einen Standardsatz von Befehlen zur Verwaltung der Konfiguration bereitstellen, wie das Hinzufügen und Entfernen von Parametern, Bindungen, DHCP-Optionen und Subnetzen;
- Eine neue Klasse von Handlern "DROP" wurde hinzugefügt (alle mit der Klasse DROP verbundenen Pakete werden sofort verworfen), die verwendet werden kann, um unerwünschten Datenverkehr zu blockieren, beispielsweise bestimmte Arten von DHCP-Nachrichten;
- Die neuen Parameter max-lease-time und min-lease-time wurden hinzugefügt, die es ermöglichen, die Lebensdauer der Bindung einer Adresse an einen Client (Lease) nicht als festgelegten Wert, sondern als zulässigen Bereich zu definieren;
- Die Kompatibilität mit Geräten, die die DHCP-Standards nicht vollständig einhalten, wurde verbessert. Um Probleme zu umgehen, sendet Kea nun die Informationen zum DHCPv4-Nachrichtentyp an den Anfang der Optionsliste, verarbeitet verschiedene Darstellungen von Hostnamen, erkennt die Übertragung eines leeren Hostnamens und ermöglicht die Definition von Sub-Optionen mit Codes von 0 bis 255.
- Für den DDNS-Daemon wurde ein separater SteuerSocket hinzugefügt, über den direkt Befehle übermittelt und Konfigurationsänderungen vorgenommen werden können. Es werden folgende Befehle unterstützt: build-report, config-get, config-reload, config-set, config-test, config-write, list-commands, shutdown und version-get.
- Behoben wurden (CVE-2019-6472, CVE-2019-6473, CVE-2019-6474), die für DoS-Angriffe (Absturz der Server-Handler für DHCPv4 und DHCPv6) genutzt werden können, indem Anfragen mit fehlerhaften Optionen und Werten gesendet werden. Das größte Risiko stellt das Problem , das bei der Verwendung von memfile-Bindungen dazu führt, dass der Serverprozess nicht selbstständig neu gestartet werden kann, was ein manuelles Eingreifen des Administrators (Bereinigung der Bindungsdatenbank) erforderlich macht.
Quelle: opennet.ru
