Internetbasierte Datennetzwerke

Werbung
Internetbasierte Datennetzwerke
Literatur:
Internetbasierte Datennetzwerke, M.Ziegler, Schlembach Fachverlag,
ISBN: 3-935340-20-6
Computernetzwerke, Andrew.S. Tanenbaum, Prentice Hall
www.rfc-editor.org (Internetnormen)
www.protocols.com (IP-Netzwerkprotokolle)
Themen der Vorlesung:
- Übertragung analoger/digitaler Daten
- OSI-Modell der Netzwerkkommunikation
- Weltweite Normierung als Grundlage für Rechnerkopplungen
- Strukturierte Verkabelung mit hoher Flexibilität
- Datenverpackung: Protokolle, Schnittstellen, Rahmen
- Datenaustausch in 7 Schichten:
o Physical Layer: Media Access Control, Ethernet, CSMA/CD
o Logical Link Layer: Fehlerkorrektur, CSMA/CD
o Routing Layer: Wie finden Datenpakete ihren Weg? , IP
o Transport Layer: Datenströme mit TCP
o Session Layer: Anfang/Ende einer Kommunikation/Session
o Presentation Layer: Umlaute und andere Sonderfunktionen
o Applikation Layer: Sichtweise der AnwenderInnen
- weltweites Internet als lebendes Beispiel
- Verzeichnisdienst als Rückrat jedes Netzwerks
- Anwendungen im Internet
o ICMP : Management
o SNMP : Steuerung/Überwachung
o SMPT : elektronische Post
o ftp : Dateien und deren Übertragung
o www : Wissensnetzwerke auf einheitlicher Basis
- Sicherheit in strukturverstärkenden Elementen
o Firewalls, Gateways
Übertragungsnetze für digitale Daten
Analoge Daten
Messung kontinuierlicher Größen; begrenzte Genauigkeit bei Messung
und Übertragung
Digitale Daten
synchrone Messung des zeitlichen Ablaufs; Übertragung als einer von
zwei Spannungspegel
Analog-Digital-Wandlung
Informationsverlust; dieser ist abhängig von der
Abtastfrequenz
Shannon-Theorem
Die obere Grenzfrequenz der Übertragungsmedien muss
doppelt so groß (mindestens) wie die maximale Frequenz
der Impulsform sein.
Netzwerkanforderungen
- Nutzung gemeinsamer Ressourcen (z.B. Drucker, Plattenspeicher=
- Hohe Flexibilität
- Hohe Zuverlässigkeit
- Unabhängiger Austausch einzelner Systeme möglich
- Wertschöpfung im Arbeitsprozess unabhängig vom Standort des Rechners
Topologien von Netzwerken
Stern :
„single point of failure“
Ring:
nur Beziehungen zwischen Nachbarn; Nachrichten werden
„druchgereicht“
Komplett:
jeder Knoten ist mit jedem verbunden; Vermaschung; sehr aufwändig
bei größeren Netzwerken
Baum:
hierarchische Struktur
Bussystem:
Kabel mit Stichleitungen zu den Knoten; leicht zu realisieren
Logische Verbindungen in digitalen Übertragungsnetzen
Kopplung von mehr als zwei Endgeräten erfordert Strategie der Wegefindung (routing):
- Schaltung eigener Verbindungskabel zwischen den Kommunikationspartnern
(Datennetzwerkbereich Modem)
- Leitungsvermittlung wie im Telefonnetz (POTS = Plain Old Telephone System)
- Paketvermittlung wie bei der Briefpost
Kopplung von Endgeräten unterschiedlicher Hersteller erfordert weltweite Normierungen.
Netzwerkdesign Abstimmung physikalische Leitungen
Verbindungen
~ findet selten auf der „grünen Wiese“ statt.
mögliche logische
Veränderungen in der Schaltung logischer Verbindungen sollten abwärtskompatibel sein.
Weltweite Normierungen von Rechnerkopplungen
- Instanzen: ISO, ITU, DIN
- Protokollhierarchien
- Entwicklung eines RFC (Request-for-comment)
Wie werden Netze normiert?
- Definition exakter Schnittstellen
- Abwärtskompatibilität
- Begriffswelt vereinheitlichen ( Englisch!)
2 Ansätze zur Normierung:
1. erst normieren, dann implementieren (Umsetzbarkeit nicht sofort gegeben;
zeitaufwändig)
2. erst implementieren, dann normieren
Den Normen äquivalent sind dann die RFC
Aktivitäten von einer Idee zur Anwendung (
die zwei Elefanten)
1. Forschung, Diskussion, Besprechungen, Entwurfpapiere
2. Realisierung des Projekts und damit Investitionen
Es bleibt wenig Zeit für Investitionen
ISO
ITU
RFC
IETF
OSI
International Standards Organisation
International Telecommunications Union (ehemals CCITT)
Request for Comments
International Engineering Task Force
Open System Interconnect
ISO-Norm
OSI-Modell
7 Schichten, keine „schrägen“ Linien
2 Systeme kommunizieren über Subnetze hinweg (nicht unbedingt direkt)
„Double Headed Monster“
Schnittstellen:
SAP = Service Access Point
Exakte Definition von Schnittstellen zwischen zwei Schichten in der Software eines Knotens
möglichst wenig Schnittstellen
für jeden SAP eine ISO-Norm
Protokolle:
Protokoll: festgelegte Regeln für die Kommunikation
Exakte Definition von Protokollen zwischen gleichen Schichten in der Software zweier
Knoten. Kommunikation läuft immer zwischen gleichen Schichten.
Aufbau der Schichten (generell)
- Nachrichten werden mit einem Header versehen (ICI)
- Kapselung
- Nachfolgende Schichten betrachten Nachricht + Header als die neue Nachricht und
stellt den eigenen Header voran, usw…
Physikalischer Aufbau lokaler Netzwerke
Übertragungsmedien (strukturierte Verkabelung)
weggebundene Netze:
ohne Wegbindung:
magnetische Medien
Koaxialkabel (Basisband)
UTP Unshielded Twisted Pair
Glasfaserkabel
Laserstrahlen
Funk
Radar
Satellitenübertragung
strukturierte Verkabelung: EIA/TIA 568, ISO 11801
1 Hauptverteiler (HVT) Main Distribution Facility (MDF)
und x Unterverteiler (UVT) Intermediate Distribution Facility (IDF)
werden sternförmig mit dem Hauptverteiler verbunden (Backbone)
Physical Layer
- Media Access Control (MAC)
- Verbindung zwischen genau 2 Punkten
Kollisionsfreie MAC
-
externe Taktgeber
Token Ring (IEEE 802.5)
Konkurrierende MAC
-
CSMA/CD
Ethernet (IEEE 802.3)
CSMA/CD
Carrier Sense Multiple Access / Collision Detection
Station prüft, ob das Trägermedium belegt ist, bevor sie sendet. Während des Sendens wird
weiter geprüft, ob es zu einer Kollision kommt. Ist dies der Fall wird der Sendevorgang
abgebrochen und wiederholt.
Ist der Sendevorgang beendet und es kommt zu einer Kollision (late collision), kann diese
nicht erkannt werden.
Ethernet Rahmenformat (10 MBit/sec)
- Präambel
- Rahmenbegrenzungsoktet
- Adressierung (6 Oktets, weltweit eindeutig)
- Längenfeld (Länge des Datenfelds)
- Typfeld (anstatt Längenfeld möglich)
- Padding-Feld (erfüllt Forderung nach Mindestlänge von 64 Oktets)
- 32 Bit CRC
Vermittlungsschicht
- Kopplung von Netzwerken (auch unterschiedlicher Techniken!)
- Design-Aspekte der Vermittlungsschicht
- Internet-Protokoll (IP)
o IPv4 Header
o IPv4 Adressierung
o IPv4 Fragmentierung
- Weiterentwicklung zu IPv6
Wegfindung zwischen Teilnetzen
Zieladresse
Jedes Datenpaket enthältvollständige Quell- und
IP: Wegfindung in Datennetzen
- Erhöhung der Ausfallsicherheit der Kommunikation durch Nutzung alternativer
Wege zwischen den beteiligten Knoten, ohne dass der Anwender diese Wegewahl
bewusst steuern muss oder kann.
- Erhöhung des Durchsatzes der Kommunikationsbezeichnung durch Bündelung
verschiedener Wege mit unterschiedlichen Leistungsparametern.
- Aufteilung in logische Einheiten zwischen Netzwerken, die den übergreifenden
Datentransport nur an genau definierten Stellen zulassen. Dies ist u.a. auch bei
Firmennetzwerken häufig gefordert, da an den Grenzen der organisatorischen
Kostenstellen auch Verantwortungslinien existieren, die in den Netzwerken
abgebildet werden soll.
Koppelelemente zwischen den Netzen nötig, die über Weiterleitung der
Datenpakete entscheiden können. (Tabelle mit Einträgen für den bestmöglichen
Weg)
IP-Header
Bei der Erstellung des IP-Headers kann nicht „linear“ vorgegangen werden, z.B. muss das
Längenfeld zunächst freigehalten werden und kann erst gefüllt werden, wenn der Rest des
Headers erstellt wurde und die Länge dadurch ermittelt wurde ( problematisch)
Adressierung
Bitfolge
Klassenbezeichnung Anzahl Netze
0XX
Class A
126
10X
Class B
216-2
224-2
11X
Class C
Subnetzmaske
- identisch im LAN
- gekoppelte LANs nicht unbedingt identische NW-Masken
- „tolerante“ Routen erlauben leider Fehlerkonfiguration
Anzahl Knoten
224
216
256
Fragmentierung von IP-Paketen
wird erforderlich, wenn in Teilstrecken eines Netzwerks maximale Paketlängen im Layer 2
implementiert sind.
Herstellerabhängige Fragmentierung oft ohne aufwendige Header. Solche Geräte sind
unflexibel und werden daher selten eingesetzt.
Wenn ein absendender Knoten eine Fragmentierung nicht erlaubt, wird er das „Don’t
Fragment Bit“ setzen.
IPv6: Weiterentwicklung des IP-Protokolls
vollständige Adresse: 128 Bit/16 Oktets/32 Hex-Zeichen
Beispiel: FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
oder 1080:0:0:0:8:800:200C:417A
Die ersten drei Bit werden als Format Prefix bezeichnet, die nächsten 13 sind der Top-LevelAggregator.
ICMP
Internet Control Message Protocol
Störungen werden zuerst von den Routern bemerkt. Der aufwändigste Teil des
Netzwerkdesigns besteht im Aufbau sauberer Layer 3 Strukturen. Die Fehlersuche hier sollte
möglichst unbeeinflusst von Eigenschaften der Knoten selbst möglich sein.
ICMP definiert (in RFC 792) zur Störungssuche (IP-Port: 01):
- Destination unreachable: absendender Router kennt keinen Weg
- Time exeeded: Time-to-Live-Feld wird 0 keine Weiterleitung
- Source Quench: Strecke überlastet (heute in Layer 4 implementiert)
- Redirect: *
- Echo Request/Reply: „Hallo, ist da wer?“ (als Ping implementiert)
* Ein Router kennt einen besseren Weg zum Ziel und versucht dies dem Sender mitzuteilen,
der dies in seine Routing-Tabellen eintragen kann (wenn er will).
Mapping mit ICMP – traceroute
Aufbau von Tabellen mit Routinginformationen in den Routern
Tabellen enthalten: - Zieladressen der erreichbaren Knoten, evtl. gruppiert
- Angabe des nächsten Routers (next hop)
- „Entfernung“ bis zur Zieladresse
- Kosten der Leitung (meist virtuelle Kosten, nicht Euro)
- Anzahl der noch zu passierenden Knoten bis zum Ziel
optimale Wegfindung
Pflege der Routing Tabellen
- Distance Vector Algorithmus
- Link State Algorithmus
- OSPF )Open Shortest Path First)
RIP
Routing Information Protokoll
Designaspekte der Transportschicht – Layer 4
Quality of Service (QoS)
Ziel: - Verbesserung der Dienstqualität
- Bereitstellung zuverlässiger verbindungsorientierter Dienste für Benutzerprozesse
in einem unzuverlässigen Netzverbund
- Kapselung der betriebssystemspezifischen Eigenarten der Implementierung des IPProtokollstapels (Pufferung der Daten)
- Kapselung der Teilnetze eines IP-Providers
- Definition von einheitlichen Schnittstellen für Netzwerkdienste unabhängig vom
Betriebssystem: „Berkeley Sockets“
- Überwachung der Dienstqualität während einer Verbindung
o Flusskontrolle
o Anpassung der Datenrate an die Leistungsfähigkeit des Rechners
o Option Negation zur bestmöglichen Ausnutzung der Übertragungsmedien
- Keine Kontrolle über die Anwendung auf der „anderen Seite“
Status Diagramm einer Transport-Layer-Verbindung
RFC 793: TCP-Implementierung eines Layer 4
Zustände
Übergänge
- Wartezeiten
- Anwendungen
Auslöser (Pfeillegende)
- Anwendungen
- Datagramm
- Timer
TCP-Header:
- definiert in RFC 793, RFC 1122, RFC 1323
- Signalisierung des Zustands der Verbindung durch Statusbits
- Lastabhängige Flusskontrolle über „sliding window“
- Kennzeichnung dringender Daten möglich (urgend Flag)
- Länge: 20 Oktets + Optionen
- Die IP-Adresse des Knotens zusammen mit dieser Port-Nummer bilden den TSAP,
bzw. den socket-identifier (48 Bit: 192.168.1.2.21) und ist damit in jedem Knoten
eindeutig
- Port-Nummern können international festgelegt werden (IANA)
- Ports kleiner 256 sind die „well-known-ports“ für Standarddienste
- Ports kleiner 1024 sind „privilegierte ports“, die in der Regel nur von einem
Systemprozess geöffnet werden dürfen
- Ports größer 1024 können von Knoten frei vergeben werden
- In der Regel sind mit den Port-Nummern auch Anwendungen verknüpft
- Jeder TCP-Layer nutzt eine Textdatei in der die Port-Nummern beschrieben
werden
TCP-Fenstermanagement (windowing)
- Vermeidung von Totzeiten
-
Anpassung der Netzbelastung
Ausnutzung unterschiedlich leistungsfähiger Rechner
Beispiel eines TCP-Datenstroms
Statusbits im TCP-Header
SYN synchronize Signal zum Verbindungsaufbau
ACK acknoledge „Acknoledgement Number“ gültig; gehört zu genau einer Verbindung
RST reset
Signalisierung von Problemen
URG urgent
Datensegmente, die bevorzugt behandelt werden sollen
PSH push
Daten sofort weitergeben, nicht auf vollen Puffer warten
FIN
Sender hat keine weiteren Daten und will Verbindung abbauen
3-Way-Handshake zum Verbindungsaufbau
-
-
Viele TCP-Implementierungen stellen einen schnell reagierenden Masterprozess
zur Verfügung, der eine Verbindungsanfrage beantwortet, indem ein Subprozess
generiert wird.
Der auf TCP-Port 111 hörende Process SUNRPC dient der dynamischen
Zuweisung von TCP-Ports zu registrierten Programmen.
Belegung der TCP-Puffer wird in Recv-Q bzw. Send-Q angezeigt.
UDP – RFC 768 – verbindungslose Layer 4 Kommunikation
In einigen Fällen reicht die Möglichkeit aus, Datenpakete abzusenden, über deren Verbleib
der Absender nicht informiert werden muss, und damit auf einen nennenswerten Overhead
verzichtet werden kann.
- kein Kontext (Seq # oder Ack #)
- keine Verbindungen (Statusbits und Übergänge)
- kein Lastmanagement (Window Size)
- Layer-4-Adressen (Ports) entsprechen TCP
- schnell
UDP
User Datagramm Protocoll
Weg eines IP-Pakets bis zur Anwendung
- Netzwerkkarte erkennt die korrekte (eigene) MAC-Adresse
- Netzwerkkarte prüft die Frame Check Sequence
- Interrupt der Netzwerkkarte an den Masterprozess inetd
- inetd erkennt die korrekte (eigene) Ziel-IP-Adresse und CRC
- inetd erkennt die Status-Bits im TCP/UDP Header
-
-
o Aufbau neuer Pufferbereiche, oder (SYN=1)
o Nutzung bereits vorhandener Empfangspuffer (SYN=0)
inetd erkennt die Ziel-TCP-Port-Nummer (SocketID)
inetd erkennt die Quell-TCP-Port-Nummer und Quell-IP-Adresse
o Nutzung etablierter Verbindung (identifiziert mit dem Socket Paar)
inetd entscheidet anhand der inetd.conf, welches Programm die weitere
Behandlung des Datenpakets durchführt
o Start einer neuen Instanz eines Programms (evtl. auch rpc-deamon)
inetd legt sich wieder schlafen und wartet auf den nächsten Interrupt
Meldung an den Anwender: „connection established“
TCP-Erweiterung – Optionen
TCP-Management der Wiederholungszähler RTO
Programmierung mit TCP-Sockets
- Implementierung schon zu Zeiten des RFC 791/793 verfügbar (1980)
- Lizenz der University of Berkeley kostenfrei
- modular programmiert
- Grundlage für nahezu alle Netzwerk-SW, erst Java schafft ein neues API
Verbindungsorientierte Kommunikation über Berkeley (Abb 4.12)
Verbindungslose Kommunikation mit UDP-Sockets (Abb. 4.13)
File Transfer Protocol – FTP
- Dateien und deren Übertragung
- Implementierung und Beispiel nach RFC 959
- Anwendung
o anonymous FTP
o FTP-Protocol im Browser (FTP-URL)
Eigenschaften einer Datei
Pfadname
- logisch zusammengehörige Dateien in einem Verzeichnis
Zeichensatz
- Inhalte von lokalen Anwendungen bearbeiten
- Benutzerschnittstelle zum Menschen
- Inhalte in 8/16/32 Bit Zeichensätzen möglich
Zeichenstruktur
- Zeilenende je nach Anwendung unterschiedlich (Interpunktion)
- Betriebssystemabhängigkeiten beim Zeilenendezeichen
Struktur auf dem Massenspeicher
- File Allocation Table (FAT)
- Größe der Datenblöcke auf magnetischen Speichern
- Begrenzung der Dateigröße
Architektur des FTP
RFC 959:
Textdateien
Binärdateien
Transfer ohne Veränderung umkehrbar
PI = Protokoll Interpreter
DTP = Daten Transfer Prozess
-
Kontrollverbindung zwischen Protokoll-Interpretern (PI)
Eine oder mehrere Datenverbindungen zwischen den DTP
Benutzerinterface über Zeichensatz des Virtual Terminal
Steuerung aller Operationen durch ein textbasiertes Benutzerinterface
ftp-Befehle
sind einzelne Worte
haben meist ein Argument
werden im Zeichensatz USASCII übertragen
ftp-Meldungen
bestehen aus 3 Ziffern und erklärendem Text
werden incl. Text vom entfernten System erzeugt (in dessen Sprache)
Beispiel für einen Dateitransfer mit ftp (Abb. 5.3 / S.141)
How to use anonymous ftp (RFC 1635)
- Bereitstellung von Informationen für die „Öffentlichkeit“ ohne
Benutzerauthentication
- Etablierte Regeln für solche Server (Netiquette)
o username: anonymous
o password: E-Mail-Adresse des Benutzers (ohne Prüfung auf Serverseite)
Browser nutzen hier gerne den direkten Zugriff auf integrierte Mail-Clients
o Verzeichnis / incoming off write-only, Verwaltung durch menschliche
Moderatoren des Serverbetreibers
o Maximale Anzahl von gleichzeitigen Downloads zur Begrenzung der
Auslastung des Servers
o Prüfung der Auflösbarkeit des anfragenden Client im DNS und Ablehnung
des Transfers, falls diese fehlschlägt
- Zugriff über ftp auf Port 80 aus einer URL herausoft möglich
o ftp://(user):(password)@hostname/path; TYPE={All}
Synchronisation im ftp-Protokoll: Wiederaufsetzen
Session-Layer in ftp nach RFC 959:
-
Aushandeln eines Marker-Codes zwischen den PI
Einbau des Marker-Codes in den Datenstrom in regelmäßigen Abständen
empfangender DTP speichert den Marker-Code außerhalb der empfangenen Datei
Nach Verbindungsabbruch und Neuaufbau erneuter Start desselben ftp-Befehls
Vorhandener Marker-Code wird bei der Get/Put-Anforderung übertragen und vom
Server-DTP ausgewertet
Server-DTP sendet nur die Daten nach dem letzten Marker-Code
Viele ftp-Implementierungen verzichten auf diesen Komfort: Ob mehrere Marker-Codes und
damit Sessions verwaltet werden können ist implementationsabhängig.
Presentation Layer
- Designaspekte des Presentation Layer
- Zeichensätze
o Normierungen ASCII, ISO 8559
o Herstellerspezifisch
o weltweit ein Zeichensatz UNICODE (ISO 10646)
- Virtual Terminal Protocol
o Beispiel: Telnet
Aufgabe des Presentation Layer (Darstellungsschicht)
- Anwendungen tauschen keine beliebigen Binärbitketten aus, es werden i.d.R.
Namen von Menschen, Datumsangaben, Ganzzahlen, etc. ausgetauscht
- Unterschiedliche Darstellungscodierung verschiedener Systeme:
o Nationale Umlaute
o Datumsschreibweise
o Ganzzahlen (Einer-/Zweierkomplement)
o Gleitkommazahlen (Exponent, Mantisse)
-
ASCII
ANSI
EBCDIC
UNICODE
Virtual Terminal
- Umsetzung aller Zeichen jeder Anwendung in einen virtuellen Zeichenvorrat
- RFC 854 Network Virtual Terminal für Anwendung telnet
Interaktive Sitzung über telnet-Protokoll
telnet - ist definiert in RFC 854 vom Mai 1983
- implementiert ein virtuelles Terminal auf Basis von TCP/IP
- arbeitet mit Aushandlung von Optionen zur Anpassung an unterschiedliche
Implementierungen
- bietet eine symmetrische Sicht auf Charakter Cell Terminals und Host-Prozesse
Kommandos zur Aushandlung von Optionen
- WILL X
Angebot einer Seite, die Option X sofort zu benutzen
- DO X
Antwort auf WILL X, die Option X wird sofort benutzt
- DONT X
Antwort auf WILL X, die Option X wird nicht benutzt
- WONT X Antwort auf WILL oder DO X, die Option X wird später benutzt werden
Nicht alle Implementierungen realisieren alle Optionen. Default: WONT X
Ablauf einer telnet-Sitzung mit Aushandlung von 2 Optionen:
Modell eines Network Virtual Terminal (NVT)
DNS – Domain Name Service
- Umsetzung von Namen in IP-Adressen
- Namenshierarchien
- dns im www
IP-Adressen für Rechner – Namen für Menschen
- Namensumsetzung ist eine typische Operation für Layer 6
- IP benötigt auf Layer 3 eine eindeutige 32 Bit Quell- und Zieladresse
- Anwender auf Layer 7 benötigen einen merkbaren Namen
- Umsetzung ist prinzipiell statisch möglich (/etc/hosts oder
c:\winnt\system32\drivers\etc\hosts o.ä.)
- 127.0.0.1 localhost
steht für eine Pseudo-IP-Adresse
- Pflegeaufwand für einige hundert Knoten noch erträglich
- Besser ist ein Client-Server-Modell mit hierarchischen Namensbäumen
NameResolver
RFC 1034 und 1035
dns
NameServer
dns Namenshierarchien
- Pflege der Namen soll weltweit verteilt erfolgen aber zusammen passen
- Abbildung „natürlicher“ (d.h. dem Anwender bekannter) Struktur
o geographische Einteilung (Länder, Staaten, Regionen)
o organisatorische Einteilung (Firmen, Abteilungen, Gruppen)
FQDN
Fully Qualified Domain Name
Struktur und Hierarchie des DNS
- gilt seit ca. 1980 (RFC 1034/1035)
- eingeführt aus technischen Gründen
- wird zunehmend zweckentfremdet (Markenschutz, Wettbewerbsrecht)
1997 Diskussion (jahrelang) und Einführung neuer Top-Level Domänen
Tabelle 5.7 / S. 159
Namensauflösung – dns Resolver
- in der Konfiguration aller Clients (in Unix-Systemen /etc/resolv.conf) werden die
IP-Adressen der erreichbaren dns-Server der eigenen Domain eingetragen
- Resolver senden UDP-Pakete auf UDP-Port 53 des ersten dns-Servers, falls keine
Antwort (timeout meist ca. 20 Sekunden) werden die anderen dns-Server gefragt
Anwender auf dem Knoten pc88.Kunde.de sucht shop.firma.com
8 Schritte bis zum Ergebnis
4 dns-Server in der Hierarchie beteiligt
Übertragung der Anfragen über UDP
Caching; Antworten werden zwischengespeichert
Suchstrategien von dns-Namen
- Angabe eines fully qualified dns-Namen als Ziel nicht zwingend erforderlich, alle
dns-resolver versuchen geeignet zu ergänzen
- Ablauf der Suche nach einem simple hostname
Knoten www.debis.de sucht (existierenden) Knoten ftp:
Anfrage
Antwort des/der dns-Server
ftp
ftp.de
ftp.debis.de
„name not found, authoritative“
„name not found“
INA 10
Knoten www.debis.de sucht (nicht existierenden) Knoten joe.firma.com
Antwort des/der dns-Server
Anfrage
joe.firma.com
joe.firma.com.de
joe.firma.com.debis.de
joe.debis.de
„name not found“
„name not found“
„name not found“
„name not found“
Client „Server failed“
beendet: Server kennt die Antwort nicht
Spezialfall dns-Auflösung im WorldWideWeb
Jede Ressource im www wird über eine URL angesprochen
{protokoll}://{user}:{password}@{host}/{path}/{document}?{query_string}
-
Der {host} ist ein dns-Name, der allerdings nicht unbedingt durch den Browser
selbst aufgelöst werden muss.
Proxy (stellvertreter) Hierarchien
o Vereinfachung des Datendtransports durch Caching
o Festlegung der Wege im Internet, Provider-eigene Leitungen bevorzugen
o Filterung von Inhalten
o Verlagerung aller dns-Aktivitäten
o zur Vereinfachung der client-Software (Browser)
Konfiguration eines dns-Servers
- Die dns-Daten werden im dns-Server in Textdateien verwaltet
- Format der Datensätze:
<Domain-Name><Time-to-Live><Type><Class><Value>
- Zur Syntaxvereinfachung werden wiederholte Felder in den Folgezeilen
leergelassen und aus den Vorgängerzeilen ersetzt
- Reihenfolge der Zeilen wegen der „defaults“ signifikant
- Praktisch nur Class IN (Internet Protokoll) implementiert
Konfigurationszeilen und Datentyp der Antwortpakete
SOA – Start of Authority
- Timestamp (String) signalisiert Aktualisierung der dns-Hierarchie
- Angaben zum Verwalter dieser dns-Domain (Mail-Adresse)
- default-Werte nicht ausgefüllter Elemente
o TTL eines cached Eintrags (oft 2419200sec = 1 Woche)
- Wiederholungszeiten und Replikationsintervalle
o secondary-timer (7200 sec. oft)
TXT – Informationen zur gesamten dns-Domain
- nur einmal pro Datei
- werden zusammen in der dns-Antwort ausgeliefert
MX – Mail Exchanger
- Liste von Mailservern, die unter der angegebenen Domain agieren
(bspw.: <username>@firma.com statt <username>@mail123.firma.com)
Absender benötigen keine Kenntnisse der internen Hostnamen
HINFO – Host Information
- zwei Worte („ „) zur Beschreibung (z.B. Anwendung, Betriebssystem)
- pro A Eintrag nur ein HINFO Eintrag
A – Adressinformation IPv4
- eigentlichen Zweck des dns, Angabe der IP-Adresse
- entweder FQDN (inkl. abschließendem Punkt) oder hostname, der um die aktuelle
(letzte SOA) Domain ergänzt wird
AAAA – Adressinformationen IPv6
- die einzige „echte“ Chance die 128 Bit-Adresse zu verwalten
NS – Name Server
- Hierarchie aus dns-Servern
- Verweis für einzelne Domains auf andere Server
o Pflege der Informationen nicht an einer einzigen Stelle erforderlich
o Verteilung der Verantwortung (Zonenkonzept) auf andere Personen
o Verteilung der Last auf die zentralen Server
… und weitere Direktiven (abhängig von der Server-SW-Version)
FORWARD oft wird jede lokale Funktion damit unterdrückt
INCLUDE
Einbeziehung weiterer Dateien
Verwaltung der Dateien über webmin oder Windows-GUI
- erleichtert die Aufrechterhaltung der Konsistenz
- verkürzt Restart-Zeiten, in denen keine Anfragen beantwortet werden
- dynDNS – dns-Informationen bei Anmeldung am Active Directory Service
Fehler im dns verbreitet sich schnell und bleibt lange erhalten (TTL)!!!
DNS und Sicherheit
dns-Server sind unverzichtbar für den Netzwerkbetrieb
- Hohe Ausfallsicherheit durch Aufbau mehrerer Secondary-Replikate
- eingeschränkter Administrationszugriff
o Verwaltung möglichst durch Werkzeuge mit Syntaxprüfung
o klare organisatorische Regelungen, wer wann die Einträge vornimmt
- die Maschine, die dns-Dienste anbietet, tut sonst nichts, um das Risiko durch
andere Software zu reduzieren
o hohe Last durch dns-Anfragen zu Spitzenzeiten
- Zugriffskontrolle auf die dns-Dienste
o Einzelhost-Abfragen von allen Clients im eigenen Verantwortungsbereich
o Zone-Transfer nur von eingetragenen Servern (secondary)
o Analyse der Logfiles auf verdächtige Muster
o Auswirkungen von dns-Fehlern oft erst nach Tagen sichtbar (TTL)
- Regelmäßige Aktualisierung der eingesetzten dns-Server-SW
dns-Server bieten viele Informationen
- Angreifer suchen gezielt diese Server. I.d.R. werden die Server nicht zerstört
sondern „nur“ genutzt
- Erkennen von übernommenen dns-Servern oftmals schwierig
o Einbau von falschen dns-Namen bzw. falschen IP-Adressen und
Überwachung der Logfiles bzw. Intrusion Detection Systeme auf deren
Verwendung
o statistische Auswertungen der Logfiles: Mustererkennung: wird z.B. eine
Versammlung aller Mitarbeiter im Aktivitätsmuster sichtbar
- Grundstruktur der dns-Daten ändert sich sehr selten, Ablage der Dateien auf einer
CD-ROM schützt gegen Änderungen
- Aufbau von split-dns an den Verwaltungsgrenzen eines Netzwerks
o internal nodes fragen FORWARDer, der einen external Server fragt
o external nodes sehen nur den external-Server, der keine (nur wenig)
Informationen über den intern benutzten Namensraum hat
o interner/externer Namensraum kann verschiedene domains nutzen
Rückwärtsauflösung – IN-ADDR.ARPA (RFC 1035)
- Umsetzung von IP-Adressen in Namen erforderlich für
o Prüfung der Konsistenz vermaschter dns-Server
o Einfachster Schutz gegen IP-Spoofing; IP-Adressen, die sich identisch
rückwärts und wieder vorwärts in einem dns auflösen lassen, sind korrekt
-
-
o Namensausgabe von als IP-Adressen ausgegebenen Parametern (z.B. muss
die Ausgabe eines „default-Gateway“ immer als IP-Adresse erfolgen)
Nutzung der Spezial-Domain IN-ADDR.ARPA in der alle IP-Adressen verwaltet
werden
o In IN-ADDR.ARPA sind nur Verweise auf die domain eingetragen, in der
die eigentliche Ressource-Information (RR) zu finden ist.
10.IN-ADDR.ARPA
PTR MILNET-GW.IST.EDU.
22.0.2.10.IN-ADDR.ARPA
PTR MILNET-GW.IST.EDU.
Wichtig ist die Aufgabe von fully-qualified names in den PTR-records
Struktur der dns-Nachrichten
dns-Protokoll Header (RFC 1035): 12 Oktets
- 16 Bit ID: willkürlich von Anfrager gewählt und vom Antwortenden wiederholt,
Matching offener Anfragen zu eingehenden Antworten
- Query/Response Bit
- OpCode (4 Bit)
- Authoritative Bit in answer (evtl. Verweis auf SOA im Response-Part einer
Nachricht)
- 3 Statusbits zur Rekursion
- 4 Reserve Bits
- 4 Bit Response Code (0 = no error)
- 4 Counter mit je 16 Bit zur Struktur der Antwort (Anzahl der Einträge)
Alles in UDP Port 53 verpackt
SNMP – Simple Network Management Protocol
- Manager-Agent Modell
- Management Information Base (MIB)
- SNMP-Protokoll
- Monitoring-RMON
SNMP – Manager-Agent Modell
- Netzwerkverwaltung mit sehr vielen Knoten und Routern nicht mehr nur mit ping
und Messung der Reaktionszeiten machbar
- Zentralisierung der Verwaltung notwendig
- Implementierung von Agenten in allen zu überwachenden Systemen
- Agenten nicht nur für „Netzwerk“-Komponenten verfügbar
SNMP-Agenten sind häufig als eigene Anwendung implementiert (SNMP-deamon, snmpd)
ASN.1 Abstract Syntax Notation 1
- ASN.1 beschreibt Objekte und fasst einfache Objekte in komplexere Objekte
zusammen (Baumstrukturen)
- ASN.1 ist in ISO-8824 definiert
- SNMP verwendet eine Untermenge der in ASN.1 erlaubten Konstrukte
- Beispiele: count INTEGER:: :: 100 Definition d. Variablen count mit Wert 100
status::INTEGER{up(1), down(2), unknown(3)}
Tabelle 5.11
MIB – Einheitliche Sichtweise von Manager und Agent
- Software für Managementstationen und Agent werden zu unterschiedlichen Zeiten
von unterschiedlichen Herstellern implementiert
- Strukturierung der verwaltbaren Objekte in einem einheitlichen Baum
- Namen der numerischen Objekte im Objektbaum in der ASN.1-Syntax
Abb. 5.10 Teil des SNMP-Objektbaums
MIB-2 vorgeschriebene Objekte
RFC 1213 schreibt 175 Objekte (10 Gruppen) für alle SNMP-Agenten vor
Gruppe
Anzahl Objekte
Beschreibung
system
interfaces
at
ip
icmp
tcp
udp
transmission
snmp
7
23
3
42
26
19
6
x
29
Name, Standort, Betreuer
Schnittstellen auf Layer 1-2
Inhalt d. amp-Tabelle d. Zielsystems
IP-Statistik u. Eigenschaften d. Layer 3
num. Wert
Beispiel eines MIB-Zweigs (MIB-2): interfaces
Beispiel eines privaten MIB-Zweigs: enterprises
Beispiel für eine MIB-Datei: TOASTER.MIB (S. 170)
SNMP-Protokoll
- SNMP arbeitet nur mit UDP-Paketen auf UDP-Port 161
- Abfragen und Ändern von Variablen
- Kontext d. Abfragen und Veränderungen wird in Manager und Agent getrennt
ermittelt:
o Tabellen zusammengehöriger Variablen in der MIB definierbar
o Gültigkeit von Teilbäumen mit Flag-Variablen gekennzeichnet
- SNMP stellt im Protokoll (Version 1) 6 Nachrichtentypen zur Verfügung
- Return-Codes:
- value
- no such variable
- end of MIB tree
- Viele verschiedene Implementierungen
Nachrichten
- get
-
set
trap
- get next
- get bulk (V2)
- inform
(sollte nicht von jedem beliebigen ausgeführt werden
Sicherheit)
abgeleitete Abfragetools
- snmptable
- snmpdf
- snmpnetstat
- etc.
Beispiel einer SNMP-Anfrage:
$snmpget –d Router.firma.com <xxxxx> System.sysName.0
Beispiel einer SNMP-Antwort
Monitoring mit SNMP – RMON (RFC 2819)
- Belastung durch zyklische Abfragen
-
- Netzwerk
- Agent/Manager
Auswertung i.d.R. nur in größeren Zeitabständen erforderlich
Funktionsgruppen:
ethernet statistics
ethernet history/control
alarm
host statistics
host TopN
host Matrix
filter/package capture
event
Die Netzwerküberwachung mit RMON setzt spezielle Geräte, RMON-Probes, ein, in denen
nur ein SNMP-Agent und einige Zähler implementiert sind. Diese Zähler sind definierten
Variablen im MIB-Baum zugeordnet und überwachen deren Werte, die in festgelegten
Zeitabständen in lokalen Speichern in diesen Probes abgelegt werden.
Überwachung eines Switch – „kleine“ RMON-Probes-snmptable
hostAddress; hostInPkts; hostOutOkts; hostInOktets; hostOutOktets; hostOutBroadcastPkts;
hostOutMulticastPkts;
Beispiel für eine SNMP-Anwendung: Toast herstellen
Realisierung eines SNMP-Agenten
- SNMP-Weiterentwicklungen – Version V1, V2
- SNMPV1 – RFC 1157
o klassisches SNMP
- SNMPV2 – RFC 1905
o Manager-Agent-Modell
o MIB wie in V1 über vereinfachte ASN.1 Syntax definiert
o Ergänzung um „Sub-Manager“ (Deligieren v. Teilbäumen)
informRequests zum Austausch d. Informationen zwischen
Managern
o Operation „getbulkwalk“ zur Verringerung der Netzlast
große MIB-Bäume werden schneller abfragbar
…
SNMP – Weiterentwicklungen – Version V3
- RFC 2570 – Introduction to SNMPV3; RFC 2571 - Architektur
- Klare Trennung zwischen
o Beschreibungssprache der verwaltbaren entities (ASN.1)
o Struktur d. verwaltbaren entities (MIB’s und MIB-Tabellen)
o Protokoll (UDP-161)
o Sicherheit und Verwaltung
- grundlegende Aspekte in allen SNMP-Versionen identisch
RFC 2574 – message level security
- Verschlüsselung (DES)
- Echtheitsprüfung (Bildung eines Digest/Hash mit MD5, SHA)
- Vorsorge gegen Replay, Delay und Redirection
o Synchronisation d. Uhren in Manager und Agent
o Öffnen eines Zeitfensters für „legale“ Antworten
RFC 2575 – view based access control
- nicht alle Manager fürfen alle MIB-Zweige sehen/bearbeiten
Struktur möglicher SNMP-Agenten und Manager
Ablage der Management Informationen (MIB):
- als eine große Textdatei konsistent auf Manager und Agent
- kompliziert zur Verbesserung d. Zugriffsgeschwindigkeit für Manager
- als viele Textdateien mit IMPORT-Funktionen
o Start der Abfrageanwendungen deutlich verzögert bei vielen Zweigen
o Agent bearbeitet die MIB’s meist nur einmalig
Struktur des Agent:
- monatlich
- MasterAgent/SubAgent (extensible Agent)
o MasterAgent reagiert auf UDP-161 und erkennt den MIB-Zweig
o SubAgent erhält die Anfrage vom MasterAgent für den eigenen Zweig
o SubAgents arbeiten als eigene Prozesse; sie registrieren „ihren“ Zweig
beim Start des Prozesses beim konfigurierten MasterAgent
Implementierung von SNMP-Agenten
Microsoft Windows
- Windows 2000 extensible agent (Master/SubAgent) von Microsoft
- SubAgents für MIB2 von Microsoft Serverprodukte (IIS, SQL-Server)
- enterprises-MIB unterhalb des Microsoft-Zweigs
- UCD (freeware) ucd-snmp:
o Monolith mit wesentlichen Funktionen (auch unter Windows 9x)
o sehr gute Abfrage-Werkzeuge für alle SNMP-Versionen
Linux
-
UCD-SNMP
o extensible Agent, Erweiterung auch mit Shell-Scripten möglich
o SNMP-Trap-Fänger als Deamon
andere OS
- viele Hersteller bringen eigene Agenten mit
- Vielfalt der SNMP-RFC’s zwingt zum genauen Vergleich der…. (unvollständig)
Beispiel eines SNMP-Agenten – UCD – SNMP
eMail – elektronische Post im Internet
- Architektur und Dienste
- UserAgents, Mailprogramme
- Header und Nachrichten …
- SMTP
eMail Architektur und Dienste
Anforderungen an eMail
- Kommunikation zwischen Personen, die zu unterschiedlichen Zeiten arbeiten
- Speicherung der ausgetauschten Informationen
- Unabhängigkeit von allen technischen Eigenschaften der benutzten Systeme:
o Betriebssystem des eingesetzten Rechners
o Anwendung mit der die eMail erstellt/gelesen wird
o Nationale Lokalisierung des Anwenderrechners
o Zeitzone der beteiligten Systeme
- Schutz gegen zeitweise Unterbrechung des Übertragungswegs
- Nachvollziehbarkeit der Kommunikation
- Telekommunikationsbehörden empfehlen ITU X.400
- Rechner- und Netzwerkhersteller empfehlen SMTP
Architektur der Internet eMail nach RFC 822
- Prinzip elektronischer Post
- Kommunikation zwischen Agenten
o User Agent
o Message Transfer Agent (MTA)
o Kommunikation über TCP-Port 25 (SMTP) und TCP-Port 110 (POP3)
- Anwender sehen eine Programmoberfläche, in die der UA integriert ist
- Speicherung in Mailboxen
-
Alle Kontrollinformationen für die Übertragung wird den Agenten hinzugefügt
Funktion eines eMail User Agent (Mailprogramm)
Grundfunktionen:
- Abholen von Mail bei einem Mailserver (poll)
- Anzeige aller Subject-Zeilen (header-lines)
- Anzeige einer einzelnen Mail mit korrekt dargestellten (Sonter-)Zeichen (read)
- Erkennen von Dateianhängen zur korrekten Ablage (attachments)
- Ablage von gelesenen Mails in Ordnern (move)
- Löschen von gelesenen Mails (delete)
- Start eines Editors zur Erstellung einer neuen Mail (new)
- Start eines Editors mit dem Text einer empfangenen Mail (forward)
- Zwischenspeichern einer Mail bis der Server erreichbar ist (queuing)
Erweiterte Funktionen:
- Automatische Aktionen beim Eintreffen spezieller Mails
- Start von Anwendungsprogrammen zur Darstellung von Dateianhängen
- Integration in andere Anwendungsprogramme
Nachrichtenformate in RFC 821
- Analogie zur real post
- Umschlag (envelope):
o enthält alle für die Weiterleitung der eMail erforderliche Information
(Zieladresse, Priorität, Sicherheitsstufe)
- Kopfzeilen (header):
o enthält die Steuerinformationen für den UA
- Nachricht (body):
o Text der Nachricht, in Abhängigkeit von den header-Zeilen durch den UA
interpretiert und dargestellt
alle Felder nur 7 Bit ASCII !
Headerzeilen nach RFC 822/2822
MIME – Multipurpose Internet Mail Extension
Limitierung der eMail nach RFC 822/2822
- Nachrichten in Sprachen mit Umlauten
- Nachrichten in Sprachen mit nicht-lateinischen Schriftzeichen
- Nachrichten ohne Text, z.B. Audio, Video
MIME – Standard (RFC 1521)
- Verpackung der binären Informationen in 7 Bit ASCII Nachrichten
- Beibehaltung der RFC 822-Struktur aus Envelope, Header und Body
- Kann von reinen RFC 822-Mailsystemen weitergeleitet werden
- Nur Austausch der Anwendungsprogramme erforderlich für die „neuen“
Funktionen: Anhänge sind Mailbody im RFC-Sinn
- Mailclients können das „richtige“ Programm starten
MIME-Header
- MIME-Version
- ContentDescription
- … (unvollständig)
MIME – RFC 1521 – Content-Transfer-Encoding
Schema für die Codierung der Nachrichtenströme
- ASCII-Text: 7 Bit, max. 1000 Zeichen pro Zeile: englischer Text
- extended ASCII-Text: 8 Bit, max. 1000 Zeichen pro Zeile
o toleriert von manchen Mailsystemen
o Zerstörung der binären Inhalte beim Transport möglich
- Quoted Printable Encoding
o Codierung aller Zeichen über ASCII = 127 durch NN (NN: hex-Wert des
Zeichens)
- base64-encoding: 24 Bit werden in 4 Einheiten
- … (unvollständig)
- Datenmenge um 4/3 vergrößert
- Operation sehr schnell
- keine Verschlüsselung der Daten, nur Verschleierung
Content Type type/subtype
- Darstellung des Inhalts durch die Möglichkeit des empfangenen Systems bestimmt
- Viele ContentTypes sind schon definiert (text/plain)
Auswertung im Client
Implementierung in internet-konformen (RFC 1521) Systemen
- Zuordnung der möglichen Werde zu lokalen Anwendungen je Anwendung
gepflegt
- Bisher nicht bekannte MIME-Typen werden jedem User individuell zur Auswahl
angeboten
Implementierung Microsoft
SMTP – Simple Mail Transfer Protocoll
- Bei Verbindungsanfragen auf TCP-Port 25 wird eine Serveranwendung gestartet
(z.B. sendmail)
- Einfaches ASCII-Protokoll mit Befehlen aus 4 Buchstaben
o HELO/EHLO
o MAIL FROM
o RCPT TO
o DATA
o QUIT
- Überprüfung der Gültigkeit der eingegebenen Parameter
o Syntax des Behfehls
o Auflösbarkeit der benutzten Domains mit dem dns-resolver des Mailservers
o keine Begrenzung
o …
Beispiel für Senden einer Mail
UA
MTA
Zustellung der eMail an den Empfänger
- Bereitstellung von Mailboxen für lokale Benutzer durch den letzten MTA
- Speicherung von eingehender eMail bis zur Anmeldung des Benutzers
- POP3 Post Office Protokoll Nr.3 TCP 100 (RFC 1225)
o Abholen und explizites löschen der eMail auf dem Server (polling)
o Ablage der abgeholten Mails auf dem Client, von dem der Benutzer sich
angemeldet hat
o Möglichkeit des offline-Arbeitens
o zentrale Datensicherung
www – World Wide Web
- Grundlagen
- HTML – Die Sprache zur Darstellung im Web
- http – Übertragungsprotokoll
- Anwendungen
o Standardbrowser
o Proxy-Architektur, automanic proxy configuration
o Aktive Inhalte
o Zugriffsschutz in http
Grundlagen und Historie des www
- Grundlagenforschung am CERN mit geographisch weit verstreuten
Wissenschaftlern erfordert ein Netz aus verknüpften Dokumenten
- 1989 realisiert Tim-Berners-Lee den ersten www-Prototypen
- 1995 gründet der Autor des Mosaic-Browser, Marc Andreessen, die Fa. Netscape
Communications Corp.
- Wegen der Einfachheit der Client-Server-Architektur des www entstand eine
Vielzahl von unterschiedlich implementierten Programmen weltweit
- Die Idee der Dokumentenverknüpfung unabhängig vom eingesetzten Programm
wird seid 1994 durch das W3C fortgeführt
- Die Kommerzialisierung führte inzwischen zu sehr starker Abhängigkeit von den
eingesetzten Programmen
Verwechslung zwischen Inhalt und Darstellung/Layout
Uniform Ressource Locator – URL
Voraussetzung: Syntaktisch einheitliche Darstellung aller Dokumente
Ziel: Verknüpfungen von Teildokumenten im Kontext des Lesens
{protokoll}://{user}:{password}@{host}:{port}/{path}/{document}?{query_string}
user, password, port und query_string sind optionale Elemente
Protokolle im URL-Feld:
- http
Hypertext Transfer Protocol (TCP-Verbindung auf Port 80)
- ftp
File Transfer Protocol (TCP-Verbindung uaf Port 21)
- telnet
Remote Login (TCP-Verbindung auf Port 23)
- news
Lesen eines USENET-Artikels (TCP-Port 119)
-
file
mailto
Zugriff auf lokale Dateien
Aufruf eines lokalen Mailprogramms
Architektur des www – RFC 1630
- Client-Server Architektur
- stateless (jede Operation ist ohne Zusammenhang mit der vorherigen)
- http – Hypertext Transfer Protocol, i.d.R. über TCP-Port 80
- URL – Uniform Ressource Locator
- Verknüpfungen der Dokumente (hyperlinks) durch den Autor festgelegt
- die Server kennen sich nicht
- Browser stellen die Informationen nur dar
- Inhaltsbeschreibung durch MIME-Header nach RFC 1521
(Abb. 5.15, S. 191)
http – Hypertext Transfer Protokoll (RFC 1945, 2616, 2817)
Prinzipieller Ablauf nach Auswahl eines Hyperlinks:
- Browser zerlegt URL und fragt den dns-Resolver nach dem hostname
- dns liefert eine IP-Adresse
- Browser baut eine TCP-Verbindung zum entsprechenden Socket auf dem Server
auf
- Browser sendet den GET-Befehl für das gewünschte Dokument
- Server sendet die Datei
- Browser baut die TCP-Verbindung ab
- Browser analysiert die Seite und stellt den Text dar
- Für alle Bilder in dieser Seite wird danach eine eigene TCP-Verbindung aufgebaut,
jedes Bild einzeln übertragen und an der vorgesehenen Stelle dargestellt
HTTP 1.1 (RFC 2616/2817) erlaubt persistente Verbindungen, die meisten Browser spielen
nicht mit
RFC 1945/2616 – http – Layer 7: Browser fragt Server
Anfragen vom Browser (Beispiele einiger http-Methoden):
- Reines ASCII-Protokoll, alle Methoden nur in Großbuchstaben
- GET
- HEAD
- POST
{Methode} {URL}
{Protokollversion}
GET
/index.html HTTP/1.0
<weitere Headerzeilen>
<Leerzeile>
Anfrage zum Lesen einer vollständigen Seite
Anfrage zum Lesen nur des Headers einer Seite
Übertragen von Informationen vom Browser zum Server
- TRACE
Anfrage wird, ergänzt um Serverinformationen, reflektiert, ohne dass der
Server ein Dokument ausliefert und dies im Logfile vermerkt wird
http – Layer 7: Status
Antworten des Servers in derselben TCP-Verbindung (meist auf Port 80)
Headerzeilen, Beispiele einiger Status-Codes
200 OK
204 No Content
206 Partial Content
301 Moved permanently (URL-redirection)
305 Use Proxy
400 Bad request (meist falsches Zeichen (z.B. Umlaut) im Request)
403 authorization required
404 not found
500 Server Error
Den Meldungen folgen:
- MIME Header
o content type
o content-transfer-encoding
- Status-Header
- und das Dokument (entsprechend dem content-type)
http – Layer 7: Header
Spezifische MIME-Header im http-Protokoll:
- Accept encoding:
compress, gzip
- Referer:
http://some.host/page-with-source-link.html (Woher?)
- Location:
http://www.w3.org/pub/www/people.html (Umleitung!)
- Last Modified:
TUE, 15 Nov 1994 12:45:26 GMT
- User-Agent:
CERN-LineMode/2.15 libwww/2.17b3
- Retry-After:
120 (Anzahl von „Wartesekunden“)
- Via:
alle beteiligten Personen verm???en sich hier
- www-Authenticate:
{challenge}
- Authorization:
{credentials}
und viele mehr, wird aber oft nicht ausgewertet
HTML – Hypertext Markup Language
- HTML beschreibt die Formatierung eines Dokuments
- HTML-Dokumente bestehen aus ASCII-Text
- HTML definiert spezielle Markup-Tags aus ASCII-Zeichen, die vom Autor in die
Dokumente eingebaut werden
<HTML> … </HTML>
<HEAD> … </HEAD>
<TITLE> … </TITLE>
<BODY> … </BODY>
<Hn> … </Hn>
<UL> … </UL>
<LI> … </LI>
<OL> … </OL>
<P>
Dokument ist mit HTML markiert
Begrenzt den Header des Dokuments
Begrenzt den Titel des Dokuments
Begrenzt den Textkörper des Dokuments
n=1-6: Begrenzt eine Überschriftenzeile
umrahmt eine unnummerierte Liste
begrenzt ein Listenelement
begrenzt eine Liste mit Positionsnummern
beginnt einen neuen Abschnitt (Paragraph)
<A HREF=“…“>…</A>
markiert einen Hyperlink (Anker)
Beispiel einer HTML-Seite
Dynamische Generierung von HTML-Seiten
- Der http-Server an TCP-Port 80 kann Programme benutzen, um die Informationen
dynamisch zusammenzustellen
- CGI : Common Gateway Interface
o erlaubt die Parameterübergabe an solche Programme
o ermöglicht dynamische Seitenerstellung ohne die Software des http-Servers zu
verändern
- Typische Programmiersprachen für dynamische Seiten sind:
o PERL - Practical Extraction and Reportgeneration Language
o PHP – Personal Homepage Processor
o jede andere Programmiersprache für das Betriebssystems des Servers
- Java
o erstellt die HTML-Seite lokal in einer virtual machine im Browser
o oder mit JSP (Java Server Pages) in der VM des Servers
- JavaScript/Active X
o können einige (wenige) Funktionen innerhalb der großen Browser (Netscape
und Microsoft IE) ausführen
(Abb. 5.17, S. 200)
RFC 2617 – Zugriffsschutz im http
Schutz aller http-Zugriffe (alle http-Methoden)
- Zugriff auf zusammengehörige URLs begrenzt: Realm (Gebiet)
- Realm ist meist ein Verzeichnisbaum oder eine Anwendung
Ablauf einer geschützten Anfrage:
- Browser versucht Zugriff ohne Credentials
o Status Code 401
o www-Authenticate:{challenge}, die Challenge ist oft nicht die Realm
- Browser sucht passende Credentials zu dieser Challenge
o im eigenen Cache (i.d.R. aus dieser Session)
o in einer Passwort-Datei (Internet Explorer: „Passwort speichern“)
o durch eine Frage beim User
- Credentials werden base64 codiert im Authorization:Header geschickt
- Verfahren läuft bei jeder Seite genauso ab, viele Browser schicken allerdings
bereits „vorsorglich“ den Authorization:Header mit
Session Authentication sicherer, nur Session-ID mit jeder Seite geschickt
Strukturierung der Any-to-Any – Proxy Architektur
(Abb. 5.16, S. 197)
Any-to-Any
Pro:
Jeder Browser erreicht alle potentiellen Server weltweit
Contra:
Adressknappheit
Netzgrenzen
Sicherheit
Automatic proxy configuration
isPlainHostName(url)
dnsDomainls(host, domain)
isResolvable(host)
isInNet(host, pattern, mash)
dateRange(day)
timeRange(hour)
(Tab. 5.22, S.198)
NETSCAPE
vorteilhafte Sicherheitsaspekte (z.B. timeRange/dataRange)
MIME-Header: contenttype: application/x-ns-proxy-autoconfig
Sicherheit in internetbasierenden Datennetzwerken
- Grundlagen
- Angriffsszenarien
- Abwehrstrategien
o organisatorische Regelungen
o Firewallbetrieb
Menschen mit guten und bösen Absichten
guter Hacker:
- detailverliebt, neugierig kreativ
- programmiert gerne hochspezialisierte Systeme, die „keiner“ versteht
- findet neue Wege außerhalb eingefahrener Wege
- keineswegs auf Computer angewiesen
böser Hacker:
- dringt unauthorisiert in fremde Systeme (Gebäude, Netzwerke, Rechner) ein
- verschafft sich „Achtung“ in der Szene durch high-score-Listen
- hat wenig oder kein Wissen über das, was er anrichtet (script-kiddies)
- verdient den Lebensunterhalt i.d.R. nicht durch die Erstellung von Software
- sind anfällig gegen kommerzielle Versuchungen, gekoppelt mit social engineering
Bedrohungen für Netzwerke und Systeme
Vertraulichkeit
- Abhören der (unverschlüsselten) Informationen
- Diebstahl von Informationen
o komplette Dokumente, eigentlicher Empfänger erhält gar nichts
o Wissensdiebstahl (durchaus auch nur teilweise, Subject-Zeilen)
o Hintertüren/Trojaner installieren
Ehrlichkeit
- ist der angegebene Absender tatsächlich die Person, die ich kenne?
- Prüfung gegen dritte Instanz (Public-Key-Infrastucture, Web-of-Trust)
Integrität
- ist der angekommene Inhalt identisch mit dem abgesendeten
Nicht-Abstreitbarkeit
- „Die Rechnung habe ich nie bekommen, also zahle ich nicht!“
- Prüfung gegen dritte Instanz
Prüfung der Sicherheit-Auditierung
- Warum?
o IT-Systeme von Unternehmen müssen laut KonTraG (Gesetz zur Transparenz
von Konzernen) auditiert werden.
o Finanzdienstleister benötigen Sicherheitspläne (Basel II)
- BackBox-Text
o nur öffentliche Quellen und social engenieering
o Lahmlegen des Systems wahrscheinlich
o bei Firmenüberpfüfungen ehr ungewöhnlich
- ChrystalBox-Test
o Netzwerkverwalter und „Angreifer“ arbeiten zusammen
o komplette Dokumentation (auch Passworte) liegt dem Prüfer vor
o Überwinden der ersten Sicherheitswälle durch Prüfungen im LAN
o Lahmlegen (denial-of-service) wird vermieden
- GreyBox-Test
o Teilwissen, Netzwerkverwalter „misst“ die Zeit, bis der Rest der Informationen
bekannt ist
Authentication – Authorization
- Warum?
o Nutzergerechte Kostenverteilung
o Angebot zeit-/anzahlabhängiger Leistungen (Digital Rights Management)
o Kopplung verschiedener Anwendungen (online-Banking, offline-Banking)
o Rollenkonzepte entsprechend organisatorischer Festlegungen
o Verarbeitung personalbezogener Daten (BDSG, TKDG)
- Authentication eines Menschen
o Prüfung eines/mehrerer Merkmale
- shared secret (Passwort)
-
- Wissen und Besitz (PIN und SmartCard)
- Biometrie
Authentication eines Rechners
o Ethernet-Adresse / IP-Adresse
o CPU-ID
o TCPA (Trusted ComPuting Alliance) – Fritz-Chip
IP-Spoofing = Vortäuschen einer Absenderadresse
IPv4 benötigt Absender-Adresse gar nicht, erst TCP benutzt den Rückweg
Angriffszenarien auf unsichere TCP/IP-Implementierungen
- technikgetriebene RFC’s
- nur good guys in der Entwicklung beteiligt
- Übernahmeungeprüften Quellcodes in
eigene Programme
Struckturierung des Netzwerkübergangs
Grundsätze der Absicherung von Netzwerken
- Jeglicher Datenverkehr zwischen zwei Netzen muss die Firewall passieren
- ‚default-deny’ Policy
o erlaubte Dienste werden explizit freigeschaltet
o was nicht explizit erlaubt ist, ist verboten
- nur die benötigten Dienste sind erlaubt
o Festgelegt in Sicherheits-Politik des Unternehmens
- Firewall Logs müssen ständig beobachtet/ausgewertet werden
o nur so können Angriffe rechtzeitig erkannt werden
o permanente Ausbildung der beteiligten Personen erforderlich
- Sicherheitsmaßnahmen folgen dem Grundsatz der Verhältnismäßigkeit
o Potentieller Schaden und Aufwand für dessen Verhinderung abwägen
o Bedrohungs- / Risikoanalyse relativ zum Geschäftszweck
- Wirksamkeit der Sicherheitsmaßnahmen muss regelmäßig überprüft werden
o alle 6 Monate externes Audit
o jeden Monat internes Audit
Begriffsdefinition Firewall
- Chapman/Zwichy: Eine Firewall ist eine Komponente, die den Zugriff zwischen
einem geschützten Netz und dem Internet oder zwischen sonstigen Netzen
beschränkt
- Cheswich/Bellowin: Eine Ansammlung von Komponenten zwischen 2 Netzen
wird Firewall genannt, wenn folgende Bedingungen erfüllt werden:
o Jeglicher Verkehr zwischen den Netzen muss die Firewall passieren
o Nur der im Sicherheitskonzept vorgesehene Verkehr wird durchgeschleust
- Manche Anbieter: Eine Firewall ist gut, wenn sie viel kostet und keine Arbeit
macht
Eine Firewall ist ein Konzept, kein Gerät!
Firewall – Statischer Paket-Filter
-
-
-
-
Beispiel:
o permit tcp host 1.2.3.4 gt 1023 any eq www
o permit tcp any eq www host 1.2.3.4 gt 1023
Schützt gegen
o Zugriffe/Angriffe auf interne Dienste
o Adressfälschung (Spoofing)
Schwächen
o nur elementare Filtermöglichkeiten
o keine Filterung der Applikationsdaten
Stärken
o hohe Durchsatzraten
o günstige Realisierung
Funktionsprinzip: Filterung aufgrund von TCP/IP Header-Informationen
Firewall – Dynamischer Paketfilter – stateful inspektion
-
-
-
Beispiel
o permit tcp host 1.2.3.4 gt 1023 any eq www
o permit tcp any eq www host 1.2.3.4 gt 1023 established
Schützt zusätzlich gegen
o Denial-of-service Angriffen gegen ext. Dienste
o FIN-Scans
Schwächen
o keine Filterung von Applikationsdaten
Stärken
o hohe Durchsatzraten
o verbesserte Filtermöglichkeiten
Funktionsprinzip: Filterung aufgrund von TCP/IP Header-Informationen und internen
Zustandstabellen
Firewall – Application-Gateway – Proxy
-
-
-
Beispiel
o permit http command get from any to http-server
o deny ftp command put from internal to any
Schützt zusätzlich gegen
o unerwünschte Nutzung von externen Diensten
Schwächen
o relative geringe Durchsatzraten
o für jeden Netzwerkdienst eigene Anwendung (Proxy) erforderlich
Stärken
o hohe Sicherheit
o Analyse von Applikationsdaten (kann z.B. „tunnelung“ verhindern)
Funktionsprinzip: Analyse des Applikationsdatenstroms; Lesen des entsprechenden RFC;
Kontext einer Anwendung entnehmen
Firewall-Architektur – 1stufige Systeme
- eine Komponente mit Filterfunktion
- geringe Sicherheit durch fehlende Redundanz in den Sicherheitskomponenten
- Einsatzgebiet: Kopplung von Netzen mit leichtem Gefälle der
Vertrauenswürdigkeit
- Beispiel: Zwei verschiedene Abteilungen einer Unternehmenseinheit
Firewall-Architektur – 2stufige Systeme
- zwei Komponenten mit Filter- und Loggingfunktion
- Sicherheit durch Herstellerwechsel
- Einsatzgebiet: Kopplung von Netzen mit mittlerem Gefälle der
Vertrauenswürdigkeit
- Beispiel: Zwei verschiedene Einheiten eines Unternehmens
Firewall-Architektur – 3stufige Systeme
- drei Komponenten mit Filter- und Loggingfunktion
- Sicherheit durch Herstellerwechsel
- Einsatzgebiet: Kopplungen von Netzen mit hohem Gefälle der
Vertrauenswürdigkeit
- Beispiel: Unternehmen / Internet
Internet
Paketfilter
Applikation
Gateway
Paketfilter
Internes
Netz
Firewall - DeMilitarisierte Zone (DMZ)
- Ausgangsfrage: Wie können A und B Mails austauschen, ohne dem jeweils
anderen Zugang zum internen Netz zu gewähren?
- Antwort
o Mailserver in extra Netzsegment (DMZ)
o (Paket-)Filter akzeptieren (SMTP/POP) Verbindungsaufbau nur von innen
nach außen
Sichere Anbindung eines Webservers
- Paketfilter erlaubt (www) Verbindungsaufbau nur von außen in die DMZ – schützt
Gateway
- Gateway
- (unvollständig)
Fill-Blown-Up/Realität
Schlussfolgerung – Was kann eine Firewall?
- Eine Firewall
o steht im Blickpunkt von Sicherheitsentscheidungen
o ist einziger Verbindungspunkt zwischen Netzen
- Eine Firewall erzwingt
o eine Sicherheitspolitik
o eine Entscheidung über zulässige und nicht-zulässige Dienste sowie
Nutzungsbeschränkungen
- Eine Firewall ermöglicht
o eine genaue Überwachung der Dienstnutzung
o als einziger Verbindungspunkt ist jeder Datenverkehr an der Firewall sichtbar
- Eine Firewall verhindert Freigabe interner Informationen
Schlussfolgerung – Was kann eine Firewall nicht?
- vor internen Angreifern schützen
o kann zu Nachlässigkeit bei Absicherung interner Systeme führen
- vor Verbindungen schützen, die an der Firewall vorbei gehen
o organisatorische Regeln erforderlich
- vor Inhaltsmanipulation schützen
o Verschlüsselung mit starker Kryptographie schützen
- vor neuen und noch nicht adressierten Angriffen schützen
o Angreifer sind kreative Menschen
- vor Konfigurationsfehlern schützen
o Abwehrer sind auch nur Menschen
- vor Angriffen auf öffentlich zugängliche Systeme schützen
o solche Systeme müssen extra gehärtet werden
- vor Viren, Trojanern, etc. schützen
o Hierfür sind 3rd Party Produkte notwendig
o organisatorische Regelungen helfen
o gesunder Menschenverstand („I love you“)
Herunterladen