Netzwerk Technik

Werbung
Martin Wild, Robert Porpaczy
Netzwerk Technik
Protokolle
INFTT
Inhaltsverzeichnis
UDP (User Datagramm Protokoll) .............................................................................................. 4
Funktionsweise ....................................................................................................................... 4
UDP & DNS ............................................................................................................................ 4
UDP & VPN ............................................................................................................................ 4
UDP & Audio/Video ................................................................................................................ 5
Frame Relay ........................................................................................................................... 5
TCP (Transmission Control Protocol) ......................................................................................... 7
TCP-Kommunikation .............................................................................................................. 7
TCP Header ........................................................................................................................... 8
Verbindungsaufbau ................................................................................................................ 9
TCP-Port-Übersicht ................................................................................................................ 9
IP - Protokoll .............................................................................................................................10
Eigenschaften und Funktion ..................................................................................................11
ICMP (Internet Control Message Protocol) ................................................................................11
Aufbau ...................................................................................................................................12
Funktionen ............................................................................................................................12
Ping .......................................................................................................................................12
Ping und Pong .......................................................................................................................12
Inhalt .....................................................................................................................................13
Beispiel..................................................................................................................................13
ARP (Adress resolution Protokoll) .............................................................................................14
Funktionsweise ......................................................................................................................14
Aufbau ...................................................................................................................................14
Inhalt .....................................................................................................................................15
ARP Befehl in UNIX ähnlichen Sytemen................................................................................16
Gefahren ...............................................................................................................................16
RARP Reverse Adress Resolution Protokoll ..........................................................................16
Funktion ................................................................................................................................16
IMAP ( Internet Message Access Protocol) ...............................................................................17
Ablauf IMAP ..........................................................................................................................17
Beispiel: IMAP Session .........................................................................................................17
Authentifizierung....................................................................................................................19
2
IMAPS ...................................................................................................................................19
SMTP (Simple Mail Transfer Protocol) ......................................................................................20
Ports ......................................................................................................................................20
Einsatzgebiet .........................................................................................................................20
Verfahren ..............................................................................................................................20
Analyse des E-Mail-Versands................................................................................................20
Protokoll ................................................................................................................................21
Statuscodes ..........................................................................................................................21
SMTP-Befehle .......................................................................................................................22
3
UDP (User Datagramm Protokoll)
Funktionsweise
UDP arbeitet auf der 4. Schicht, der Transportschicht, des OSI-Schichtenmodells. Es hat fast die gleiche
Aufgabe wie TCP. Allerdings arbeitet es verbindungslos und damit unsicher. Das bedeutet, der Absender
weiß nicht, ob seine verschickten Datenpakete angekommen sind. Während TCP Bestätigungen beim
Datenempfang sendet, verzichtet UDP darauf. Das hat den Vorteil, dass der Paket-Header viel kleiner ist.
UDP fehlen nahezu alle Kontrollfunktionen von TCP, daher kommt das Protokoll ‘schlanker’ daher und
ist einfacher zu verarbeiten. Jedoch hat es dadurch auch z.B. keine Möglichkeit zu überprüfen ob das
Datenpaket erfolgreich beim Empfänger angekommen ist. Ebenso entfällt die Nummerierung der
Datenpakete, UDP ist somit nicht in der Lage den Datenstrom in der richtigen Reihenfolge
zusammenzusetzen. Die Pakete werden deshalb direkt an die Anwendung weitergeleitet, diese setzt
dann die Pakete richtig zusammen und ist auch für eine sichere Datenübertragung zuständig.
Typischer Verwendungsbereich: DNS-Anfragen, VPN-Verbindungen, Audio- und Video-Streaming.
UDP & DNS
Bei DNS wird UDP verwendet, da es wegen eines kleinerem Frames von 512 Byte schneller übertragen
wird als TCP. Wenn mehr Daten für die DNS Anfrage gebraucht werden, wird auf TCP umgeschaltet.
UDP & VPN
Bei VPN wird UDP aus zwei Gründen verwendet. Erstens. Da die Verbindung nur zwischen zwei
Teilnehmer besteht, sind die Daten nicht Fehleranfällig und brauchen daher keine Fehlerüberprüfung.
Zweitens. Die Framelänge von UDP beträgt max. 512 Byte, dementsprächend erfolgt die Übertragung
schneller.
4
UDP & Audio/Video
Beii Audio/Video Streaming wird UDP wegen seiner Geschwindigkeit verwendet. Da bei UDP keine
Flusskontrolle und keine Fehlerkontrolle hat, wird es sehr schnell übertragen. Wenn Pakete kollidieren
ist es nicht so schlimm wie bei anderen Anwendungen.
Eigenschaften von UDP
kein Verbindungsmanagement
keine Flusskontrolle
keine Zeitüberwachung
keine Fehlerbehandlung
Aufbau des UDP-Headers
Inhalt
Feldinhalt
Bit
Beschreibung
Quell-Port
(Source-Port)
16
Absender Adresse.
Bei einer Stellenanzahl von 16 Bit beträgt
beträ der höchste Port 65535.
Ziel-Port
(DestinationPort)
16
Ziel Adresse
Bei einer Stellenanzahl von 16 Bit beträgt der höchste Port 65535.
Länge
16
In diesem Feld wird angegeben, wie lang das gesamte UDP-Paket
UDP Paket ist. Über diesen Wert kann die
Vollständigkeit
eit des UDP-Paketes
UDP
ermittelt werden.
Check-Sum
16
Über dieses Feld wird kontrolliert, ob das UDP
UDP-Paket
Paket fehlerfrei übertragen wurde. Die Check-Summe
Check
bietet keinen Schutz vor Datenverlust.
Frame Relay
Frame Relay ist ein Paket-Protokoll,
Protokoll, welches auf dem
de Data Link Layer (OSI-Schicht
Schicht 2) mit variabler
Paketlänge arbeitet. Es verfügt über eine Fehlerüberwachung, die fehlerfreie Pakete weiterleitet und
fehlerhafte Pakete löscht. Die Flusskontrolle und Sicherung müssen die Endsysteme übernehmen. Durch
den Verzicht
zicht auf die Fehlerbehandlung und dem damit geringen Protokoll-Header
Protokoll Header wird ein hoher
Datendurchsatz und eine geringe Verzögerungszeit erreicht.
5
Der Anwendungsbereich ist typischerweise die LAN-Kopplung in einem WAN-Backbone.
Frame Relay Verbindungen werden zunehmend von IP-basierten Übertragungssystemen ersetzt wie
zum Beispiel Ethernet. VPN-Netze über IP sind preiswerter und MPLS-Netze (Multiprotocol Label
Switching) haben höhere Bandbreiten im Vergleich zu Frame Relay.
Frame Relay ist für konstante Datenübertragungen zu gebrauchen, wie z.B. digitalisierte Sprache. Für
verschiedene Verkehrsprofile ist es jedoch nur beschränkt nutzbar.
Aufbau
Quelle: http://www.itwissen.info/definition/lexikon/Frame-Relay-Rahmen-frame-relay-frame.html
Feldinhalt
Bit
Beschreibung
2x Flag
je 8 Bit
Beginn & Ende des Headers
2x Adressfeld
je 8 Bit
Verbindungserkennung
Informationsfeld
variabel
Prüfsumme
2Byte
Das Adressfeld beinhaltet zusätzliche Informationen für die Flusskontrolle
Bezeichnung
Erklärung
DLCI
Data Link Connection Identifier. Numerischer Wert, um die virtuellen Verbindungen zu
identifizieren.
C/R
Command / Response
FECN
Forward Explicit Congestion Notification. Dient der Staumeldung. Eine FECN-Meldung
wird bei Überlast an den Empfänger gesendet.
BECN
Backward Explicit Congestion Notification. Dient der Staumeldung. Eine BECN-Meldung,
6
mit der Aufforderung, die Datenrate zu verringern, wird bei Überlast an den Sender
übertragen.
DE
Discard Eligibility Indicator. Dateneinheiten, bei denen dieses Flag gesetzt ist, können bei
Überlast verworfen werden.
EA
Address
ress Field Extension Bit. Ist dieses Flag gesetzt, bedeutet dies, dass noch weitere
Bytes im Header folgen.
Maximaler
Burst
maximale Anzahl von Bits in einer bestimmten Zeitspanne
TCP (Transmission Control Protocol)
Protocol
Jedem Datenpaket, das TCP verschickt, wird ein Header vorangestellt, der die folgenden Daten enthält:
Sender-Port
Empfänger-Port
Paket-Reihenfolge (Nummer)
Prüfsumme
Quittierungsnummer
Pakete setzen sich aus dem Header-Bereich
Header Bereich und dem Daten-Bereich
Daten
zusammen. Im
Aufbau des TCP-Headers TCP-Pakete
Header
er sind alle Informationen enthalten, die für eine gesicherte TCP
TCP-Verbindung
Verbindung wichtig sind. Der TCP
TCP-Header ist
in mehrere 32-Bit-Blöcke
Blöcke aufgeteilt. Mindestens enthält der Header 5 solcher Blöcke. Somit hat ein TCP-Header
TCP
eine Länge von mindestens 20 Byte.TC
Byte.TCP
P ist außerdem dafür verantwortlich, die empfangenen Daten an die
korrekte Applikation weiterzuleiten. Zur Adressierung der Anwendungen werden auf der Transportebene deshalb
sogenannte Portnummern verwendet.
TCP-Kommunikation
(Quelle: http://www.elektronik-kompendium
kompendium.de/sites/net/0812271.htm)
Der Sender beginnt mit dem Senden des ersten Datenpakets (Send Paket 1
1).
). Der Empfänger nimmt das
Paket entgegen (Receive Paket 1) und bestätigt den Empfang (Send ACK Paket 1).
7
TCP Header
Quelle: http://www.rvs.uni-bielefeld.de/~heiko/tcpip/tcpip_html_alt/abbildungen/tcp_header.gif
Quell- und Zielport:
Adressierung der Anwendungen. Source Port = Kom. Port. Destination = Reservierter Port.
SEQ und ACK Number:
Geben die Stellung der Daten des Segments innerhalb des in der Verbindung ausgetauschten
Datenstroms an. Die Sequenznummer gilt in Senderichtung, die Bestätigungsnummer für
Empfangsquittungen.
Offset:
Gibt die Länge des Headers an
Flags:
Flags wie SYN, ACK, FIN, URG werden hier angegeben
Window:
Gibt an wie viele Packete bis zum nächsten Handshake gesendet werden.
Ist die Verbindung durchwegs erfolgreich erhöht sich die Anzahl der Packete die auf einmal gesendet
werden.
Checksum:
Die Prüfsumme prüft den Protokollkopf und die Daten
Urgent Pointer:
Der Urgent-Zeiger ergibt zusammen mit der Sequenznummer einen Zeiger auf ein Datenbyte. Dies
entspricht einem Byteversatz zu einer Stelle, an der dringende Daten vorgefunden werden.
Options:
Das Options-Feld soll eine Möglichkeit bieten Funktionen bereitzustellen, die im normalen TCPProtokollkopf nicht vorgesehen sind. z.B. kann eine maximale Segmentgröße definiert werden
Padding:
Der Header ist in 32 Bit Blöcke aufgeteilt, daher dient dieses Feld als Füllfeld.
8
Verbindungsaufbau
(Quelle: http://upload.wikimedia.org/wikipedia
wikipedia/commons/thumb/9/98/Tcp-handshake.svg/376px-Tcp-handshake
handshake.svg.png)
Zum Beenden der Verbindung tauschen die beiden Hosts wiederum einen Dreiwege
Dreiwege-Handshake aus, bei
dem das FIN-Bit
Bit zum Beenden der Verbindung gesetzt ist.
TCP-Port-Übersicht
Well Known Ports
Reservierte Ports
0 - 1023
Diese Ports sind fest einer Anwendung oder einem Protokoll
zugeordnet.
Registered Ports Kom. Ports
1024 49151
Diese Ports sind für Dienste vorgesehen.
Dynamically
Allocated Ports
49152 65535
Diese Ports werden dynamisch zugewiesen. Jeder Client kann diese
Ports nutzen. Wenn ein Prozess einen Port benötigt, fordert er
diesen bei seinem Host an.
Port-Nummer
Protokoll
Anwendung
21
FTP
Dateitransfer
23
Telnet
Konsole
25
SMTP
Postausgang
80
HTTP
World Wide Web
110
POP3
Posteingang
9
IP - Protokoll
Quelle:http://maettig.com/content/Studium/Anonymitaet/ip
Quelle:http://maettig.com/content/Studium/Anonymitaet/ip-protokoll.gif
Type of Service
Flags
option
10
Version (4 Bit): Gibt an, um welche Version von IP es sich handelt (Momentan normalerweise v4).
H-Länge (4 Bit): Die Header-Länge gibt an, wieviele 32-Bit-Zeilen der gesamte Header besitzt (wird für
zusätzliche Optionen benutzt).
Service-Typ (8 Bit): Ist ein Kriterium für die nächste Routerauswahl (Schneller Router, Benötigt der
Router einen hohen Durchsatz,..)
Länge (16 Bit): Gibt an, wieviele Bytes das gesamte Paket enthält.
ID (16 Bit): Der Wert wird zur Nummerierung der Datenpakete verwendet. Die Kennung ist eindeutig
und fortlaufend.
Flags (3 Bit): Flags, werden für die Fragmentierung benutzt. (ID-Nummer)
Fragment-Offset (13 Bit): Gibt an, an welcher Stelle das Fragment eingefügt werden muss (in 8 Bytes).
TTL (8 Bit): Die Time-To-Live gibt an, wieviele Hops das Paket noch weitergesendet werden darf.
höheres Protokoll (8 Bit): Gibt an, welches Protokoll im nächst höheren Layer gebraucht wird.
Checksum (16 Bit): Hier wird die Checksumme gespeichert (wird zu Korrektheitsüberprüfung gebraucht).
Source-IP-Adresse (32 Bit): Gibt an, von welcher IP-Adresse das Paket kam.
Ziel-IP-Adresse (32 Bit): Gibt an, zu welcher IP-Adresse das Paket gesendet werden soll.
Optionen und Padding Die Optionen müssen ein Vielfaches von 32 Bit lang sein. Sind sie das nicht, wird
mit 0-Bits aufgefüllt (Padding). Aufgrund der Größenbeschränkung des Feldes Internet Header Length
können die Optionen maximal 40 Byte lang sein.
Strict Routing: Option gibt den kompletten Pfad an, welchen das Paket durchlaufen muss
Free Routing: Option gibt eine Liste von Routern an, die vom Paket nicht verfehlt werden dürfen
Record Route: Lässt die komplette Route aufzeichnen (Heute reicht die Größe des Option-Feldes meist
nicht mehr dafür aus)
Time Stamp: Zeitstempel
Security: Bezeichnet, wie geheim das Paket ist
Eigenschaften und Funktion
Die Aufgabe des Internetprotokolls (IP) besteht darin, Datenpakete von einem Sender über mehrere
Netze hinweg zu einem Empfänger zu transportieren. Die Übertragung erfolgt auf der
Vermittlungsschicht, sie ist paketorientiert, verbindungslos und nicht garantiert. Die IP-Datagramme
werden auch bei identischen Sendern und Empfängern vom IP-Protokoll als voneinander unabhängige
Datenpakete transportiert. Das IP-Protokoll garantiert weder die Einhaltung einer bestimmten
Reihenfolge noch eine Ablieferung beim Empfänger, d.h. Datagramme können z.B. wegen
Netzüberlastung verloren gehen. Empfangsquittungen gibt es auf IP-Schicht nicht.
ICMP (Internet Control Message Protocol)
Das Internet Control Message Protocol (ICMP) ist ein Protokoll zur Übertragung von Statusinformationen und
Fehlermeldungen von IP-, TCP- und UDP-Protokollen. Besonders Gateways und Hosts benutzen ICMP, um Berichte
über Probleme mit Datagrammen zur Originalquelle zurückzuschicken. Die Meldungen des ICMP-Protokolls sind in
zwei Klassen definiert: In Fehlermeldungen und Informationsmeldungen.
11
Aufbau
Der Aufbau einer ICMP-Nachricht
Nachricht lässt sich wie folgt darstellen:
Qulle:http://www.elektronik-kompendium.de//sites/net/0901011.htm
ICMP hat keine eigene Header-Struktur.
Struktur. Es wird der Standard
Standard-IP-Header
Header zur Übertragung von genutzt.
Für die Nutzung durch ICMP werden einige Felder des IP-Headers
IP
angepasst:
Das IP-Header-Feld Type-of-Service
Service wird auf den Wert "0000" gesetzt.
Das IP-Header-Feld Protokoll wird auf den Wert "0001" (=ICMP) gesetzt.
Der Daten-Bereich des IP-Headers
Headers wird zum ICMP-Bereich,
ICMP
in dem sich die Felder ICMP-Typ
Typ (Meldungstyp), ICMPCode (Zusatzinformationen zur Behandlung de
der Nachricht), die ICMP-Check-Summe und der ICMP-Daten-Bereich
befinden
Funktionen
Ping
Ping sendet ein ICMP-„Echo-Request“
Request“-Paket
Paket (ping) an die Zieladresse des zu überprüfenden Hosts. Der
Empfänger muss, sofern er das Protokoll unterstützt, laut Protokollspezifikation
Protokollspezifikation eine Antwort
zurücksenden: ICMP „Echo-Reply“
Reply“ (pong). Ist der Zielrechner nicht erreichbar, antwortet der zuständige
Router: „Network unreachable“ (Netzwerk nicht erreichbar) oder „Host unreachable“ (Gegenstelle nicht
erreichbar).
Ping und Pong
Heutzutage
eutzutage wird vom jedem Router und jedem PC erwartet, ICMP zu „sprechen“. Aber kein Rechner ist
verpflichtet, ICMP-Nachrichten
Nachrichten zu versenden, mit einer Ausnahme: jeder Rechner muss auf ein ECHO-REQUEST
immer ein ECHO-REPLY senden; das sprichwörtliche Ping und Pong.
12
Inhalt
Das Feld „Typ“ gibt dabei die Klasse der ICMP-Nachricht an, das Feld „Code“ spezifiziert die Art der
Nachricht genauer. Einige der häufiger vorkommenden Typ-Code-Kombinationen sind.
Quelle:http://de.wikipedia.org/wiki/Internet_Control_Message_Protocol
Beispiel
Es werden Datenpakete an den Rechner 172.20.3.37 gesendet. Es wird die Zeit gemessen, bis die
Antwort des Hosts eintrifft. Die Zeitangabe sagt aus, wie lange ein Datenpaket zum Host und wieder
zurück benötigt („response time average“). Die Angabe TTL kann dazu genutzt werden, grob
abzuschätzen, über wie viele Router die ICMP-Pakete gelaufen sind (bei jedem Router wird der Wert um
mindestens 1 weniger)
ping <IP-Adresse>
13
ARP (Adress resolution Protokoll)
Das ARP wird vom Benutzer eigentlich nicht wahrgenommen da es im Hintergrund läuft.
Es ist Zuständig das einer IP Adresse auch eine MAC Adresse zugeordnet werden kann.
Funktionsweise
Wenn ein Computer einem Anderen Computer ein Paket übers Netzwerk Schicken will braucht er
dessen MAC Adresse wenn er diese Nicht hat kommt ARP zum Einsatz.
Der Computer der die IP adresse auflösen will schickt einen Broadcast (an alle im Netz Befindlichen
Computer) “wer hat <IP-Adresse>” ist der Ziel Host online antwortet er mit einem ARP-Reply “<IPAdresse> ist auf <MAC-Adresse>” .Diese Antwort speichert der Rechner temporär im ARP-Cache, um
weitere Anfragen zu vermeiden.
ARP Request(Quelle Microsoft TecChannel:http://www.microsoft.com/germany/technet/datenbank/articles/600593.mspx)
Aufbau
Ein ARP Request wird in einem Ethernetframe gesendet mit der Absender MAC und IP und der
Empfänger IP Aber mit einer Broadcast MAC Adresse (FF:FF:FF:FF:FF:FF). Das Typfeld im Ethernetframe
wird auf 0x0806 gesetzt diese Zahl ist für ARP Reserviert, so erkennt der Ziel Host das das Paket an Ihn
Adressiert ist und es ein ARP Request ist. so kann dieser die Antwort darauf vorbereiten, diese
wiederum den gleichen Haeder bekommt nur voll ausgefüllt so kann der PC der den Request gesendet
hat die MAC mit der IP in die ARP Tabelle eintragen um so nicht nochmal nach einer MAC nachfragen
muss. Der Ethernetframe teil für die Daten wird bis zur gänze als PADfeld verwendet.
14
Abbildung ARP Header Graphisch dargestellt
estellt (Quelle:
(Quelle:http://hackingtaranto.altervista.org/arp_rarp
rarp.html)
Inhalt
Jeder Computer in einem Netzwerk
etzwerk hat eine so genannte ARP-Tabelle
ARP Tabelle wo die IP und MAC Adressen
zwischengespeichert werden damit nicht jedes Mal ein ARP Request durchgefürt werden muss diese
kann in Microsoft Betriebssystemen mit dem Befehl: “arp -a”
a” abgerufen werden.
ARP Tabelle eines SchulPCs
Natürlich kann man auch diese Tabelle Bearbeiten, für diesen zweck gibt es einen Befehl zum Löschen
eines Eintrags(arp -d)
d) und einen zum Eintragen (arp -s).
ARP Befehlsliste (arp -?)
15
ARP Befehl in UNIX ähnlichen Sytemen
In UNIX ähnlichen Systemen gibt es den Befehl ARP auch:
arp [options]
-h - Hilfe
-e - zeigt den Inhalt der ARP Tabelle an (-a macht das gleiche aber in BSD style)
-n - Nicht IP adressen zu Host Namen auflösen (zeigt IP Adressen nicht Hostnamen an)
ip-address - Zeigt den ARP Inhalt einer IP Adresse an
hostname - Zeigt den ARP Inhalt eines Hostnamens an
-d [ip-address | hostname] - Löscht einen Eintrag
-s ([ip-address | hostname] mac-address) - Trägt einen Eintrag ein
Arp Tabelle auf einem Unixähnlichen System (Quelle: http://www.linux-community.de/Internal/Artikel/PrintArtikel/EasyLinux/2009/02/Flotte-Kiste)
Gefahren
ARP-SPOOFING: Mit ARP-Spoofing ist es möglich ARP einträge im Netzwerk zu ändern um einen
Computer zwischen zu schalten das ist eine sogenannte Man in the middle attake, so kann der zwischen
geschaltene Computer den gesamten Netzwerkverkehr auslesen.
RARP Reverse Adress Resolution Protokoll
Das RARP stellt das genaue gegenstück zum ARP dar, daher RARP sucht die MAC Adresse zu einer IP
Adresse heraus.
Funktion
RARP sendet dazu ein RARP Request-Broadcast mit der eigenenMAC-Adresse als Inhalt an die am
Netzwerk angeschlossenen Rechner. Ein RARP-Server, welcher alle Zuordnungen IP- zu MAC-Adressen
kennt, sendet daraufhin eine Antwort mit der IP-Adresse an die anfragende MAC-Adresse (RARP-Reply).
So ein RARP Server enthält alle IP und MAC zuordnungen in seinem Speicher in einer ARP-Tabelle. Die
Zuordnungstabelle auf dem RARP-Server muss vom Systemverwalter manuell gepflegt werden.
16
IMAP ( Internet Message Access Protocol)
Ziel: Zugriff auf Mailboxen und Nachrichten so bereitzustellen, als wenn diese sich auf dem lokalen
Rechner befänden. Mails verbleiben in der Regel auf Mailserver und nur bei Bedarf auf Client übertragen
werden. Übertragungsport TCP: 143 (SSL 993). Vorteil: Emails zentral verwaltet am Server, Webmail
sobald Internet vorhanden ist; Nachteile: mehr Server-Leistung, kein Offline wenn Mails nicht geladen
wurden;
Ablauf IMAP
Client -> Anfrage zum Server; Server -> Aufforderung an Client sich anzumelden; Client -> schickt an
Server Anmeldung und Server bestätigt; Client wählt z.B. Inbox als aktiven Ordner -> dabei erhält der
Server eine textbasierende Anfrage und läd die Infos zu Mailbox (z.B. 2 neue Mails, 1000 insgesamt,..);
wählt Client eine Email wird wieder eine Anfrage gesendet und die Daten geladen; In Form von Flags
werden Emails entweder markiert + gelöscht, markiert gesendet oder markiert + weitergeleitet z.B. +flag
/delete - Mail wird gelöscht.
Beispiel: IMAP Session
Client
Server
Erklärung
* OK IMAP4rev1 Service Ready
Server begrüßt den Client
a001 login mrc
secret
Client meldet sich an
a001 OK LOGIN completed
a002 select
inbox
Server bestätigt Anmeldung
Client wählt inbox als aktiven
Ordner
* 18 EXISTS
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* 2 RECENT
* OK [UNSEEN 17] Message 17 is the first unseen message
a002 OK [READ-WRITE] SELECT completed
a003 fetch 12
full
18 Mails vorhanden
definierte Flags
2 dringliche Mails (z. B. neue
Mails)
Mail Nr. 17 ist ungelesen. Alle
älteren wurden bereits gelesen.
Client darf Änderungen an Mails
durchführen
Client fordert Infos zu Mail Nr.
12
* 12 FETCH (FLAGS (\Seen)
INTERNALDATE "17-Jul-1996 02:44:25 -0700"
RFC822.SIZE 4286
Mail wurde bereits gelesen
am 17. Juli 1996 zugestellt
über 4kB groß
17
ENVELOPE ("Wed, 17 Jul 1996 02:23:25 -0700 (PDT)"
"IMAP4rev1 WG mtg summary and minutes"
(("Terry Gray" NIL "gray" "cac.washington.edu"))
(("Terry Gray" NIL "gray" "cac.washington.edu"))
(("Terry Gray" NIL "gray" "cac.washington.edu"))
((NIL NIL "imap" "cac.washington.edu"))
(("John Klensin" NIL "KLENSIN" "MIT.EDU"))
NIL NIL
"<[email protected]>")
BODY ("TEXT" "PLAIN" ("CHARSET" "US-ASCII") NIL NIL
"7BIT" 302892))
a003 OK FETCH completed
a004 fetch 12
body[header]
Mail-Header:
Datum
Betreff
Absender (From)
Absender (Sender)
Antwort-an
Empfänger (To)
Kopie-Empfänger (CC)
BCC und In-Reply-To nicht
angegeben
Message-ID
Client möchte alle Header zu
Mail Nr. 12
* 12 FETCH (BODY[HEADER] {342}
Date: Wed, 17 Jul 1996 02:23:25 -0700 (PDT)
From: Terry Gray <[email protected]>
Subject: IMAP4rev1 WG mtg summary and minutes
To: [email protected]
cc: [email protected], John Klensin
<[email protected]>
Message-Id: <[email protected]>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
)
a004 OK FETCH completed
a005 store 12
+flags \deleted
Server sendet geforderte
Mailheader
Mail Nr. 12 als gelöscht
markieren
* 12 FETCH (FLAGS (\Seen \Deleted))
a005 OK +FLAGS completed
a006 logout
Client meldet sich ab
* BYE IMAP4rev1 server terminating connection
a006 OK LOGOUT completed
Internet Message Access Protocol
Familie:
Internetprotokollfamilie
18
Einsatzgebiet:
Lesen und Verwalten von E-Mails
Ports:
143/TCP
993/TCP (nur mit TLS)
Anwendung
IMAP
Transport
TCP
Internet
IP (IPv4, IPv6)
Netzzugang
Ethernet
Token
Bus
Token
Ring
FDDI
…
Authentifizierung
Zugriff für nicht-autorisierte Benutzer auf eine Mailbox kann verweigert werden. Nutzer muss sich
immer authentifizieren, vor Mail Zugriff. Anmeldung: Benutzername und Passwort auf IMAP-ProtokollEbene in Klartext. wenn vorher keine verschlüsselte Sitzung aufgebaut wurde. Möglich Passwort zu
senden, zu verbieten sollte keine Sichere Verbindung bestehen.
IMAPS
Bei der Verwendungsaufbau von IMAPS durch SSL verschlüsselt. Erkennung durch aneren Port (Port:
993). Nach dem Aufbau der SSL-Verbindung wird mindestens IMAPv4 verwendet. SSL-Schicht ist für das
IMAP-Protokoll transparent, d. h. keine Änderungen am IMAP-Protokoll
19
SMTP (Simple Mail Transfer Protocol)
dient zum Versenden von Emails.
SMTP-Server nehmen im Normalfall den Port 25 in Anspruch, neuere Server verwenden jedoch den Port
587.
Ports
25 :
465 :
587 :
Standardport für das SMTP-Protokoll
SSL und TLS
Bei direktem Versand vom Client zum Postausgangsserver
Einsatzgebiet
Einspeisung von E-Mail (Mail Submission), Abholung von E-Mails eventuell über mehrere Stationen (Mail
Transfer)
Verfahren
Die Abwicklung des SMTP-Verfahrens erfolgt “unsichtbar”. E-Mail Anwendungen, sogenannte “Mail
User Agents” (MUA), übernehmen diese für den Benutzer. Diese verbinden sich mit einem SMTP-Server,
dem “Mail Submission Agent” (MSA), der die Mail über gegebenfalls weitere SMTP-Server, sogenannte
“Mail Transfer Agents” (MTA), zum Ziel transportiert.
SMTP diente ursprünglich um den Versand von lokal gespeicherten E-Mails zwischen zwei Mailservern
zu ermöglichen, weshalb ein einzelner Server auf Port 25 die Rolle des MSA und MTAs übernahm.
Seit dem Aufkommen von Mailprogrammen auf PCs wird SMTP aber auch für den Versand von E-Mails
vom PC zum ausgehenden Mailserver eingesetzt. Seit einigen Jahren ist dafür ein anderer Port
vorgesehen (587 statt 25).
Analyse des E-Mail-Versands
Direkt nach dem Verbindungsaufbau über TCP meldet sich der SMTP-Server.
Der SMTP-Client meldet sich mit seinem Computernamen an.
Der Server bestätigt den Erhalt und erwartet die Fortführung der Verbindung.
Der Client meldet die Absender-Adresse für den MTA.
Der Server bestätigt den Erhalt und erwartet die Fortführung der Verbindung.
20
Der Client meldet die Empfänger-Adresse für den MTA.
Der Server bestätigt den Erhalt und erwartet die Fortführung der Verbindung.
Mit DATA leitet der Client das Senden der E-Mail ein.
Der Server teilt dem Client mit, dass er die E-Mail mit einem Punkt (.) abgeschlossen haben will.
1. E-Mail-Zeile
2. E-Mail-Zeile
3. E-Mail-Zeile
Der Client signalisiert mit zweimal Zeilenumbruch den eigentlichen Nachrichtentext der E-Mail in der 4.
E-Mail-Zeile.
5. E-Mail-Zeile
Die E-Mail wird mit dem Punkt (.) abgeschlossen.
Der Server quittiert den erfolgreichen Empfang der E-Mail.
Der Client beendet die Verbindung zum Server.
Der Server sagt "Auf Wiedersehen".
Protokoll
SMTP ist ein Textbasiertes Protokoll d.h.
Absender- und Empfängeradresse sind frei wählbar, und eine Authentifizierung findet nicht statt. Aus
diesem Grund ist die Verlässlichkeit der Absenderangabe einer E-Mail nicht gegeben.
Der Server antwortet auf Kontaktaufnahmen mit dreistelligen Statusnummern und kurzen Texten, die
variieren oder auch entfallen können. Der Client muss mit festgelegten Zeichenfolgen auf die
Statusmeldungen reagieren.
Statuscodes
1XX
Mailserver hat die Anforderung akzeptiert, ist aber selbst noch nicht tätig geworden. Eine
Bestätigungsmeldung ist erforderlich.
2XX
Mailserver hat die Anforderung erfolgreich ohne Fehler ausgeführt.
3XX
Mailserver hat die Anforderung verstanden, benötigt aber zur Verarbeitung weitere Informationen.
4XX
Mailserver hat einen temporären Fehler festgestellt. Wenn die Anforderung ohne jegliche Änderung
wiederholt wird, kann die Verarbeitung möglicherweise abgeschlossen werden.
5XX
Mailserver hat einen fatalen Fehler festgestellt. Die Anforderung kann nicht verarbeitet werden.
21
SMTP-Befehle
Die Kommunikation zwischen SMTP-Client und SMTP-Server basiert auf ASCII-Kommandos. Laut SMTPSpezifikation muss eine SMTP-Implementierung mindestens die folgenden acht Kommandos
unterstützen.
SMTP-Kommando
Beschreibung
HELO/EHLO
(Hello/Extended
Hello)
HELO bzw. EHLO startet die SMTP-Sitzung und identifiziert den Client am Server.
HELO für normales SMTP - EHLO für ESMTP
Unterschied SMTP - ESMTP: ESMTP bietet Authentifizierungsverfahren an
MAIL
MAIL leitet die Mailübertragung ein und liefert gleich die Absender-Adresse mit.
RCPT (Recipient)
RCPT gibt die Adresse eines oder mehrere Empfänger an. Dieses Kommando kann
mehrmals ausgeführt werden.
DATA
Mit DATA wird die Übermittlung der E-Mail-Nachricht eingeleitet. Das Ende der EMail-Nachricht wird mit "CRLF.CRLF" gekennzeichnet.
RSET (Reset)
Mit RSET wird die bereits eingeleitete Mailübertragung abgebrochen. Die
Verbindung zwischen Client und Server bleibt bestehen.
VRTY (Verify)
Mit VRFY kann die Empfänger-Adresse überprüft werden.
EXPN (Expand)
Die meisten MTAs behandeln EXPN wie VRFY.
NOOP
NOOP bewirkt eine Antwort vom Server. Damit wird die Verbindungstrennung
durch einen Timeout verhindert.
QUIT
QUIT beendet die Verbindung zum SMTP-Server. Der Server liefert eine letzte
Antwort zurück.
22
Herunterladen