300 - Plattformübergreifende Dienste in ein Netzwerk integrieren
- Marktplatz - WPAD
- Marktplatz - DHCP
- Marktplatz - Kollaboration
- Marktplatz - Mailempfang
- Marktplatz - Datenbanken
- Marktplatz - HTTP
- Marktplatz - GOPHER
- Marktplatz - Mailversand
- Marktplatz - FTP
- DHCP-Auftrag
- PXE-Auftrag
- DNS-Auftrag
Marktplatz - WPAD
Was passiert bei DHCP Discovery? |
Kurzfassung |
Bei DHCP wird eine bestimmte Option weitergegeben |
WPAD DHCP Option = 252 |
Diese Option enthält den DNS Namen oder direkt die IP auf der die WPAD Konfiguration liegt |
Value = «example.com» |
Die normale Abfrage erfolgt über den Link auf der rechten Seite. |
Webserver = «http(s)://example.com/wpad.dat» |
Was passiert bei DNS Discovery? |
Kurzfassung |
Der Host führt einen Reverse-Lookup auf sich selbst durch und findet so seinen FQDN heraus. |
1.2.3.4 è host-1-2-3-4.pop1.isp.net |
Der Host prüft dann, ob es einen WPAD-Eintrag in der gleichen Domain gibt. |
wpad.pop1.isp.net |
Wenn er nichts findet, sind die meisten Clients so konfiguriert, dass sie einen Fallback verwenden, d.h. sie prüfen, ob die übergeordnete Domain einen WPAD-Eintrag hat. |
wpad.isp.net |
Wurde der Eintrag gefunden, wird die WPAD-Datei wie bei DHCP abgerufen. |
Webserver = «http(s)://wpad.isp.net/wpad.dat» |
Vorteile |
Nachteile |
Automatische Konfiguration |
Sicherheitsrisiken (Überwachung von Traffic) |
Netzwerkmanagement (Zentrales Steuern des Internetzugriffes) |
Fehlkonfigurationen |
Flexibilität (Änderungen sind schnell umsetzbar) |
Komplexität |
Entstehungsgeschichte:
Das Web Proxy Auto-Discovery Protocol (WPAD) wurde in den späten 1990er Jahren entwickelt, um die automatische Erkennung von Web-Proxy-Servern in Netzwerken zu ermöglichen und die Konfiguration von Client-Computern zu vereinfachen. Es wurde ursprünglich von Microsoft unterstützt und in Produkten wie Internet Explorer integriert, bevor es zu einem weit verbreiteten Standard für die automatische Proxy-Konfiguration in verschiedenen Betriebssystemen und Browsern wurde.
Marktplatz - DHCP
Marktplatz - Kollaboration
Zweck
Kollaborationstools wie Teams und Slack dienen dazu, die Kommunikation und Zusammenarbeit in
Teams bzw. Unternehmen zu erleichtern. Kollaborationstools bieten unter anderem folgende Funktionen:
- Chat
- Dateifreigabe
- Videoanrufe
- Aufgabenmanagement
Sie bieten auch Integrationen mit anderen Tools, um die Effizienz und Produktivität bei der
Zusammenarbeit (→ Kollaboration) zu steigern.
Entstehung
Es ist schwer zu bestimmen, welches das erste Kollaborationstool war. Tools für die Zusammenarbeit
gibt es schon seit eh und je, beispielsweise kann man die E-Mail-Kommunikation als grobe Form von
Kollaboration sehen.
Ein Pionier für die Kollaboration ist Lotus Notes von IBM, welches in den 1980er Jahren entwickelt
wurde. Lotus Notes ermöglicht das Erstellen, Teilen und gemeinsame Bearbeiten von Dokumenten.
Zudem ermöglichte Lotus Notes, einen Gruppenkalender zu führen. Dieses Kollaborationstool gibt es
heute noch, jedoch wird es seit 2019 unter dem Namen HCL Notes weiterentwickelt.
Funktionsweise
Heute werden die meisten Kollaborationstools als Software as a Service (SaaS) angeboten. Die
Infrastruktur von Skype for Business, dem Vorgänger von Teams, konnte man noch On-Premise
betreiben. Diese Möglichkeit wurde jedoch mit dem Rollout von Teams abgeschafft und kann nur
noch als SaaS bezogen werden.
Produkte
Microsoft Teams
Teams ist eine Kollaborationsplattform, welche es Usern |
|
Slack
Slack ist hauptsächlich eine Messaging-Plattform, |
|
Google Workspace
Google Workspace ist eine Suite von verschiedenen |
Anwendungsfall
Ein neuer Virus, COVID-20, bricht aus. Alle Mitarbeiter müssen wieder ins Homeoffice verlegen. Die
Arbeitsmoral und die Produktivität sinken, Projekte werden verzögert. Mitarbeiter kommen nicht
mehr in den Austausch miteinander.
Durch die Einführung von MS Teams kommt man wieder täglich in den Austausch mit anderen
Mitarbeitern. Dazu könnte man zum Beispiel ein Daily Standup einführen. (Projekt-)Meetings kann
man Dank Teams (fast) wie gewohnt durchführen. Die Zusammenarbeit kann durch das Teilen von
Dateien ebenfalls gewährleistet werden.
Schauen sie nur, wie fröhlich alle Mitarbeiter wieder sind:
Plattformübergreifend?
Natürlich! Kollaborationstools würden ihren Zweck nicht erfüllen, wenn ein Teamkollege mit einem
MacOS ausgeschlossen werden würde.
Die Tools sind meistens auf jedem gängigen Desktop OS (Windows, MacOS, Linux), sowie Mobile OS
(iOS, Android) erhältlich. Zudem kann man sich im Web einloggen und eine teils abgespeckte Version
ist im Browser erhältlich.
Marktplatz - Mailempfang
Zweck
E-Mail ist eine der am häufigsten verwendeten Kommunikationsmethoden in der heutigen digitalen
Welt und wird für persönliche und geschäftliche Zwecke genutzt. Der Mailempfang dient dazu, EMails von anderen Personen oder Systemen zu empfangen und in einem E-Mail-Postfach anzuzeigen,
damit man sie lesen und darauf antworten kann.
Entstehung
E-Mail ist eine wichtige Erfindung für die Kommunikation. Früher haben die Leute Nachrichten per
Brief, Telegramm oder Fax verschickt. Dann, Ende der 1980er Jahre, hat sich die E-Mail auf der
ganzen Welt verbreitet, besonders durch das Arpanet. Ein Mann namens Ray Tomlinson gilt als
Erfinder, weil er 1971 den ersten elektronischen Brief verschickt hat. Heute benutzen wir oft SMTP,
um E-Mails zu verschicken, und es gibt verschiedene Wege, um E-Mails abzurufen, wie zum Beispiel
POP3, IMAP und Webmail.
Funktionsweise
Die Funktionsweise des Mailempfangs beinhaltet das Synchronisieren der E-Mails von einem
Mailserver zu einem Mail-Client. Es basiert auf verschiedenen Protokollen, die für den Austausch von
E-Mails zwischen Servern und Clients verwendet werden. Das häufigste Protokoll für den
Mailempfang ist das Internet Message Access Protocol (IMAP) oder das Post Office Protocol (POP).
Vergleich IMAP / POP
IMAP
IMAP ermöglicht es, E-Mails auf dem Server zu lassen und sie synchronisiert zwischen Server und
Client zu halten. Dies ist nützlich, wenn man von mehreren Geräten auf ein E-Mail-Konto zugreifen
möchte, da der Zustand der E-Mails überall gleich bleibt.
POP
Bei POP werden E-Mails vom Server auf den Client heruntergeladen und vom Server gelöscht. Es ist
eine einfachere Methode, die für Offline-Zugriff geeignet ist. Ein Anwendungsfall für POP3 ist das
Abrufen von E-Mails aus einem Ticketsystem. Dabei ist es nicht erforderlich, dass die E-Mails der
bearbeiteten Tickets weiterhin auf dem Mailserver bestehen bleiben.
IMAP | POP3 |
Verbindung auf Port 143 (Verschlüsselt: 993) | Verbindung auf Port 110 (Verschlüsselt: 995) |
Dauerhafte Verbindung | Verbindung nur zum E-Mail-Abruf |
Antwort auf Kommandos wird nicht abgewartet | Kommandos benötigen sofortige Antwort |
E-Mails bleiben auf dem Server, bis sie gelöscht werden | E-Mails werden nach erfolgreichem Abrufen vom Mailserver gelöscht |
Abruf der Nachrichten von mehreren Clients möglich | Abruf der Nachrichten nur von einem einzige Client möglich |
Nur gewünschte Mails werden abgerufen | Alle erhaltenen Mails werden abgerufen |
Produkte
Es gibt eine Vielzahl von E-Mail-Client-Software und Dienstleistern, die den Mailempfang
ermöglichen. Einige der bekanntesten sind Microsoft Outlook, Mozilla Thunderbird, Mailbird und
viele mehr. Darüber hinaus bieten verschiedene Unternehmen E-Mail-Hosting-Dienste an, die den
Mailempfang auf Serverebene ermöglichen.
Anwendungsfall
Ein Anwendungsfall für plattformübergreifenden Mailempfang könnte die Verwaltung von GeschäftsE-Mails sein. Ein Mitarbeiter, der mehrere Geräte und Plattformen nutzt, muss in der Lage sein, EMails nahtlos auf verschiedenen Geräten wie Desktops, Laptops, Tablets und Smartphones zu
empfangen und zu verwalten. Eine plattformübergreifende Maillösung würde es ermöglichen, dass
alle eingehenden E-Mails unabhängig vom Gerät oder der Plattform sofort empfangen und
bearbeitet werden können. Dies würde die Effizienz und Produktivität in geschäftlichen
Kommunikationsprozessen verbessern, unabhängig davon, welches Gerät gerade genutzt wird.
Plattformübergreifend?
E-Mails können von verschiedenen Geräten und Betriebssystemen empfangen werden, da
standardisierte Protokolle wie SMTP, POP3 und IMAP von Mail-Clients auf allen Betriebssystemen
unterstützt werden. Dies ermöglicht eine reibungslose und universelle E-Mail-Kommunikation,
unabhängig vom verwendeten Gerät oder Betriebssystem.
Marktplatz - Datenbanken
Wozu dient’s?
Für effiziente, dauerhafte und fehlerfreie Speicherung großer Datenmengen sowie in der
bedarfsgerechten Bereitstellung benötigter Informationen.
Wie entstand’s?
IBM hat die ersten grossen DBMS (Datenbank Management System) erfunden. (1970)
NoSQL kam in den 2000ern richtig auf.
Wie funktioniert’s?
Marktplatz - HTTP
1989-XXXX
HTTP wurde zusammen mit dem WWW für Zugriffe auf Webserver entwickelt. Durch die Standardisierung des Protokolls wird es bis heute in der HTTPS Variante eingesetzt. Mit sogenannten Methods können verschiedene Arten von Anfragen an einen Server gesendet werden.
Client
Jeglicher moderner Browser oder cli.
Server
nginx, Apache, Flask, IIS
Marktplatz - GOPHER
1991-1993
Daten Zugriff ohne Authentifizierung für Universitäten und Regierungen. Als Ersatz für das aufwendige File Transfer Protokoll. Nachdem OS Visuell besser wurden und FTP sich weiterentwickelte starb das Protokoll aus. Unteranderem weil Spezielle Browser für den Zugriff nötig waren da HTTP nicht verwendet wurde.
Client
Veronica. Ein Browser mit den Nötigen Tools.
Server
Gopherd
Marktplatz - Mailversand
Wozu dient’s?
Der Mailversand ist eine essenzielle elektronische Form der Kommunikation für die zwischen zwei Benutzern, welches durch das Internet oder Private Netzwerk versendet werden. Ausserdem dient es zu wohl als Austausch von Informationen, Dateien und Dokumenten.
Wie entstand’s?
1965
Vermutlich wurde das erste E-Mail-System «Mailbox» am Institut für Technologie in Massachusetts
in den USA verwendet. Die Methodik war an diesem Zeitpunkt, dass die Kollegen an den Computern
sich gegenseitig eine Nachricht hinterlassen konnten, welches beim nächsten Login angezeigt wird.
1971
1971 versandte Ray Tomlinson die erste E-Mail im heutigen Sinne, wobei er das @-Zeichen
auswählte, um den lokalen Teil von der Domain zu trennen. Er schickte sich selbst eine Nachricht
und kreierte somit die erste E-Mail-Adresse der Welt: "tomlinson@bbntenexa".
1984
Auch in Deutschland wurde die erste E-Mail empfangen. Michael Rotert von der Universität
Karlsruhe empfing unter seiner eigenen E-Mail-adresse «rotert@germany» eine E-Mail aus den USA,
welches 1 Tag zuvor geschickt wurde. Die Antwort kam vom der US Plattform CSNET und lautete
«Wilkommen in CSNET! Michael, this is your official welcome to CSNET.»
1996
Auch mit dem Bereitstellen des Internetszugangs in den 90er, bereitstellte sich Mit Hotmail (heute
Outlook) stand der Allgemeinheit der erste kostenfreie E-Mail-Anbieter zur Verfügung! Nun konnte
man sich selbst eine Adresse anlegen und mit verschiedenem Benutzer kommunizieren. In kürzester
Zeit stellten sich weitere Provider auf den Markt.
Heute
Heute ist der Mailvesand nicht mehr wegzudenken. Nachrichten, Dateien und Dokumente werden
alltäglich über die Breite Welt versendet. Im Privaten, sowie im Geschäftlichen Teil, ist der
Mailversand sehr praktisch für den Austausch.
Wie funktioniert’s?
Simple Mail Transfer Protocol (SMTP)
Überlegen Sie sich einen sinnvollen Anwendungsfall
Ein sinnvoller Anwendungsfall für den Mailversand ist beispielsweise die Kommunikation in einem Unternehmen. Mitarbeiter können E-Mails verwenden, um Informationen auszutauschen, Projektupdates zu teilen, Termine zu vereinbaren und wichtige Dokumente zu versenden. Durch die Verwendung von E-Mail können Mitarbeiter effizient kommunizieren, ohne physisch am selben Ort sein zu müssen.
Plattformübergreifend?
der Mailversand ist in der Regel plattformübergreifend. E-Mails können von verschiedenen Geräten und Betriebssystemen gesendet und empfangen werden, solange sie über einen Internetzugang verfügen und mit einem kompatiblen E-Mail-Client oder Webmail-Dienst verbunden sind. Dies ermöglicht eine nahtlose Kommunikation zwischen Benutzern unabhängig von ihren Geräten oder Betriebssystemen.
Marktplatz - FTP
Aufgabe / Dienst
Wie der Name (Dateitransfer) schon sagt, ermöglicht er es den Austausch von Befehlen und Daten zwischen einem Computer / Programm und dem Server.
Entstehung
Das FTP-Protokoll wurde damals 1971 von einem IT-Student mit dem Namen Abhay Bhushan entwickelt. Ursprünglich sollte das Protokoll den Austausch zwischen Computer im ARPANET ermöglichen.
ARPANET: Das Arpanet war damals ein Computernetzwerk, welches von der US AirForce genutzt worden ist, es ist bekannt als der Vorgänger des heutigen Internets
Funktionalität
Die Verbindung zu einem FTP-Server, verläuft wie oben abgebildet, über 2 Kanäle.
Datenkanal: Hier werden Dateien übertragen.
Steuerkanal: Hier werden Kommandos und Befehle übertragen.
FTP Produkte
Hier in der Tabelle sieht man 9 verschiedene Produkte, Lösungen welche man beziehen kann, wenn man einen FTP Server betreiben möchte.
Name | Erscheinungsjahr | Entwickler | Plattform | Kosten |
Commander One | 2015 | Eltima Software | macOS | 29,99 $ |
Cyberduck | 2002 | Iterate | Windows, macOS | Kostenfrei |
FileZilla | 2001 | Tim Kosse | Windows, macOS, Linux | Kostenfrei |
FireFTP | 2004 | Mime Cuvalo | Plattformübergreifend | Kostenfrei |
ForkLift | 2007 | BinaryNights | macOS | 29,95 $ |
SmartFTP | 2001 | SmartSoft Ltd. | Windows | 40$ / Jahr |
Transmit | 1998 | Panic | macOS | 45 $ |
WinSCP | 2000 | Martin Prikry | Windows | Kostenfrei |
WISE-FTP | 1998 | AceBIT | Windows | 50 $ |
Anwendungsfall
Typischerweise benutzt man den FTP-Server, wenn man eine sehr grosse Menge an Dateien versenden/hochladen möchte.
Ablauf:
- Der Benutzer stellt per IP-Adresse und Port, eine Verbindung zum FTP-Server her. Der Server antwortet anschliessend darauf, das die Verbindung erfolgreich war.
- Der Benutzer authentifiziert sich nun auf dem Server mit Benutzername und Passwort.
- Der Benutzer kann nun Befehle auf dem FTP-Server ausführen, z.B. hochladen, herunterladen oder löschen.
Anwendungsfall wäre nun, wenn jemand ganz viele Bilder von einem Firmenevent versenden möchte, funktioniert dies über das Mail z.B. nicht. Nun kann der Benutzer, diese Bilder auf den FTP-Server hochladen. All diejenigen, welche diese dann benötigen, können sich auf den Server anmelden und diese Bilder herunterladen.
Plattformübergreifend
Dies ist von Produkt zu Produkt unterschiedlich, wie oben in der Tabelle dargestellt, kann man dort sehen welches Produkt für welche Plattformen geeignet ist.
DHCP-Auftrag
Aufgabenstellung
Erstellung eines Netzwerklabors
1. Vorbereitung der Geräte:
- Ein Debian Linux-Server wird aufgesetzt, um als DHCP-Server zu fungieren.
- Ein Router wird ausgesetzt der die zwei Subnetze verbindet und zur gleichen Zeit als Gateway ins Internet dient.
- Zwei Windows-PCs werden vorbereitet, um als DHCP-Client zu dienen (Einer im gleichen Subnetz und der andere im DHCP-Relay Subnetz).
2. Netzwerksetup:
- Auf dem Router werden drei Netzwerk-Interfaces eingerichtet: eines für das interne Netzwerk (intnet) mit der Subnetzmaske 192.168.1.0/26, eines für das interne Netzwerk (DHCP-Relay) und eines für die Internetverbindung (externe DHCP-Zuweisung).
Einrichtungen und Konfiguration des DHCP-Servers
1. Server-Setup auf Debian:
- Der ISC DHCP Server wird auf dem Debian-System installiert.
2. Server-Konfiguration:
- Der DHCP-Server wird so konfiguriert, dass er dem Windows-Client basierend auf dessen MAC-Adresse eine feste IP-Adresse zuweist. Dem Windows-Client wird eine feste IP im intnet-Netzwerk zugewiesen (z.B. 192.168.1.9/26).
3. Überprüfung:
- Der DHCP-Server wird gestartet, um zu überprüfen, ob der Client eine IP-Adresse erhält.
- Mithilfe von Wireshark wird der DHCP-Kommunikationsprozess zwischen Server und Client aufgezeichnet und analysiert. Also es wird mit der Wikipedia Grafik abgeglichen.
Erweiterte Konfiguration und Analyse
1. DHCP-Relay:
- Es wird mit der Einrichtung eines DHCP-Relays auf Linux oder in einer simulierten Umgebung wie Packet Tracer experimentiert, um den Prozess der Weiterleitung von DHCP-Anfragen über verschiedene Netzwerke hinweg zu verstehen.
2. Vergleich von DHCP-Implementierungen:
- Die Unterschiede zwischen verschiedenen DHCP-Server-Implementierungen, wie udhcpd und isc-dhcp-server, werden durch praktische Tests und Vergleiche ermittelt.
3. Fortgeschrittene Server-Optionen:
- Fortgeschrittene Konfigurationsmöglichkeiten des isc-dhcp-Servers, wie die Gruppierung von Geräten basierend auf Hersteller-spezifischen Informationen, werden erkundet und umgesetzt.
Theorie
Grundlagen zu DHCP
Das Dynamic Host Configuration Protocol (DHCP) ist ein Netzwerkprotokoll, das in IP-Netzwerken eingesetzt wird, um Computern und anderen Geräten automatisch IP-Adressen und weitere notwendige Netzwerkinformationen zuzuweisen. Dieser Prozess erleichtert die Netzwerkverwaltung erheblich, da die manuelle Konfiguration von Netzwerkgeräten in großen und dynamischen Netzwerken umständlich und fehleranfällig wäre.
DHCP-Discover und DHCP-Offer
Der DHCP-Vorgang beginnt mit einem DHCP-Discover-Paket, das ein Client ins Netzwerk sendet, um einen DHCP-Server zu finden. Dieses Paket wird als Broadcast gesendet, da der Client zu diesem Zeitpunkt noch keine IP-Adresse hat. DHCP-Server im Netzwerk antworten darauf mit einem DHCP-Offer-Paket, das dem Client eine IP-Adresse und eventuell weitere Konfigurationsparameter wie Subnetzmaske, DNS-Server und Standardgateway anbietet.
DHCP-Request und DHCP-Acknowledgment
Nachdem der Client ein oder mehrere Angebote erhalten hat, wählt er eines aus und sendet einen DHCP-Request zurück an den Server, um das Angebot anzunehmen. Der DHCP-Server bestätigt die Zuteilung der IP-Adresse und der Netzwerkeinstellungen mit einem DHCP-Acknowledgment. Erst nach diesem Schritt ist der Client vollständig im Netzwerk konfiguriert und kommunikationsfähig.
DHCP-Relay
In größeren Netzwerken oder Netzwerken mit mehreren Subnetzen ist es oft notwendig, DHCP-Anfragen über Router hinweg weiterzuleiten, da Broadcasts nicht durch Router weitergeleitet werden. Hier kommt das DHCP-Relay ins Spiel. Ein DHCP-Relay-Agent leitet DHCP-Pakete zwischen Clients und Servern über verschiedene Netzwerksegmente hinweg. So können Clients in einem Subnetz IP-Konfigurationen von einem DHCP-Server in einem anderen Subnetz erhalten.
DHCP-Optionen
DHCP ermöglicht die Verwendung verschiedener Optionen, um eine Vielzahl von Konfigurationsparametern zu übermitteln. Zu den gängigen Optionen gehören Router (Standardgateway), DNS-Server, NTP-Server und viele andere. Diese Optionen erlauben eine flexible und detaillierte Konfiguration der Client-Geräte und unterstützen spezifische Netzwerkanforderungen.
Aufbau der Labor Umgebung
vogelsrv42001 - Router (VYOS)
Grundkonfiguration
Aktivierung der permanenten Konfiguration
Nach dem Einloggen mit den Zugangsdaten (Benutzername: vyos, Passwort: vyos) wurde VyOS dauerhaft auf der Festplatte installiert, indem den Anweisungen des Installationsassistenten gefolgt wurde. Dies gewährleistet, dass die Konfiguration auch nach einem Neustart erhalten bleibt.
install image
Einrichten der Netzwerkschnittstellen
Mit der abgeschlossenen Installation begann die Konfiguration der Netzwerkschnittstellen, Routing-Protokolle und NAT-Regeln:
1. Starten des Konfigurationsmodus.
configure
2. Konfiguration der Netzwerkschnittstellen mit festen IP-Adressen oder über DHCP und Zuweisung passender Beschreibungen:
set interfaces ethernet eth0 address dhcp
set interfaces ethernet eth0 description 'OUTSIDE'
set interfaces ethernet eth1 address 192.168.1.1/26
set interfaces ethernet eth1 description 'VOGEL_INTNET'
set interfaces ethernet eth2 address 192.168.1.65/26
set interfaces ethernet eth2 description 'VOGEL_DHCP_RELAY'
3. Einrichten einer statischen Route für den Internetzugang durch Ersetzen von <Your_Gateway_IP>
mit der IP des Gateways.
set protocols static route 0.0.0.0/0 next-hop <Your_Gateway_IP>
4. Einrichten von NAT-Regeln, um internen Netzwerken Zugang zum Internet zu ermöglichen:
set nat source rule 100 outbound-interface name eth0
set nat source rule 100 source address 192.168.1.0/26
set nat source rule 100 translation address masquerade
set nat source rule 101 outbound-interface name eth0
set nat source rule 101 source address 192.168.1.64/26
set nat source rule 101 translation address masquerade
5. Anwenden und Speichern der Konfiguration:
commit
save
Überprüfung der Konfiguration
Nach dem Speichern der Konfiguration erfolgte eine Überprüfung, um die korrekte Einrichtung sicherzustellen:
1. Überprüfung der Schnittstellenkonfiguration mittels Anzeige aller Konfigurationen der Schnittstellen, inklusive der zugewiesenen IP-Adressen und Beschreibungen.
show interfaces
2. Testen der Konnektivität und Routing-Einstellungen durch erfolgreiches Pingen der IP-Adresse 8.8.8.8 (Google DNS), was die korrekte Funktion der statischen Route und Internetverbindung bestätigte.
ping 8.8.8.8
3. Überprüfung der NAT-Regeln, wobei der entsprechende Befehl die konfigurierten NAT-Regeln und ihre Details anzeigte, was bestätigte, dass das NAT korrekt eingerichtet wurde.
show nat source rules
vogelsrv42002 - Ubuntu-Server (ISC-DHCP)
Grundkonfiguration
Überprüfen der aktuellen Netzwerkkonfiguration (Normalerweise nicht nötig):
Öffnen eines Terminals auf dem Debian- oder Ubuntu-Server und Ausführen des Befehls ip a
zur Anzeige der aktuellen Netzwerkeinstellungen und -schnittstellen.
ip a
Konfiguration der Netzwerkschnittstelle ens33
Ziel war es, die Schnittstelle ens33 mit einer statischen IP-Adresse einzurichten, durch Bearbeitung der Netplan-Konfigurationsdatei in einem Texteditor wie nano.
nano /etc/netplan/00-installer-config.yaml
Hinzufügen eines Abschnitts zur Datei, der ens33 eine statische IP-Adresse zuweist.
# This is the network config written by 'subiquity'
network:
ethernets:
ens33:
dhcp4: no
addresses: [192.168.1.2/26]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [1.1.1.1, 1.0.0.1]
version: 2
Anwenden der Netzwerkkonfiguration
Durch Ausführung des entsprechenden Befehls wurde ens33 mit der in der Netplan-Konfigurationsdatei festgelegten statischen IP-Adresse konfiguriert.
sudo netplan apply
Einrichten und Konfigurieren eines DHCP-Servers
ISC-DHCP-Server Installation
Zunächst erfolgte die Installation des ISC-DHCP-Servers durch Öffnen eines Terminals und Eingabe des Installationsbefehls.
sudo apt install isc-dhcp-server
DHCP-Server konfigurieren
Die Hauptkonfigurationsdatei dhcpd.conf wurde mit einem Texteditor wie nano bearbeitet, um den DHCP-Server zu konfigurieren.
nano /etc/dhcp/dhcpd.conf
Es wurde eine Basis-Konfiguration eingefügt, die eine Standard-Lease-Zeit und eine maximale Lease-Zeit festlegt. Ein Subnetz wurde definiert, das einen IP-Bereich für die DHCP-Clients bereitstellt.
# minimal sample /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.192 {
range 192.168.1.10 192.168.1.50;
option routers 192.168.1.1;
option domain-name-servers 1.1.1.1;
}
Netzwerkschnittstelle für DHCP festlegen
Die isc-dhcp-server-Konfigurationsdatei wurde bearbeitet und die INTERFACES-Variable auf die entsprechende Schnittstelle gesetzt, in diesem Fall ens33.
nano /etc/default/isc-dhcp-server
DHCP-Server neu starten
Um die Änderungen anzuwenden, wurde der DHCP-Server neu gestartet.
sudo systemctl restart isc-dhcp-server
Überprüfung und Analyse
Es wurde ein Client im selben Netzwerk getestet, um sicherzustellen, dass der DHCP-Server korrekt arbeitet.
Konfiguration des DHCP-Servers mit Reservation
Die Hauptkonfigurationsdatei dhcpd.conf wurde erneut bearbeitet, um den DHCP-Server weiter zu konfigurieren.
nano /etc/dhcp/dhcpd.conf
# minimal sample /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.192 {
range 192.168.1.10 192.168.1.50;
option routers 192.168.1.1;
option domain-name-servers 1.1.1.1;
}
host vogelsrv42010 {
hardware ethernet 00:50:56:9e:c7:d7;
fixed-address 192.168.1.9;
}
Es wurde eine spezielle Konfiguration hinzugefügt, die einem Gerät mit der MAC-Adresse 00:50:56:9e:c7:d7 immer die IP-Adresse 192.168.1.9 zuweist, wenn es eine DHCP-Anfrage stellt. Nachdem diese Einstellung vorgenommen wurde, wurde der DHCP-Server neu gestartet, um die Änderungen zu übernehmen.
sudo systemctl restart isc-dhcp-server
vogelsrv42010 / vogelsrv42011 - Windows-Server
Erweiterte Konfiguration und Analyse
Einrichtung eines DHCP-Relays
Für die Einrichtung eines DHCP-Relays auf einem Router, beispielsweise VyOS, wurden folgende Schritte durchgeführt:
1. Beginn mit der Konfiguration im Konfigurationsmodus.
configure
2. Konfiguration des DHCP-Relay-Services, um Anfragen von eth2 zu sammeln und diese über eth1 an den DHCP-Server mit der Adresse 192.168.1.2 weiterzuleiten.
set service dhcp-relay server 192.168.1.2
set service dhcp-relay upstream-interface eth1
set service dhcp-relay listen-interface eth2
commit
save
Erstellung neuer DHCP-Subnets
Für die Erstellung neuer DHCP-Subnets wurde die DHCP-Konfigurationsdatei bearbeitet:
1. Öffnen der Datei `dhcpd.conf` mit einem Texteditor.
nano /etc/dhcp/dhcpd.conf
2. Hinzufügen der Konfiguration für die neuen Subnets und anschließendes Neustarten des DHCP-Servers, um die Änderungen zu übernehmen.
# minimal sample /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.192 {
range 192.168.1.10 192.168.1.50;
option routers 192.168.1.1;
option domain-name-servers 1.1.1.1;
}
subnet 192.168.1.64 netmask 255.255.255.192 {
range 192.168.1.70 192.168.1.110;
option routers 192.168.1.65;
option domain-name-servers 1.1.1.1;
}
3. Nachdem die Datei gespeichert und geschlossen wurde, startete den DHCP-Server neu, um die Änderungen zu übernehmen.
sudo systemctl restart isc-dhcp-server
Testen des DHCP-Relays
Zur Überprüfung des DHCP-Relays wurde ein neuer Windows-Server in das Netzwerk integriert und überprüft, ob dieser eine korrekte IP-Konfiguration vom DHCP-Server erhält.
1. Eine neue Windows-VM wurde im Netzwerk eingerichtet, das von eth2 bedient wird.
2. Nach dem Hochfahren der VM überprüft man, ob sie eine IP-Adresse aus dem entsprechenden DHCP-Bereich erhielt (z.B. 192.168.1.70 bis 192.168.1.110 für das Subnet 192.168.1.64/26).
3. Auf dem Windows-Server führt man in der Befehlszeile (CMD) den Befehl `ipconfig /all` aus, um die erhaltene IP-Konfiguration zu überprüfen. Es bestätigte sich, dass die VM korrekt eine IP-Adresse, Subnetzmaske, den Standardgateway und die DNS-Serverinformationen vom DHCP-Server zugewiesen bekam.
Einrichtung und Konfiguration eines DHCP-Servers mit udhcpd
Wichtig ist, dass DHCP-Relay von udhcpd nicht unterstützt wird und daher nur eine einfache DHCP-Konfiguration verwendet wurde.
udhcpd Installation:
Zunächst wurde udhcpd durch Öffnen eines Terminals und Eingabe des Installationsbefehls installiert:
sudo apt install udhcpd
DHCP-Server konfigurieren:
Die Hauptkonfigurationsdatei /etc/udhcpd.conf
wurde mit einem Texteditor wie nano bearbeitet, um den DHCP-Server zu konfigurieren. Es wurde eine Basis-Konfiguration eingefügt, die einen IP-Bereich für die DHCP-Clients bereitstellt:
sudo nano /etc/udhcpd.conf
start 192.168.1.10 # Start des IP-Bereichs
end 192.168.1.50 # Ende des IP-Bereichs
option subnet 255.255.255.192
option router 192.168.1.1
option dns 1.1.1.1
option lease 600 # Standard-Lease-Zeit in Sekunden
interface ens33
lease_file /var/lib/misc/udhcpd.leases
static_lease 00:50:56:9e:c7:d7 192.168.1.9
udhcpd aktivieren und starten:
Um udhcpd zu aktivieren und zu starten, wurde zunächst überprüft, ob es nicht durch eine Einstellung in /etc/default/udhcpd
deaktiviert ist. Anschließend wurde der DHCP-Server neu gestartet, um die vorgenommenen Änderungen anzuwenden:
sed -i '/DHCPD_ENABLED/ s/no/yes/' /etc/default/udhcpd
touch /var/lib/misc/udhcpd.leases
update-rc.d udhcpd defaults
sudo service udhcpd restart
udhcpd testen:
Nach dem Neustart wurde die Funktionalität von udhcpd getestet, indem ein Client im Netzwerk überprüft wurde, ob er eine IP-Adresse aus dem konfigurierten Bereich erhält.
Unterschiede zwischen udhcpd und dem ISC DHCP Server:
- Komplexität und Ressourcenverbrauch: udhcpd ist für kleinere Netzwerke oder Embedded-Systeme konzipiert und zeichnet sich durch geringeren Ressourcenverbrauch und einfache Konfiguration aus. ISC DHCP bietet umfangreichere Konfigurationsmöglichkeiten für größere Netzwerke, benötigt aber mehr Systemressourcen.
- Konfigurationsdatei: udhcpd verwendet eine einzige Konfigurationsdatei (
/etc/udhcpd.conf
), die einfacher gestaltet ist. ISC DHCP verwendet die Datei/etc/dhcp/dhcpd.conf
für komplexe Konfigurationsszenarien. - Funktionsumfang: udhcpd konzentriert sich auf Kern-DHCP-Funktionen und ist für einfache Szenarien geeignet. ISC DHCP bietet erweiterte Funktionen wie dynamisches DNS, IPv6-Unterstützung und detaillierte Zugriffskontrollen.
Einrichten eines ISC DHCP-Servers auf BSD
ISC DHCP-Server Installation:
Zuerst wurde die passende Version des ISC DHCP-Servers identifiziert und installiert:
pkg search isc-dhcp
sudo pkg install isc-dhcp44-server-4.4.3P1
DHCP-Server konfigurieren:
Die Hauptkonfigurationsdatei /usr/local/etc/dhcpd.conf
wurde mit einem Texteditor bearbeitet, um den DHCP-Server zu konfigurieren:
sudo nano /usr/local/etc/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.192 {
range 192.168.1.10 192.168.1.50;
option routers 192.168.1.1;
option domain-name-servers 1.1.1.1;
}
DHCP-Server aktivieren und starten:
Um den DHCP-Server zu aktivieren und beim Systemstart automatisch zu starten, wurde die Datei /etc/rc.conf
bearbeitet und der DHCP-Server gestartet:
dhcpd_enable="YES"
Dann haben wir den DHCP-Server gestartet, um sicherzustellen, dass unsere Konfigurationen angewandt werden:
sudo service isc-dhcpd start
FreeBSD DHCP testen:
Die Funktion des DHCP-Servers auf FreeBSD wurde getestet, indem überprüft wurde, ob ein Windows Server im Netzwerk eine IP-Konfiguration vom DHCP erhält.
Wireshark Analyse
Schliesslich wurde der Ablauf einer `ipconfig /renew` Anfrage in Wireshark aufgezeichnet und bestätigte die Übereinstimmung mit der Struktur, wie sie auch auf Wikipedia beschrieben ist.
Packet Tracer - DHCP Relay
Overview
Folgend ist der Packet Tracer Aufbau zu sehen um DHCP Relay zu testen.
vogelsrv42001
GigabitEthernet0/0
Konfiguration vom Router Interface zum VOGEL_INTNET Switch
GigabitEthernet1/0
Konfiguration vom Router Interface zum VOGEL_DHCP_RELAY Switch
DHCP-Relay konfiguration
Die Folgende konfiguration muss man noch extra auf dem Router machen damit der DHCP Relay funktioniert.
conf t
interface GigabitEthernet1/0
ip helper-address 192.168.1.2
exit
wr
vogelsrv42002
Server Netzwerkkonfiguration
Netzwerkkonfiguration des DHCP Servers im VOGEL_INTNET
DHCP VOGEL_INTNET Konfiguration
DHCP Konfiguration von VOGEL_INTNET. Der Name darf nicht geändert werden, da der Packet Tracer sonst einen neuen erstellt, was zu Problemen führen kann.
DHCP VOGEL_DHCP_RELAY Konfiguration
DHCP Konfiguration von VOGEL_DHCP_RELAY.
vogelsrv42010
DHCP Konfiguration
Prüfen, ob der Client eine DHCP IP im VOGEL_INTNET erhält.
vogelsrv42011
DHCP Konfiguration
Prüfen, ob der Client eine DHCP IP im VOGEL_DHCP_RELAY erhält.
PXE-Auftrag
Aufgabenstellung
Vorbereitung der Geräte
- Ein Debian Linux-Server wird aufgesetzt, um als TFTP PXE Server zu fungieren. Dieser Server wird für das Netzwerkboot und die Bereitstellung von Betriebssystem-Images für Diskless-Stationen verantwortlich sein.
- Ein Client-PC (virtuelle Maschine) wird vorbereitet, um als Diskless-Station zu dienen, die über Netzwerk bootet und das Betriebssystem vom PXE-Server lädt.
Einrichtung und Konfiguration des TFTP PXE Servers
- Installation und Konfiguration des TFTP-Servers auf dem Debian System, der für das Hosting der Boot-Images und des PXE-Boot-Loaders verantwortlich ist.
- Einrichtung des PXE-Boot-Loaders (z.B. PXELINUX) und Bereitstellung der notwendigen Boot-Images sowie der Konfigurationsdateien, um den Netzwerkboot zu ermöglichen.
Testen und Überprüfung
- Durchführung eines Boot-Vorgangs auf dem Client-PC (Diskless-Station) über das Netzwerk, um zu überprüfen, ob das Betriebssystem erfolgreich vom TFTP PXE Server geladen und gestartet wird.
Theorie
Aufbau der Umgebung
Konfiguration des TFTP Servers
Ubuntu Server
TFTP SERVER in Betrieb nehmen
Installation des TFTP-Servers:
apt install tftpd-hpa
systemctl enable tftpd-hpa
Erstellung des TFTP-Verzeichnisses:
mkdir /srv/tftp
PXELinux in Betrieb nehmen
Installation von PXELinux und Syslinux:
Für Netzwerk-Boot-Dienste ist die Installation von PXELinux notwendig. Der Befehl apt install pxelinux syslinux-common
installiert PXELinux sowie die notwendigen Syslinux-Komponenten auf Ihrem Server. Diese Software ermöglicht es Netzwerkgeräten, über das Netzwerk zu booten, indem sie die erforderlichen Boot-Dateien bereitstellt.
apt install pxelinux syslinux-common
Kopieren der PXELinux Boot-Dateien:
Nach der Installation müssen die PXELinux Boot-Dateien in das TFTP-Verzeichnis kopiert werden. Dies wird durch die Befehle cp /usr/lib/PXELINUX/lpxelinux.0 /srv/tftp/.
und cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/.
erreicht. Diese Dateien sind notwendig, um den Boot-Prozess über das Netzwerk zu initiieren.
cp /usr/lib/PXELINUX/lpxelinux.0 /srv/tftp/.
cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/.
Erstellung des PXELinux Konfigurationsverzeichnisses:
mkdir /srv/tftp/pxelinux.cfg
Konfiguration des Boot-Menüs:
In der Konfigurationsdatei default
unter /srv/tftp/pxelinux.cfg
fügen Sie die notwendigen Einträge für das Booten des Slitaz Betriebssystems hinzu. Dies beinhaltet den Namen der Boot-Option, das zu startende Menü-Label, den Pfad zum Kernel und die Kernel-Optionen, einschließlich der Spezifikation der Initrd-Dateien und Boot-Parameter.
nano /srv/tftp/pxelinux.cfg/default
default slitaz
prompt 0
label slitaz
menu label Slitaz
kernel slitaz/bzImage
append initrd=slitaz/rootfs4.gz,slitaz/rootfs3.gz,slitaz/rootfs2.gz,slitaz/rootfs1.gz rw root=/dev/null vga=normal autologin
Slitaz-Dateien bereitstellen
Kopieren der Slitaz-Dateien:
Die letzten Schritte umfassen das Kopieren der Slitaz-Betriebssystemdateien in das TFTP-Serververzeichnis. Dazu gehören der Kernel (bzImage
) und die Initrd-Dateien (rootfs*.gz
). Diese Dateien müssen in den entsprechenden Unterverzeichnissen innerhalb des /srv/tftp
Verzeichnisses platziert werden, damit sie während des Boot-Prozesses über das Netzwerk zugänglich sind.
cd ~
wget http://mirror.slitaz.org/iso/4.0/slitaz-4.0.iso
mount -o loop slitaz-4.0.iso /mnt
mkdir /srv/tftp/slitaz
cp /mnt/boot/bzImage /mnt/boot/rootfs* /srv/tftp/slitaz/.
umount /mnt
Konfiguration des DHCP Servers
Voraussetzung des folgenden ist das man den DHCP Auftrag bereits erledigt hat: DHCP-Auftrag
Wenn man einen funktionierenden DHCP hat kann man die folgende host Konfiguration hinzufügen (Wichtig ist es die richtige MAC-Adresse zu verwenden)
nano /etc/dhcp/dhcpd.conf
host vogelsrv42012 {
hardware ethernet 00:50:56:9e:27:5e;
fixed-address 192.168.1.8;
next-server 192.168.1.3;
filename "lpxelinux.0";
}
sudo systemctl restart isc-dhcp-server
Testen des PXE Boots
Durchführung eines Boot-Tests über das Netzwerk, um die Konfiguration und Funktionsfähigkeit des gesamten Setups zu überprüfen.
DNS-Auftrag
Aufgabenstellung
Einrichtung des Labors:
- Ein Debian Linux-Server wird konfiguriert, um als DNS-Server zu dienen, wobei BIND (Berkeley Internet Name Domain) als Softwarelösung zum Einsatz kommt.
Konfiguration des DNS-Servers:
- Installation von BIND: Der BIND-DNS-Server wird auf dem Debian Linux-System installiert.
- Einrichtung der Zonen-Dateien: Konfiguration und Einrichtung der primären DNS-Zone für eine Domäne. Dabei wird besonderer Wert auf die Erstellung und Konfiguration der Zonendatei gelegt, einschließlich aller relevanten DNS-Einträge und des SOA (Start of Authority) Records.
- Konfiguration eines sekundären DNS-Servers: Einrichtung eines sekundären (Slave) DNS-Servers für Redundanz und zur Demonstration der automatisierten Zonensynchronisation.
Analyse und erweiterte Konfiguration:
- Analyse der DNS-Anfragen: Verwendung von Wireshark zur Aufzeichnung und Analyse der DNS-Anfragen. Dies umfasst das Verständnis der rekursiven Anfragen und der Antwortpakete.
- Erforschung verschiedener DNS-Record-Typen: Untersuchung und Erläuterung unterschiedlicher Arten von DNS-Einträgen (wie A, AAAA, MX, CNAME, TXT) und deren Anwendung.
- Dynamische DNS-Updates: Experimentieren mit dynamischen Updates von DNS-Einträgen. Nutzung von
tsig-keygen
zur Generierung sicherer Schlüssel für die Authentifizierung von Update-Anfragen. - Integration in bestehende Netzwerkumgebungen: Einbeziehung des konfigurierten DNS-Servers in ein bestehendes Netzwerk, eventuell unter Nutzung von exotischen Betriebssystemen, um deren Kompatibilität und Funktionalität in Bezug auf DNS-Anfragen zu testen.
- Erforschung von DNS unter IPv6: Untersuchung der Besonderheiten und Konfigurationen von DNS in IPv6-Netzwerken, einschließlich Reverse-DNS.
Theorie
DNS Einträge
A (Address Record)
- Verwendung: Verknüpft einen Domainnamen mit der IP-Adresse eines Servers.
- Beispiel:
example.com A 192.0.2.1
- Seit: Das A-Record ist einer der ursprünglichen DNS-Einträge, eingeführt mit dem Start des DNS-Systems 1983.
AAAA (IPv6 Address Record)
- Verwendung: Ähnlich wie das A-Record, aber für IPv6-Adressen.
- Beispiel:
example.com AAAA 2001:0db8::1
- Seit: Eingeführt Anfang der 1990er Jahre als Teil der Einführung von IPv6.
PTR (Pointer Record)
- Verwendung: Wird für Reverse DNS (rDNS) Lookups verwendet, um eine IP-Adresse in den zugehörigen Hostnamen zu übersetzen.
- Beispiel:
1.2.0.192.in-addr.arpa PTR example.com
- Seit: Seit den Anfängen von DNS, 1983.
TXT (Text Record)
- Verwendung: Ermöglicht es einem Administrator, beliebigen Text in einem DNS-Eintrag zu speichern.
- Beispiel:
example.com TXT "v=spf1 include:_spf.google.com ~all"
- Seit: Eingeführt in den 1990er Jahren.
MX (Mail Exchange Record)
- Verwendung: Definiert die Mailserver, die für den Empfang von E-Mails für eine Domain zuständig sind.
- Beispiel:
example.com MX 10 mail.example.com
- Seit: Seit den Anfängen von DNS, 1983.
SRV (Service Record)
- Verwendung: Spezifiziert den Standort der Server für bestimmte Dienste.
- Beispiel:
_sip._tcp.example.com SRV 10 5 5060 sipserver.example.com
- Seit: Eingeführt in den späten 1990ern.
SPF (Sender Policy Framework)
- Verwendung: Hilft dabei, E-Mail-Spoofing zu verhindern, indem festgelegt wird, welche Mailserver E-Mails für eine Domain senden dürfen.
- Beispiel:
example.com TXT "v=spf1 ip4:192.0.2.0/24 -all"
- Seit: Eingeführt 2004, aber 2014 offiziell als veraltet erklärt und durch DMARC ersetzt.
NAPTR (Naming Authority Pointer)
- Verwendung: Wird verwendet in Verbindung mit SIP und ENUM zum Routing von Telefonanrufen über das Internet.
- Beispiel:
2.0.2.4.1.2.9.e164.arpa NAPTR 100 10 "u" "E2U+sip" "!^.*$!sip:number@example.com!" .
- Seit: Eingeführt in den späten 1990er Jahren.
CAA (Certificate Authority Authorization)
- Verwendung: Gibt an, welche Zertifizierungsstellen Zertifikate für eine Domain ausstellen dürfen.
- Beispiel:
example.com CAA 0 issue "letsencrypt.org"
- Seit: Eingeführt 2013.
NS (Name Server Record)
- Verwendung: Gibt die Nameserver an, die für eine bestimmte Domain zuständig sind.
- Beispiel:
example.com NS ns1.example.com
- Seit: Seit den Anfängen von DNS, 1983.
DS (Delegation Signer)
- Verwendung: Wird im DNSSEC-Protokoll verwendet, um die Authentizität der Nameserver-Informationen einer Domain zu bestätigen.
- Beispiel:
example.com DS 12345 5 1 49FD46E6C4B45C55D4AC69DB588D2B9411AEDB4F
- Seit: Eingeführt mit DNSSEC in den 2000er Jahren.
Hauptunterschiede und Änderungen bei DNS über IPv6
-
IPv6-Adressen:
- IPv6-Adressen sind länger und komplexer als IPv4-Adressen. Sie bestehen aus 128 Bit und werden in hexadezimaler Notation dargestellt, z. B.
2001:0db8:85a3:0000:0000:8a2e:0370:7334
.
- IPv6-Adressen sind länger und komplexer als IPv4-Adressen. Sie bestehen aus 128 Bit und werden in hexadezimaler Notation dargestellt, z. B.
-
AAAA-Records:
- Für IPv6-Adressen wird der AAAA-Record (Quad-A-Record) anstelle des A-Records verwendet, um eine Hostadresse zu speichern. Ein AAAA-Record kann eine IPv6-Adresse zu einem Domainnamen auflösen.
- Beispiel:
www.example.com. 3600 IN AAAA 2001:0db8:85a3::8a2e:0370:7334
- Reverse DNS:
- Reverse DNS-Lookups für IPv6-Adressen verwenden PTR-Records, die in der
ip6.arpa.
-Domain gespeichert werden. - Ein Beispiel für eine PTR-Zeile für IPv6 sieht folgendermaßen aus:
4.3.3.7.0.7.3.0.e.2.a.8.0.0.0.0.0.0.0.3.a.5.8.b.0.d.0.1.0.0.2.ip6.arpa. 3600 IN PTR www.example
Aufbau der Umgebung
Konfiguration des DNS Servers (Master)
Schritt 1: Installation von BIND
Paketdatenbank aktualisieren:
sudo apt-get update
BIND Installieren:
Alle nötigen Bind9 Packete installieren
sudo apt-get install bind9 bind9utils bind9-doc dnsutils
Schritt 2: Konfiguration von BIND
Edit the named.conf.options file:
Im named.conf.options file stehen allgemeine Konfigurationen drin wie zum beispiel, welches Subnetz abfragen machen darf oder zu welchem DNS die restlichen DNS Abfragen forgewarded werden sollen.
sudo nano /etc/bind/named.conf.options
acl LAN {
192.168.1.0/26;
};
options {
directory "/var/cache/bind"; // default directory
allow-query { localhost; LAN; }; // allow queries from localhost and 192.168.1.0-192.168.1.255
forwarders { 1.1.1.1; }; // use CloudFlare 1.1.1.1 DNS as a forwarder
recursion yes; // allow recursive queries
};
Mit named-checkconf kann man alle bind9 Dateien auf Syntax errors kontrollieren.
named-checkconf /etc/bind/named.conf.options
Edit the named.conf.local file
Im named.conf.local file stehen die Einstellungen für die einzelnen Zonen.
sudo nano /etc/bind/named.conf.local
zone "test.local" {
type master;
file "/etc/bind/zones/db.test.local"; # Pfad zur Zonendatei
allow-transfer { 192.168.1.5; }; # IP des sekundären DNS-Servers
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "/etc/bind/zones/db.test.local.rev"; # Pfad zur Zonendatei
allow-transfer { 192.168.1.5; }; # IP des sekundären DNS-Servers
}
named-checkconf /etc/bind/named.conf.local
Zone Folder erstellen:
mkdir /etc/bind/zones
Forward Zone File erstellen:
nano /etc/bind/zones/db.test.local
$TTL 604800
@ IN SOA ns1.test.local. admin.test.local. (
3 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1.test.local.
@ IN NS ns2.test.local.
ns1 IN A 192.168.1.4
ns2 IN A 192.168.1.5
router IN A 192.168.1.1
named-checkzone test.local /etc/bind/zones/db.test.local
Reverse Zone File erstellen:
nano /etc/bind/zones/db.test.local.rev
$TTL 604800
; SOA record with MNAME and RNAME updated
@ IN SOA cherry.example. root.cherry.example. (
2 ; Serial Note: increment after each change
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
; Name server record
@ IN NS ns1.test.local.
@ IN NS ns2.test.local.
; A record for name server
ns1 IN A 192.168.1.4
ns2 IN A 192.168.1.5
; PTR record for name server
4 IN PTR ns1.test.local.
5 IN PTR ns2.test.local.
; PTR record for clients
1 IN PTR router.test.local.
named-checkzone test.local /etc/bind/zones/db.test.local.rev
Bind Neustarten
systemctl restart bind9
Testen des DNS Servers
Forward Zone
nslookup ns1.test.local 192.168.1.4
nslookup ns2.test.local 192.168.1.4
nslookup router.test.local 192.168.1.4
Reverse Zone
nslookup 192.168.1.1 192.168.1.4
nslookup 192.168.1.4 192.168.1.4
nslookup 192.168.1.5 192.168.1.4
Konfiguration des DNS Servers (Slave)
Schritt 1: Installation von BIND
Paketdatenbank aktualisieren:
sudo apt-get update
BIND Installieren:
sudo apt-get install bind9 bind9utils bind9-doc dnsutils
Schritt 2: Konfiguration von BIND
Edit the named.conf.options file:
sudo nano /etc/bind/named.conf.options
acl LAN {
192.168.1.0/26;
};
options {
directory "/var/cache/bind"; // default directory
allow-query { localhost; LAN; }; // allow queries from localhost and 192.168.1.0-192.168.1.255
forwarders { 1.1.1.1; }; // use CloudFlare 1.1.1.1 DNS as a forwarder
recursion yes; // allow recursive queries
};
named-checkconf /etc/bind/named.conf.options
Edit the named.conf.local file
sudo nano /etc/bind/named.conf.local
zone "test.local" {
type slave;
file "secondary/db.test.local"; # Pfad für die sekundäre Zonendatei
masters { 192.168.1.4; }; # IP des primären DNS-Servers
};
zone "1.168.192.in-addr.arpa" IN {
type slave;
file "secondary/db.test.local.rev";
masters { 192.168.1.4; };
};
named-checkconf /etc/bind/named.conf.local
Bind Neustarten
systemctl restart bind9
Testen des DNS Servers
Forward Zone
nslookup ns1.test.local 192.168.1.5
nslookup ns2.test.local 192.168.1.5
nslookup router.test.local 192.168.1.5
Reverse Zone
nslookup 192.168.1.1 192.168.1.5
nslookup 192.168.1.4 192.168.1.5
nslookup 192.168.1.5 192.168.1.5
Erweiterte Konfiguration und Analyse
Einbinden in vorhandenes Netzwerk
vogelsrv42002 - DHCP Konfiguration ändern
sudo nano /etc/dhcp/dhcpd.conf
# minimal sample /etc/dhcp/dhcpd.conf
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.192 {
range 192.168.1.10 192.168.1.50;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.4, 192.168.1.5;
}
systemctl restart isc-dhcp-server
Testen der neuen Konfiguration
nslookup /release
nslookup /all
Wireshark Analyse der DNS abfragen
Forward abfragen
nslookup router.test.local
PTR-Auflösung des DNS-Servers:
- Beschreibung: Zeigt eine PTR-Abfrage von einem Client (192.168.1.9) an einen DNS-Server (192.168.1.4) zur Auflösung der IP-Adresse.
- Wireshark-Filter:
dns and ip.src == 192.168.1.9 and ip.dst == 192.168.1.4
- Erwartete Anzeige:
- Anfrage: PTR (Pointer) für eine bestimmte IP-Adresse.
- Quelle: 192.168.1.9
- Ziel: 192.168.1.4
Response der PTR-Auflösung:
- Beschreibung: Antwort des DNS-Servers (192.168.1.4) an den Client (192.168.1.9) mit der aufgelösten Domain.
- Wireshark-Filter:
dns and ip.src == 192.168.1.4 and ip.dst == 192.168.1.9
- Erwartete Anzeige:
- Antwort: PTR (Pointer) mit dem entsprechenden Domainnamen.
- Quelle: 192.168.1.4
- Ziel: 192.168.1.9
A-Auflösung des DNS-Namens router.test.local:
- Beschreibung: Zeigt eine A-Abfrage von einem Client (192.168.1.9) an einen DNS-Server (192.168.1.4) zur Auflösung des DNS-Namens
router.test.local
. - Wireshark-Filter:
dns and ip.src == 192.168.1.9 and ip.dst == 192.168.1.4
- Erwartete Anzeige:
- Anfrage: A (Address) für
router.test.local
. - Quelle: 192.168.1.9
- Ziel: 192.168.1.4
- Anfrage: A (Address) für
Response der A-Auflösung:
- Beschreibung: Antwort des DNS-Servers (192.168.1.4) an den Client (192.168.1.9) mit der IP-Adresse von
router.test.local
. - Wireshark-Filter:
dns and ip.src == 192.168.1.4 and ip.dst == 192.168.1.9
- Erwartete Anzeige:
- Antwort: A (Address) mit der IP-Adresse
192.168.1.1
. - Quelle: 192.168.1.4
- Ziel: 192.168.1.9
- Antwort: A (Address) mit der IP-Adresse
AAAA-Auflösung des DNS-Namens router.test.local:
- Beschreibung: Zeigt eine AAAA-Abfrage von einem Client (192.168.1.9) an einen DNS-Server (192.168.1.4) zur Auflösung des DNS-Namens
router.test.local
. - Wireshark-Filter:
dns and ip.src == 192.168.1.9 and ip.dst == 192.168.1.4
- Erwartete Anzeige:
- Anfrage: AAAA (IPv6 Address) für
router.test.local
. - Quelle: 192.168.1.9
- Ziel: 192.168.1.4
- Anfrage: AAAA (IPv6 Address) für
Response der AAAA-Auflösung:
- Beschreibung: Antwort des DNS-Servers (192.168.1.4) an den Client (192.168.1.9) mit der IPv6-Adresse von
router.test.local
oder einer leeren Antwort, wenn keine IPv6-Adresse vorhanden ist. - Wireshark-Filter:
dns and ip.src == 192.168.1.4 and ip.dst == 192.168.1.9
- Erwartete Anzeige:
- Antwort: keine Antwort (leer).
- Quelle: 192.168.1.4
- Ziel: 192.168.1.9
Reverse abfragen
nslookup 192.168.1.1
PTR-Auflösung des DNS-Servers:
- Beschreibung: Zeigt eine PTR-Abfrage von einem Client (192.168.1.9) an einen DNS-Server (192.168.1.4) zur Auflösung der IP-Adresse.
- Wireshark-Filter:
dns and ip.src == 192.168.1.9 and ip.dst == 192.168.1.4
- Erwartete Anzeige:
- Anfrage: PTR (Pointer) für eine bestimmte IP-Adresse.
- Quelle: 192.168.1.9
- Ziel: 192.168.1.4
Response der PTR-Auflösung:
- Beschreibung: Antwort des DNS-Servers (192.168.1.4) an den Client (192.168.1.9) mit der aufgelösten Domain.
- Wireshark-Filter:
dns and ip.src == 192.168.1.4 and ip.dst == 192.168.1.9
- Erwartete Anzeige:
- Antwort: PTR (Pointer) mit dem entsprechenden Domainnamen.
- Quelle: 192.168.1.4
- Ziel: 192.168.1.9
PTR-Auflösung der IP-Adresse:
- Beschreibung: Zeigt eine PTR-Abfrage von einem Client (192.168.1.9) an einen DNS-Server (192.168.1.4) zur Auflösung der IP-Adresse.
- Wireshark-Filter:
dns and ip.src == 192.168.1.9 and ip.dst == 192.168.1.4
- Erwartete Anzeige:
- Anfrage: PTR (Pointer) für die IP-Adresse
192.168.1.1
. - Quelle: 192.168.1.9
- Ziel: 192.168.1.4
- Anfrage: PTR (Pointer) für die IP-Adresse
Response der PTR-Auflösung:
- Beschreibung: Antwort des DNS-Servers (192.168.1.4) an den Client (192.168.1.9) mit der aufgelösten Domain.
- Wireshark-Filter:
dns and ip.src == 192.168.1.4 and ip.dst == 192.168.1.9
- Erwartete Anzeige:
- Antwort: router.test.local.
- Quelle: 192.168.1.4
- Ziel: 192.168.1.9
Host File
Editor als Administrator öffnen: Um die Hosts-Datei zu bearbeiten, müssen Sie den Editor mit Administratorrechten öffnen. Klicken Sie dazu auf das Startmenü, geben Sie "Editor" ein, klicken Sie mit der rechten Maustaste auf "Editor" und wählen Sie "Als Administrator ausführen".
Hosts-Datei öffnen: Im Editor, den Sie als Administrator geöffnet haben, navigieren Sie zu der Hosts-Datei. Gehen Sie zu "Datei" > "Öffnen" und geben Sie den folgenden Pfad ein: C:\Windows\System32\drivers\etc
Stellen Sie sicher, dass Sie "Alle Dateien (.)" auswählen, um die Hosts-Datei sichtbar zu machen.
DNS-Einträge hinzufügen: Fügen Sie am Ende der Hosts-Datei die gewünschten DNS-Einträge hinzu. Die Syntax ist einfach: zuerst die IP-Adresse, gefolgt von einem oder mehreren Domain-Namen, die zu dieser IP-Adresse aufgelöst werden sollen. Zum Beispiel:
1.1.1.1 bbw-it.ch
In diesem Beispiel wird bbw-it.ch
auf die IP-Adresse 1.1.1.1
aufgelöst.
-
Änderungen speichern: Nachdem Sie die gewünschten Einträge hinzugefügt haben, speichern Sie die Datei. Gehen Sie dazu auf "Datei" > "Speichern". Stellen Sie sicher, dass Sie die Datei im gleichen Verzeichnis und mit dem gleichen Namen speichern.
-
DNS-Cache leeren: Damit die Änderungen sofort wirksam werden, sollten Sie den DNS-Cache leeren. Öffnen Sie dazu die Eingabeaufforderung als Administrator. Klicken Sie auf das Startmenü, geben Sie "cmd" ein, klicken Sie mit der rechten Maustaste auf "Eingabeaufforderung" und wählen Sie "Als Administrator ausführen". Geben Sie dann den folgenden Befehl ein:
ipconfig /flushdns
-
Überprüfung der Einträge: Überprüfen Sie die neuen oder aktualisierten DNS-Einträge, um sicherzustellen, dass die Änderungen korrekt übernommen wurden. Verwenden Sie dazu den Befehl
nslookup
oder versuchen Sie, die entsprechende Domain in Ihrem Browser aufzurufen.
Wieso man nicht nslookup gebrauchen kann: https://serverfault.com/questions/698058/nslookup-not-using-hosts-fileping bbw-it.ch
Cloud DNS (AWS)
In AWS besitze Ich bereits eine DNS Zone Namens mregli.cloud. Die Zone wird gemanaged in einem Service Namens Route 53 (DNS-Service). Das UI sieht wie folgt aus:
In AWS kann man die folgenden DNS Einträge erstellen:
Der Grund wieso man den AWS DNS benutzen soll ist da man die DNS Server im Hintergrund nicht selber Managen muss und da die DNS Server eine 100% Verfügbarkeit versprechen da die DNS Funktion niemals ausfallen darf.
Dynamische DNS-Updates (Local)
Verzeichnis für Geheimnisse erstellen: Erstellen Sie ein Verzeichnis, um die generierten Schlüssel sicher zu speichern.
mkdir /secrets
tsig-keygen ddns >> /secrets/ddns
TSIG-Schlüssel (Transaction Signature) generieren: Erstellen Sie einen TSIG-Schlüssel, der zur Authentifizierung von DNS-Updates verwendet wird.
key "ddns" {
algorithm hmac-sha256;
secret "TYkYPXTJXYVc9gM3cDvSbuwSaZ73bLf6LVfeKmDCB78=";
};
DNS-Zonendatei konfigurieren: Konfigurieren Sie Ihre DNS-Zonendatei, um dynamische Updates zu ermöglichen. Diese Konfiguration definiert die Zone, die als Master fungiert, und legt die Datei fest, in der die Zonendaten gespeichert werden.
key "ddns" {
algorithm hmac-sha256;
secret "D/Y0qfay469q2Nk7ROASD48oSCnjfUUvw1hLirl6Gqc=";
};
...
zone "test.local" {
type master;
file "/etc/bind/zones/db.test.local"; # Pfad zur Zonendatei
allow-transfer { 192.168.1.5; }; # IP des sekundären DNS-Servers
allow-update { key "ddns"; };
};
...
Anpassung des AppArmor-Profils für BIND
AppArmor ist ein Sicherheitsmodul, das die Berechtigungen von Anwendungen auf Systemebene einschränkt. Um dynamische DNS-Updates zuzulassen, müssen Sie das AppArmor-Profil für den BIND-DNS-Server anpassen:
AppArmor-Profil für BIND lokalisieren: Das AppArmor-Profil für BIND befindet sich normalerweise unter /etc/apparmor.d/usr.sbin.named
. Öffnen Sie diese Datei zur Bearbeitung:
sudo nano /etc/apparmor.d/usr.sbin.named
AppArmor-Profil ändern: Fügen Sie die erforderlichen Berechtigungen für das Verzeichnis und die Dateien hinzu, die mit den DNS-Updates verbunden sind. Stellen Sie sicher, dass die folgenden Zeilen (oder ähnliche) enthalten und korrekt konfiguriert sind:
AppArmor-Profile neu laden: Nachdem Sie das Profil geändert haben, laden Sie die AppArmor-Profile neu, um die Änderungen anzuwenden:
sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.named
Berechtigungen überprüfen: Stellen Sie sicher, dass der BIND-Benutzer (named
oder ähnlich) die erforderlichen Berechtigungen hat, um in das Verzeichnis /etc/bind/zones
zu schreiben und die Datei db.test.local.jnl
zu erstellen oder zu ändern. Falls dies noch nicht geschehen ist, passen Sie die Berechtigungen an:
sudo chown -R bind:bind /etc/bind/zones
sudo chmod -R 755 /etc/bind/zones
BIND neu starten: Starten Sie den BIND-Dienst neu, um die Änderungen anzuwenden:
systemctl restart bind9
Update erneut versuchen: Versuchen Sie, das DDNS-Update erneut durchzuführen:
nsupdate -k /secrets/ddns
> server ns1.test.local
> update add home.test.local 200 A 1.2.3.4
> send
Testen kann man es dann über einen einfachen normalen nslookup
.
nslookup home.test.local
Dynamische DNS-Updates (Maas)
TSIG-Schlüssel speichern: Erstellen Sie die Datei /secrets/maas
und fügen Sie den TSIG-Schlüssel ein:
nano /secrets/maas
Fügen Sie den folgenden Inhalt in die Datei ein:
key "manuel.regli" {
algorithm hmac-sha256;
secret "m5W38E9ugk8hIsi0dav9FkOoIFIny2yiyISpn0MMDtA=";
};
Berechtigungen setzen: Stellen Sie sicher, dass die Datei die richtigen Berechtigungen hat, sodass nur der notwendige Benutzer (in diesem Fall der Benutzer, der nsupdate
ausführt) darauf zugreifen kann:
sudo chown root:root /secrets/maas
sudo chmod 600 /secrets/maas
DNS-Update durchführen: Verwenden Sie nsupdate
, um den DNS-Eintrag zu aktualisieren:
nsupdate -k /secrets/maas
> server ns.users.bbw-it.ch.
> update add test.manuel.regli.users.bbw-it.ch. 200 IN A 2.12.21.2
> send
Überprüfung des Updates: Überprüfen Sie den neuen DNS-Eintrag mit nslookup
:
nslookup test.manuel.regli.users.bbw-it.ch
nslookup test.manuel.regli.users.bbw-it.ch ns.users.bbw-it.ch
IPv6
Forward Zone file bearbeiten
Öffnen Sie die Zonendatei zur Bearbeitung:
nano /etc/bind/zones/db.test.local
Fügen Sie die IPv6-Einträge und andere DNS-Einträge wie folgt hinzu:
$ORIGIN .
$TTL 604800 ; 1 week
test.local IN SOA ns1.test.local. admin.test.local. (
4 ; serial
604800 ; refresh (1 week)
86400 ; retry (1 day)
2419200 ; expire (4 weeks)
604800 ; minimum (1 week)
)
NS ns1.test.local.
NS ns2.test.local.
$ORIGIN test.local.
$TTL 200 ; 3 minutes 20 seconds
home A 1.2.3.4
$TTL 604800 ; 1 week
ns1 A 192.168.1.4
ns1 AAAA fe80::250:56ff:fe9e:7055
ns2 A 192.168.1.5
router A 192.168.1.1
Reverse Zone file bearbeiten
Um herauszufinden wie der Eintrag lauten muss kann man den folgenden Trick verwenden:
dig -x fe80::250:56ff:fe9e:7055
Reverse Zone Datei bearbeiten: Öffnen Sie die Datei zur Bearbeitung:
nano /etc/bind/zones/db.8.e.f.ip6.arpa
Inhalt der Reverse Zone Datei: Fügen Sie die PTR-Einträge hinzu, um die IPv6-Adresse aufzulösen:
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2024052601 ; Seriennummer
3600 ; Refresh
1800 ; Retry
1209600 ; Expire
3600 ) ; Minimum TTL
@ IN NS ns1.test.local.
@ IN NS ns2.test.local.
5.5.0.7.e.9.e.f.f.f.6.5.0.5.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. 3600 IN PTR ns1.test.local.
Konfiguration in named.conf.local
named.conf.local bearbeiten: Öffnen Sie die Datei zur Bearbeitung:
nano /etc/bind/named.conf.local
Konfigurationsblock für die Reverse Zone hinzufügen: Fügen Sie den folgenden Block hinzu:
zone "8.e.f.ip6.arpa" IN {
type master;
file "/etc/bind/zones/db.8.e.f.ip6.arpa";
allow-transfer { 192.168.1.5; };
};
Testen
Forward Zone
Reverse Zone:
dig -x fe80::250:56ff:fe9e:7055
Reflexion
Zusammenfassend kann ich sagen, dass die Arbeit an sich Spass gemacht hat, ausser vielleicht der Teil mit IPv6, aber das liegt eher an mir und meinem Hass darauf. Probleme an sich hatte ich nur einmal mit Dyndns als der Bind9 Server die Journaldatei nicht erstellen wollte und ich 2 Stunden gebraucht habe um herauszufinden das es am AppArmor lag. Ansonsten war es im Grossen und Ganzen ein angenehmer Auftrag.