Rechnernetze
- OSI- & TCP/IP-Modell Wiederholung
- Routing
- HTTP
- DHCP
- Source-NAT
- Port-Forwarding / Destination-NAT
- Symmetrische & Asymmetrische Verschlüsselung
- SSH
- SSH-Tunnel
- DNS
- Subnetting
- IPv4 & IPv6
- 4 in 6
- 6 in 4
- VPN-ESP
- Well Known Ports (Nice to know, nicht prüfungsrelevant)
- VPN by Falko
OSI- & TCP/IP-Modell Wiederholung
Routing
Beispiel: PC1 sendet ein Datenpaket an Server 1 (S1). Was passiert beim Routing?
Die Ziel-IP-Adresse wird bitweise logisch-UND mit der Subnetzmaske der ersten Zeile verknüpft und mit der Netzadresse verglichen.
Da das Ergebnis nicht mit 192.168.178.0 übereinstimmt wird mit der nächsten Zeile weiter gemacht. Welches dann bereits das Gateway ist.
HTTP
→ Hyper Text Transfer Protocol
Beispiel: Der Client fragt eine Webseite bei dem Webserver an.
→ Zuerst erfolgt der 3-Way-Handshake zum Aufbau der Verbindung ( | SYN | - | SYN-ACK | - | ACK | )
→ Der Client sendet ein HTTP-GET-REQUEST
→ Der Webserver antwortet mit einem HTTP-RESPONSE
Im Erfolgsfall:
- Statuscode 200
- keine Fehlermeldung
Bei Misserfolg:
- 404: Not found
- 400: Bad Request
- 403: Forbidden
→ Bei Wireshark lässt sich der gesamte HTML-Text der Seite im Response nachlesen (weil unverschlüsseltes HTTP gesprochen wird) → Um dies zu umgehen kann der Header verschlüsselt werden (HTTPS)
DHCP
→ DHCP (Dynamic Host Configuration Protocol) dient dazu, einem Client eine Netzwerk-Konfiguration zuzuweisen.
Beispiel: Ich schalte mein Notebook ein. Dieses benötigt eine Netzwerkkonfiguration.
Der DHCP-Server steht in diesem Fall im gleichen Netzwerk wie der Client (Notebook).
- Client schickt DHCP-Discover
- Frage nach Netzwerkkonfiguration
- An Broadcast (255.255.255.255)
- Server antwortet mit einem DHCP-Offer
- Sendet eine Netzwerkkonfiguration
- Client antwortet mit DHCP-Request
- "Okay, die nehme ich."
- Server bestätigt mit DHCP-Acknowledge
- Bestätigung, dass die Adresse eingetragen wurde.
Die Netzwerkkonfiguration enthält unter anderem:
- IP-Adresse
- Subnetzmaske
- Standard-Gateway
- DNS-Server
- Range (Bereich von IP-Adressen die der DHCP-Server verteilt)
- Lease Time (Wie lange die zugeordnete IP-Adresse gültig ist)
Bei zwei DHCP-Servern in einem Netzwerk gilt das "First Come-First Serve"-Prinzip.
Source-NAT
→ Source-NAT (Network Address Translation) dient dazu, dass private Netzwerk-Adressen in die öffentliche IP-Adresse des Routers übersetzt werden, um IP-Adressen zu sparen und dennoch das Ziel zu erreichen.
Es gibt nicht genug IP-Adressen um jedes Gerät mit einer eigenen einzigartigen zu versorgen.
Beispiel: Ich frage von meinem Client eine Seite von einem Webserver im Internet an.
Stelle A
Quell-IP PC, Ziel-IP Webserver
Quell-Port PC, Ziel-Port Webserver
Stelle B
Quell-IP Router, Ziel IP Webserver
Quell-Port Router, Ziel-Port Webserver
Auf dem Router werden Quell-IP und Quell-Port auf die Daten des Routers geändert. So kann dieser auf dem Rückweg als Ziel erreicht werden.
Der Router speichert die Daten wie Quell-Port und Quell-IP des anfragenden PCs in seiner NAT-Tabelle mit dem dazugehörigen neuen Port (vom Router festgelegt). Bekommt er eine Antwort auf diesem Port (1025), schaut der Router in seine NAT-Tabelle und schickt das Datenpaket an den PC weiter, der sich für den betreffenden Port (1025) aus der NAT-Tabelle ergibt. Dafür ändert er die Ziel-IP (192.168.1.22) und den Ziel-Port (1024) des Datenpakets wiederum auf die des anfragenden PCs.
Port-Forwarding / Destination-NAT
→ Destination-NAT bzw. Port-Forwarding wird verwendet, um den Ziel-Port und die Ziel-IP eines Datenpaketes zu ändern, damit dieses am Ziel ankommt.
Beispiel: Es soll ein Webserver angesprochen werden, dessen öffentliche IP nicht bekannt gegeben wird. Um auf den Webserver zuzugreifen spricht der Client die IP-Adresse der vorgeschalteten Firewall an.
1. Der Client ruft die IP-Adresse der Firewall und den entsprechenden Port auf.
Stelle A
Ziel-IP 1.2.3.4, Ziel-Port 80
2. Die Firewall tauscht Ziel-Port und Ziel-IP in die des Servers (entsprechend Tabelle)
Stelle B
Ziel-IP 6.7.8.9, Ziel-Port 8080
Die Destination-NAT-Regelungen auf der Firewall geben an, an welche IP und welchen Port ein Datenpaket weitergeleitet wird, wenn es auf einem bestimmten Port (hier 80) ankommt.
Symmetrische & Asymmetrische Verschlüsselung
→ Verschlüsselung dient dazu, dass eine gesendete Nachricht nicht so leicht ausgelesen werden kann, falls sie abgefangen wird.
Beispiel: Alice möchte Bob eine verschlüsselte Nachricht zukommen lassen.
1. Die Nachricht wird symmetrisch verschlüsselt, da mit symmetrischer Verschlüsselung große Datenmengen schnell verschlüsselt werden können.
Um die Nachricht zu ver- und entschlüsseln, wird ein symmetrischer Schlüssel verwendet. Diesen muss Alice Bob zukommen lassen. Das nennt man das Schlüsselaustauschproblem.
2. Der symmetrische Schlüssel wird asymmetrisch verschlüsselt um das Schlüsselaustauschproblem zu lösen.
Um den symmetrischen Schlüssel zu verschlüsseln, verwendet Alice den öffentlichen Schlüssel von Bob. Die Nachricht wird versendet. Zum Entschlüsseln verwendet Bob seinen privaten Schlüssel. Den öffentlichen Schlüssel erhält Alice vorher von Bob. Zum Beispiel per E-Mail.
Diese Kombination der symmetrischen Verschlüsselung und asymmetrischen Verschlüsselung nennt sich hybride Verschlüsselung.
SSH
→ Secure Shell bezeichnet ein Netzprotokoll für verschlüsselte Verbindungen zwischen Client und Server.
Beispiel: Zwischen einem Client und einem Server soll eine verschlüsselte Verbindung aufgebaut werden, um z.B. Unternehmensdaten auszutauschen.
Bei SSH wird die Payload verschlüsselt.
Verbindungsaufbau mit SSH
SSH-Tunnel
→ Ein SSH-Tunnel macht den Zugriff auf einen Server möglich, der ohne Tunnel durch z.B. eine Firewall blockiert wird. Die Verbindung ist verschlüsselt.
Beispiel: Ich möchte auf einen Server zugreifen, werde aber durch eine Firewall blockiert.
1. Zwischen dem SSH-Client und dem SSH-Server wird ein Tunnel aufgebaut
2. Das Datenpaket wird zunächst vom Browser an den SSH-Client gesendet. (A)
3. Der SSH-Client leitet das Datenpaket an den SSH-Server weiter. Der HTTP-Header ist verschlüsselt. (B)
4. Der SSH-Server leitet das Datenpaket an die Destination weiter. Das Datenpaket ist nicht mehr verschlüsselt. (C)
→ Bei der Rückantwort vom Server werden die Daten vom SSH-Server wieder zum SSH-Client und von dort zum Browser weitergeleitet.
Beispiel Autobahntunnel: Über der Autobahn fliegt ein Hubschrauber zur Beobachtung des Verkehrs. Die Autos die auf der Autobahn fahren sind hier die Datenpakete. Solange die Autos nicht durch den Tunnel fahren kann der Hubschrauber die Autos beobachten.
Sobald die Autos in den Tunnel einfahren hat der Hubschrauber keine Möglichkeit mehr die Autos zu beobachten. Vorausgesetzt wir befinden uns nicht in Mission Impossible.
DNS
→ Das Domain Name System dient dazu, den Host-Name einer Internetseite in die zugehörige IP-Adresse zu übersetzen.
Beispiel: Ich möchte vom meinem Client das Wiki von Martin aufrufen (wiki.itienken.de), um für die Prüfung zu lernen.
Wenn jemand eine Webseite bereitstellen möchte, tut er das über einen Dienstleister. Dieser trägt die zur (Sub)domain zugehörige IP-Adresse bei seinem DNS-Server ein und meldet sie bei der Organisation an, die für die Verwaltung der jeweiligen TLD (Top Level Domain) zuständig ist. Diese Organisation betreibt ebenfalls einen DNS-Server, der jedoch lediglich die Domain (ohne Subdomain) und die IP-Adresse des verwaltenden Dienstleister-DNS-Servers speichert. Der DNS-Root-Server hat einen Eintrag für jede TLD mit der IP-Adresse des für diese TLD verantwortlichen DNS-Servers.
Aufrufen des Wikis auf meinem Client
- hosts-Datei (nicht? dann 2.)
- DNS-Server DSL-Router (nicht? dann 3.)
- DNS-Server Provider (nicht? dann 4.)
- DNS-Root-Server
- Der DNS-Root-Server fragt über die TLD beim entsprechenden DNS-Server an 189.38.95.2
- Dieser fragt beim Dienstleister an 217.160.80.147
- Der DNS-Server des Dienstleisters kann die gefragte IP-Adresse liefern → 213.183.189.160
Zwischen dem DNS-Server beim Provider und dem DNS-Root-Server können theoretisch n weitere DNS-Server liegen!
→ SMTP (Simple Mail Transfer Protocol) ist ein Protokoll zum Senden von E-Mails
→ POP3 ist ein Protokoll zum Empfangen von E-Mails
Beispiel: Alice sendet Bob eine E-Mail
Wenn Alice die E-Mail versendet, wird das SMTP gesprochen. Die Mail wird zunächst an den SMTP-Server von Alice' E-Mail-Client gesendet. Dieser leitet die E-Mail weiter an den POP3-Server von Bob.
Wenn Bob die E-Mail abruft, wird das POP3 gesprochen. Bob verbindet sich mit seinem Account (Benutzername & Passwort). Der Server gibt eine Liste mit den Mails für Bob zurück. Bob kann nun die entsprechende Mail auswählen und anschauen.
Subnetting
→ Mit Subnetting kann ein Netz in mehrere Subnetze aufgeteilt werden.
Beispiel: In einem Unternehmen sollen die IP-Adressen aus dem Bereich 10.20.30.0/24 auf mehrere Gebäude aufgeteilt werden.
Es werden 3 Subnetze gebildet. Ein /25-Netz und zwei /26-Netze.
10.20.30.0 /25 → 0 - 127
10.20.30.128 /26 → 128 - 191
10.20.30.192 /26 → 192 - 255
Die erste Ziffer des Subnetzes bezeichnet das Netz, die letzte ist die Broadcast-Adresse. Alle IP-Adressen dazwischen können für die Geräte verwendet werden.
Routingtabellen
IPv4 & IPv6
→ IP (Internet Protocol) ist ein Netzwerkprotokoll auf der Vermittlungsschicht
IPv4
- 32 Bit, 4 Oktette
- Header enthält:
- Quell-IP
- Ziel-IP
- Time to Live (Anzahl mögliche Hops)
- Protocol (Welches Protokoll folgt)
Datenpaket:
Eth-H | IPv4 | TCP | HTTP | Eth-T
IPv6
- 128 Bit, wurde eingeführt weil die Anzahl der IPv4-Adressen nicht ausreicht
- Header enthält die gleichen Informationen wie der IPv4-Header
- Hop Limit (Synonym zu TTL)
- Next Header (Synonym zu Protocol)
Datenpaket:
Eth-H | IPv6 | TCP | HTTP | Eth-T
4 in 6
→ Bei 4 in 6 muss eine Teilstrecke überbrückt werden, da auf dieser Teilstrecke nur IPv6 gesprochen wird.
Beispiel: Ich sende ein Datenpaket an einen Server mit IPv4. Auf dem Weg befindet sich ein Router, der nur IPv6 spricht (R3)
1. Zunächst wird das Datenpaket mit IPv4 zusammengebaut und versendet. Vor R2 (A) sieht es so aus:
Eth-H | IPv4 | TCP | HTTP | Eth-T
2. R2 bemerkt anhand der Routingtabelle, dass R3 nur IPv6 spricht. Er erstellt einen IPv6-Header und stellt ihn vor den IPv4-Header. Quelle ist die IPv6-Adresse von R2 (a), Ziel ist die IPv6-Adresse von R4 (b). Das bedeutet, dass der IPv6-Header nur das Teilstück überbrückt. Das Datenpakt sieht so aus (B):
Eth-H | IPv6 | IPv4 | TCP | HTTP | Eth-T
3. R4 bemerkt, dass der IPv6-Header nicht mehr benötigt wird, da seine IP als Destination eingetragen war. Der IPv6-Header wird abgeschnitten. Das Datenpaket an Stelle C:
Eth-H | IPv4 | TCP | HTTP | Eth-T
6 in 4
→ Bei 6 in 4 muss eine Teilstrecke überbrückt werden, auf der nur IPv4 gesprochen wird.
→ Es funktioniert wie 4 in 6, nur dass die IPv4-Strecke überbrückt werden muss:
A Eth-H | IPv6 | TCP | HTTP | Eth-T
B Eth-H | IPv4 | IPv6 | TCP | HTTP | Eth-T
C Eth-H | IPv6 | TCP | HTTP | Eth-T
Beispiel: Ich sende mit IPv6 ein Datenpaket an einen Server. Auf dem Weg dorthin befindet sich ein Router, der nur IPv4 spricht.
VPN-ESP
→ VPN (Virtual Private Network) wird benötigt, um die Verbindung zwischen zwei Routern zu verschlüsseln. Dabei wird der originale IP-Header verschleiert.
Beispiel: Im Homeoffice greife ich mit meinem PC aus meinem lokalen Netzwerk per VPN auf das Unternehmensnetz bzw. einen Server im Unternehmensnetz zu.
1. Der VPN-Tunnel wird zwischen R1 und R2 aufgebaut.
2. Das Datenpaket wird zunächst normal aufgebaut und versendet:
3. Auf R1 wird das gesamte Datenpaket verschlüsselt. Es wird ein neuer IP-Header generiert und vor den verschlüsselten Teil gesetzt.
4. Auf R2 wird der IPneu-Header wieder abgeschnitten und die Payload entschlüsselt.
→ Der verschlüsselte Teil wird von ESP-Header und -Trailer ummantelt
→ Da der verschlüsselte Teil immer eine bestimmte Länge haben muss (ein Vielfaches von 32 Bit) wird er um ein Padding, eine entsprechend lange zufällige Zeichenfolge ergänzt.
TODO ESP-Header näher beschreiben
Well Known Ports (Nice to know, nicht prüfungsrelevant)
Ports sind fortlaufend durchnummeriert – von 0 bis 65536
Einige von diesen Kennziffern sind standardisiert und damit bestimmten Anwendungen zugeordnet
Diese Standard-Ports nennt man auch Well Known Ports, da die Kennzahlen für alle bekannt und vor allem fest sind
Für die Registrierung ist die Internet Assigned Numbers Authority (IANA) zuständig
Die Well Known Ports gehen von 0 - 1023
Ein paar der wichtigsten Well Known Ports
Portnummer | Name | Zweck / Beschreibung |
22 | SSH | Secure Shell Service |
23 | Telnet | Telnet-Service |
25 | SMTP | Simple Mail Transfer Protocol |
53 | DNS | Namensauflösung per DNS |
80 | HTTP | Hypertext Transfer Protocol |
110 | POP3 | Post Office Protocol v3 für die E-Mail-Kommunikation |
123 | NTP | Dienst zur Zeitsynchronisierung |
443 | HTTPS | HTTPS (HTTP über SSL/TLS) |
VPN by Falko
VPN
→ VPN (Virtual Private Network) wird benötigt, um die Verbindung zwischen zwei Routern zu verschlüsseln. Dabei wird der originale IP-Header verschleiert.
Beispiel: Im Homeoffice greife ich mit meinem PC aus meinem lokalen Netzwerk per VPN auf das Unternehmensnetz bzw. einen Server im Unternehmensnetz zu.
Allgemein
1. Der VPN-Tunnel wird zwischen R1 und R2 aufgebaut.
2. Das Datenpaket wird zunächst normal aufgebaut und versendet:
3. Auf R1 wird das gesamte Datenpaket verschlüsselt. Es wird ein neuer IP-Header generiert und vor den verschlüsselten Teil gesetzt.
4. Auf R2 wird der IPneu-Header wieder abgeschnitten und die Payload entschlüsselt.
IPsec VPN (ESP)
Dies ist eine konkrete Implementierung eines VPNs (wir brauchen nur ESP nicht AH)
→ Da der verschlüsselte Teil immer eine bestimmte Länge haben muss (ein Vielfaches von 32 Bit) wird er um ein Padding, eine entsprechend lange zufällige Zeichenfolge ergänzt.