Bärchens KEy World

 

Baerchens Key World

 

Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Baerchens Key World » Allgemeines Forum » FAQ`s & Anleitungen, Hilfen für den PC » [FAQ] TCP/IP Einleitung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen [FAQ] TCP/IP Einleitung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Opa Friedel Opa Friedel ist männlich
Board Dauer Rentner


images/avatars/avatar-700.gif


Dabei seit: 21.01.2003
Beiträge: 1.332
Mitgliedsnummer: 354






 
Herkunft: Daheim

Level: 47 [?]
Erfahrungspunkte: 7.017.773
Nächster Level: 7.172.237

154.464 Erfahrungspunkt(e) für den nächsten Levelanstieg

[FAQ] TCP/IP Einleitung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Inhaltsverzeichniss:

Teil 1:
1. Protokolle
1.1 TCP/IP
1.1.1 Arbeitsweise von TCP/IP
1.2 ARP (Address Resolution Protocol)
1.3 ICMP (Internet Control Message Protocol)
1.4 IP (Internet Protocol)
1.5 TCP (Transmission Control Protocol)

Teil 2:
2. Ports
2.1 Telnet
2.2 FTP (File Transfer Protocol)
2.3 SMTP (Simple Mail Transfer Protocol)
2.4 HTTP (Hyper Text Transfer Protocol)

Author: Astovidatu

1. Protokolle:

1.1 TCP/IP
TCP/IP bezeichnet hauptsächlich 2 Netzwerkprotokolle: Transmission Control Protocol (TCP) und Internet Protocol (IP). Allerdings sind TCP/IP nur zwei Protokolle aus der Großen TCP/IP Protokollfamilie. Die Protokolle die dazu gehören sind z.b. FTP, ARP, HTTP aber darauf werde ich später noch zu sprechen kommen. Die Protokolle die zu TCP/IP dazu gehören kontrollieren alle Dienste, das heist: E-Mail Versand, die übertragung von Dateien, World Wide Web Zugang und einige mehr.

Generell gibts es 2 Protokolltypen für die TCP/IP Protokolle.
Da hätten wir einmal die Protokolle in der Netzwerkschicht und einmal die Protokolle in der Anwendungsschicht. Die Protokolle in der netzwerkschicht sind für den User in Normalfall unsichtbar, es sei denn es werden Tools eingesetzt die IP-Datagramme lesen können, wie zum beispiel Sniffer. Ein Beispiel für ein Protokoll in der Netzwerkschicht ist das Internet Protocol.
IP übernimmt die Paketübertragung der Informationen die zwischen Benutzer und dem remote-Rechner ausgetauscht werden (wobei die IP der beiden Rechner die wichtigste Information ist).

Die Protokolle in der Anwendungsschicht hingegen sind für den User sichtbar und es ist ihm sogar gestattet zu interagieren. So kann man zum beispiel über das File Transfer Protocol Dateien von anderen FTP Servern herunterladen oder seine Homepage auf seinem eigenen FTP Server der Öffentlichkeit zugänglich machen. Der User kann allerlei Informationen ablesen, wie z.b. die Anzahl der bisher übertragenen Bytes.

TCP/IP ist mittlerweile ein standard Protokoll das wirklich gang und gebe ist. Eigentlich bietet heut zu tage jedes Betriebssystem die Möglichkeit der TCP/IP implementierung wenn es nicht schon standardmäßig mitgeliefert wurde. Noch vor einigen Jahren war dem nicht so, bevor Microsoft angefangen hat TCP/IP standardmäßig in Windows zu packen.

1.1.1 Arbeitsweise von TCP/IP
TCP/IP arbeitet mit einem Protokollstapel der der Gesamtsumme aller Protokolle entspricht die für die Übertragung von Daten von einem Rechner zum anderen zuständig sind. In anderen Worten gibt es kein vorbei an dem Protokollstapel für Daten die rein oder raus wollen.Der Protokollstapel ist in schichten aufgeteilt in unserem falle betreffen uns 5 davon. Folgend eine kleine Beschreibung mit diagram zum Protokollstapel:

Computer
|
|
Anwendungsschicht ----- Wenn eine Datenübertragung beginnt wird die Anfrage an die Transportschicht weitergeleitet.
|
|
Transportschicht ----- Es wird ein Header angefügt und dann zur Netzwerkschicht weitergelitten.
|
|
Netzwerkschicht ----- Hier werden die Quell und Ziel IP Adressen eingefügt (fürs routing).
|
|
Datenverbindungsschicht ---- Diese schicht führt fehlerüberprüfungen bezüglich des Datenflusses der Obigen schichten und der Physikalischenschicht aus.
|
|
Physikalischeschicht ---- Hier werden die Daten über das jeweilige Übertragungsmedium rein oder rauß geschickt.

Nachdem die Daten den Protokollstapel durchlaufen haben erreichen sie das Zielnetzwerk/Computer. Dort angekommen laufen die Daten den gesamten Prozess in umgekehrter Reihenfolge durch. Das heist sie kommen erst an der Physikalischenschicht an und arbeiten sich dann bis hoch zum eigentlichen Ziel. Desweiteren kann jede schicht Daten an die jeweilig benachbarte schicht senden. Auch ist jede schicht an mehrere Protokolle gebunden die verschiedene Dienste zur verfügung stellen. Diese werde ich im nächsten Teil dieses Textes besprechen. Ich werde dessen Funktionen, die zur verfügung gestellten Dienste und ihren bezug auf die sicherheit schildern.

1.2 ARP (Address Resolution Protocol)
Die Aufgabe von ARP ist es die IP-Adresse einer physikalischen Adresse eines Netzwerkes, z.b. einer Netzwerkkarte eines PC's, zuzuteilen.
Bevor Daten versendet werden müssen diese in IP-Pakete "verpackt" werden in welchem die IP-Adresse des Start und Ziel Rechners vorhanden ist. Somit wäre eine Übertragung über das Internet bereits vorbereitet, es Fehlt nur noch das Glied der Transportkette im lokalen Netzwerk. Zu diesem Zeitpunkt ist dem Startrechner noch nicht bekannt welchen Ursprung die Ziel IP-Adresse im lokalen Netzwerk hat, wenn diese überhaupt im lokalen Netzwerk zu suchen ist. Nehmen wir einmal an sie ist im lokalen-Netzwerk zu suchen, dann kommt hier ARP ins spiel.

Nun jagt der Startrechner einen ARP-Broadcast durch das lokale Netzwerk. Jeder Rechner der zuhört (auf Daten wartet) wird von diesem Rundruf angesteuert, wobei nur der Rechner der die IP-Adresse die in unserem IP-Paket vorhanden ist nach der physikalischen Adresse des Netzwerkadapters gefragt wird. die Antwort, welche nicht unbedingt vom Eingentümer selbst kommen muss - sie kann auch von einem Rechner versandt werden der sich diese Paarung mal gemerkt hat - enthält die komplette Paarung der zwei Adressen; Physikalische und IP- Adresse. Wenn nun die ARP-Reply (die Antwort) unseren Startrechner erreicht fängt dieser mit dem Datenversandt an. Wobei die IP-Pakete nur an die IP-Adresse des Netzwerkinterfaces gesendet werden dessen Physikalische Adresse zuvor abgefragt wurde. Alle anderen Rechner wissen das das Paket nicht für sie bestimmt ist und hören weg, so wird vermieden unnötig Rechenleistung zu verbrauchen. Diese Ersparniss ist der Grund für ARP.

Obig kurz erwähnt merken sich die Rechner auf dem lokalen-Netzwerk welche Physikalische Adresse zu welcher(en) IP-Adresse(n) gehört. Diesen vorgang nennt man "Caching" in unserem Fall hier "ARP-Caching". Diese Technik wird angewandt um Netzwerktraffic zu vermeiden. Wenn sich die Rechner die Paarung der Adressen nicht merken würden, müsste für jedes einzelne IP-Paket das vernsendet wird ein ARP-Broadcast losgeschickt werden was zur Folge hätte den Traffic im Netzwerk stark zu verlangsamen. Der ARP-Cache wird natürlich regelmäßig geleert, wonach wieder ein Broadcast losgeschickt werden muss bevor es wieder möglich ist Daten zu versenden. Dieses leeren des Caches ermöglicht ein Auswechseln/Tauschen der Netzwerkkarten, alle Rechner im Netzwerk werden merken das sich ihre Physikalische Adresse geändert hat und somit auch die Paarung der Pysikalischen und IP-Adresse. Übrigens ist es ohne weites möglich das eine Physikalische Adresse mehrere IP-Adressen beherbergt. Andersherum allerdings, also das mehrere Phyisikalische Adressen die gleiche IP-Adressen haben, ist nicht möglich denn dies würde a.) zu Fehlern führen und b.) auf kosten der Sicherheit gehen, könnte ja absicht sein...

1.3 ICMP (Internet Control Message Protocol)
ICMP ist für Fehler/Kontroll-meldungen an die beteiligten Rechner während eines Übertragungsprozesses zuständig. ICMP ist wichtig für die Diagnose von Netzwerkproblemen, z.b. Diagnostiziert ICMP:

-Wenn ein Host heruntergefahren (ausgeschalten) ist.
-Wenn ein Gateway "kaputt" ist.
-Wenn andere Fehler innerhalb eines Netzwerkes vorkommen.

Um mehr über ICMP zu erfahren sollten sie das "RFC 792" lesen welches auf http://www.rfceditor.org zu finden ist.

1.4 IP (Internet Protocol)
IP gehört zu der Netzwerkschicht und ist für das Übertragen von allen Datenpackten aller Protokolle der TCP/IP Protokollfamile zuständig und ist somit das Herz für diesen Vorgang. Nachfolgend ein kleines Diagramm:

Verschickte Header Informationen - Ursprungs IP-Adresse - Ziel IP-Adresse | Daten
---------------------------------------------------------------------------
--------------------------------- -----------
| |
| |
| |
Diese drei representieren den Header eines Representiert die zu versendenden Daten.
IP Datagramms. Informationen die notwendig sind um den
Ursprungs und Ziel-Punkt zu bestimmen und zu verbinden.

Wie im obigen Diagramm gezeigt besteht ein IP-Datagramm aus mehreren Teilen. Der erste Teil ist der Header welcher aus mehreren dingen besteht u.a. der Ursprungs und Ziel IP-Adresse. Zusammen ergeben diese drei Elemente den Header. Der rest des Datagramms besteht aus den zu versendenden Daten.

Wirklich erwähnenswert ist vorallem eine Fähigkeit von IP und zwar die Fähigkeit Datagramme während ihrere Reise in mehrere kleine Pakete auf zu teilen. Diese Pakte werden dann vom Zielrechner wieder zusammengefügt, unabhängig davon ob die Pakete nun in komplett falscher Reihenfolge ankommen oder nicht.

Ein IP-Datagramm enthält allerdings noch mehr Informationen wie die Identifikation des gerade benutzten Protokolles, eine Header-Prüfsumme und eine Time-to-Live spezifikation, wobei es sich bei diese Spezifikation um einen Numerischen wert handelt. Dieser numerische wert kann vor dem versenden festgelegt werden (oder hat einen standard wert). Jedenfalls wird dieser Numerische wert während der Übertragung ständig dekrementiert, wenn er 0 erreicht hat wird das Datagramm verworfen. Viele Pakettypen nutzen diese Time-to-Live Spezifikation wie z.b. ping oder traceroute.

Wenn sie gerne noch mehr über IP lesen möchten lesen sie das "RFC 792" (http://www.rfceditor.org).

1.5 TCP (Transmission Control Protocol)
TCP ist eines der Hauptprotokolle im Internet. Es übernimmt hoch sensible Aufgaben wie zum beispiel die Übertragung von Dateien oder einer Entfernten Arbeitssitzungen. TCP wird als zuverlässiges Protokoll bezeichnet da es anders als andere Protkolle garantiert das die Daten in Perfektem zustand und in korrekter Reihenfolge (eben genau so wie sie abgesendet wurden) empfangen werden.

TCP stellt eine virtuelle Verbindung zum Ziel her und verlässt sich dabei darauf das über diese die Daten korrekt übertragen werden. Die virtuelle Verbindung wird in drei schritten hergestellt und nennt sich daher "three-part handshake". Folgend ein kleines Diagram zur näheren Erklärung des three-part handshakes:

CLIENT ---> Der anfragende (Client) Rechner sendet eine Verbindungsanfrage zum Server wobei ein ---> SERVER
Port spezifiziert wird der sich dann evtl. auf dem Server öffnet.

CLIENT <--- Der Server wird mit einer Bestätigung und einer Warteschlange für die Verbindung antworten <--- SERVER

CLIENT ---> Nun antwortet der Client mit einer Bestätigung somit wird die Verbindung hergestellt ---> SERVER

Nachdem die Verbindung hergestellt wurde können die Daten gleichzeitig sowohl rein als auch raus gehen, was man als Vollduplex-Übertragung bezeichnet. Dies ermöglicht es, bei evtl. auftretenden Fehlern, Medlungen während einer laufenden Datenübertragung an den jeweiligen Computer zu senden.

TCP hat sehr gute Funktionen die zu Fehlerüberprüfung zur verfügung gestellt werden. So bekommt jedes versendete Datenpaket einen Numerischen wert zugewiesen mit dessen hilfe die jeweiligen Pakete von den beiden Computern identifiziert werden. Für jedes erfolgreich übertragene Paket sendet der Empfänger eine Bestätigung an den Absender um diesem somit zuzusichern das Paket empfangen zu haben. Bei nicht erfolgreichen Übertragungen können zwei dinge passiern:

a.) Der anfragende Rechner erhält eine Fehlermeldung

b.) Der anfragende rechner erhält nichts

Wenn eine Fehlermeldung empfangen wird, wird die Übertragung in der Regel neugestartet. Wenn allerdings ein Schwerwiegender Fehler auftritt wie z.b. ein zusammenbruch der Verbindung wird die Übertragung klarerweise unterbrochen. Auch werden die Daten neuübertragen wenn in einem bestimmten Zeitraum keine Bestätigung empfangen wird, dies wird dann so lange wiederholt bis die Datenübertragungn vollständig abgeschlossen ist.

2. Ports
Die meisten TCP/IP Programme lassen sich über das Internet starten und sind Client/Server-orientiert. Nachdem eine Verbindungsanfrage empfangen wurde, wird ein Serverprozess gestartert der mit dem Client (dem anfragenden Rechner) kommuniziert. Um diese Aufgabe zu erleichtern wird jeder Applikation eine eigene Nummer zugewiesen, der Port. FTP beispielsweise ist standardmäßig an den Port 21 gebunden. Wird eine Verbindungsanfrage an einen dieser Ports gerichtet so wird dann die entsprechende Applikation von inetd (sie erinnern sich an den daemon inetd?) gestartet.

2.1 Telnet
Das "RFC 854" beschreibt Telnet wohl am besten, folgend ein kleines Zitat dessen:

"Zweck des Telnet-Protokolls ist es, eine ehere generelle, in beide Richtungen gerichtete, 8-Bit Byte-orientierte Kommunikationsmöglichkeit zur verfügung zu stellen. Das Hauptziel ist das realisieren einer Standardmethode, um Endgerät-basierte Prozesse miteinander zu verbinden."

Mit Telnet ist es dem Benutzer nicht nur möglich sich auf einem entfernten Host ein zu loggen, er kann sogar Befehle ausführen, so als ob er selbst vor dem Rechner säße. So wäre es beispielsweise kein Problem für jemanden in Berlin eine Verbindung zu einem anderen Rechner in Amsterdam auf zu bauen und dort Befehle aus zu führen, Programme zu starten etc.

Obwohl GUI Applikationen, dank der erleichterten Handhabung und des besseren Überblicks, sehr beliebt sind (Telnet ist ein Textbasierte Applikation) ist auch Telnet trotzdem noch sehr beliebt. Dies hat mehrere Gründe; zum ersten stellt Telnet eine ganze reihe von Anwendungsmöglichkeiten zur verfügung, da wäre z.b. mal die Möglichkeit seine e-mails ab zu rufen/verschicken, dies mit beliebigem Absender und ohne viel Netzwerkresourcen zu verschwenden. Zum zweiten ist die Einrichtung eines sicheren Telnet Dienstes relativ einfach, um dies zu realisieren gibt es mehrere Programme, das wohl beliebtest ist Secure-Shell. Um Telnet zu benutzen gibt der User den entsprechenden befehl ein um den Telnet-Client zu starten, gefolgt der IP Adresse (oder des Namens) des Hosts mit dem es eine Verbindung auf zu baun gibt. So könnte das aussehen:

root@pc: telnet google.de

Dieser Befehl startet eine Telnet-Session und versucht zu google.de eine Verbindung auf zu bauen. Ob diese glückt hängt ganz von der Konfiguration des Ziel-Hosts ab. Fast alle Betriebssysteme haben Telnet bereits standardmäßig integriert (nicht unbedingt auch aktiviert).


2.2 FTP (File Transfer Protocol)
FTP ist die standard Methode für die Datenübertragung zweier entfernter Rechner. Das "RFC 0765" beschreibt den Zweck von FTP volgendermaßen:

"Die Aufgaben von FTP sind 1.) das gemeinnützige verbreiten von Dateien (Programmen und/oder Daten), 2.) die indirekte oder implizite (durch Programme) Benutzung entfernter Rechner zu fördern, 3.) dem Benutzer die Mühseligkeit der strukturellen Unterschiede der Dateisysteme zwischen verschiedenen Systemen zu ersparen und 4.) Daten zuverlässig und effektiv zu übertragen. Obwohl FTP auch direkt auf einem Terminal verwendet werden kann, ist es hauptsächlich für die Benutzung über Programme entwikelt."

Der FTP standard wurde in den letzten 20 Jahren immer wieder ergänzt. Die aller erste Definition von FTP wurde 1971 geschrieben und ist im "RFC 114" nachlesbar. Allerdings dürfte für sie das "RFC 959" von größerem Nutzen sein.

Die Dateiübertragung per FTP erfolgt über die Nutzung eines FTP-Clients (z.b. leapftp, WS_ftp, ncftp, FTPtool usw.) in einer Client/Server umgebung. Der anfragende Rechner startet einen Clienten (z.b. leapftp) dieser generiert eine Anfrage die an den Ziel-Server übermittelt wird. Wenn die standard Port nummer 21 für FTP vom Admin nicht geändert wurde dann wird die generierte Anfragen an diesen Port geschickt. Um letzendlich eine Verbindung her zu stellen muss auf dem Ziel-Rechner natürlich ein FTP-Server oder Daemon laufen.

FTPD
FTPD ist der Standard FTP Server Daemon welcher eine recht simple Aufgabe hat; auf Verbindungsanfragen über inetd zu reagieren und diesen zu entsprechen.
FTPD wartet auf eine Verbindungsanfrage, nachdem eine solche empfangen wurde fordert FTPD einen Benutzernamen und ein Kennwort. Der User hat diese einzugeben oder kann sich, wenn der anonymous log-in erlaubt ist, ggf. anonym einloggen. Wenn das geschehen ist kann der User Dateien vom Server herunterladen oder, wenn die Sicherheitsrichtlinien es erlauben, auch hochladen was aber seltener der Fall ist.

2.3 SMTP (Simple Mail Transfer Protocol)
Die Aufgabe von SMTP ist es zuverlässig und effektiv Mail zu übertragen. Der User hat mit einem SMTP-fähigen Clientprogramm eine verbindungsanfrage an einen SMTP Server zu richten. Daraufhin wird eine Verbindung in beide richtungen aufgebaut. Der Client schickt nun eine MAIL-Anweisung los, die belegt das der Client an irgend jemanden im Internet eine Mail schicken möchte. Wenn der SMTP Server die Durchführung dieser Übertragung erlaubt wird eine Bestätigung an den Client geschickt, in diesem selben Moment fängt auch die eigentliche Arbeitssitzung an. Nun kann die Post verschickt werden.

SMTP ist zwar recht einfach charakterisiert trotzdem waren Mail-Dienste eine recht häufige Quelle für Sicherheitslücken. Oft ist der grund für die häufigen Sicherheitsprobleme die große vielfalt an Konfigurationsmöglichkeiten, da ist der nicht geschulte User doch schon mal schnell überfordert. Generell sind Fehlkonfigurationen oft die Quelle für Sicherheitslücken. Dieses Problem hat sich mittlerweile allerdings mehr auf andere Gebiete konzentriert, da es wo anders mehr "zu holen" gibt.

Mehr Information zum Simple Mail Transfer Protocol finden sie im "RFC 821" (www.rfceditor.org).

2.4 HTTP (Hyper Text Transfer Protocol)
Da HTTP dem User das Surfen im Internet ermöglicht kennt es wohl jeder der diesen Text hier liest. Das "RFC 1945" beschreibt HTTP folgendermaßen:

"ein einfaches und schnelles Protokoll der Anwendungsschicht fur hierarchisches, kollaboratives Hypermedia-Informationssystem. Es ist ein auswählbares, statusloses, objektorientiertes Protokoll, das für viele Aufgaben wie Namen-Server und verteilte Objekt-Management-Systeme durch die Erweiterung seiner Anfragemethoden (Befehle) eingesetzt werden kann. Ein Merkmal von HTTP ist die Wahl der Datendarstellung, was einen Aufbau von Systemen unabhängig von den übertragenen Daten ermöglicht."

HTTP hat das Internet für immer verändert, nicht zuletzt weil es den Massen den Zugang zum Internet ermöglicht hat. Gewisserweise entspricht die Arbeitsweise von HTTP der von Gopher da es beispielweise, wie Gopher auch, auf einem Anfrage/Antwort Schema basiert. Andere Applikationen wie z.b. FTP verlangen das der User stäts eingeloggt bleibt und verbrauchen somit systemresourcen. Protokolle wie HTTP oder Gopher hingegen fordern dies nicht und verbrauchen also nur Systemresourcen wenn Daten gesendet oder empfangen werden. Wenn sie einen Browser wie Mozilla oder Internet Explorere nutzen können sie diesen Prozess während seines Ablaufes beobachten. Für jedes einzelne Datenelement auf einer Website, d.h. Grafiken, Text, usw., wird der Server von ihrem Browser einmal kontaktiert. Er holt sich also erst den Text, dann die Grafiken usw. vom Server. Wenn sie mal unten Links bei ihrem Browser schauen, werden sie eine Statusleiste entdecken. Beobachten sie diese mal wenn sie gerade eine Website laden, sie können dort die Anfrage/Antwort Aktivität, in sehr hoher Geschwindigkeit, verfolgen. HTTP interessiert es nicht welche Art von Daten angefordert werden. Verschiedene Formen von Multimedia können entweder eingebettet oder auch über HTML-basierte Webseiten übermittelt werden- HTTP ist ein extrem einfaches und effektives Protokoll.

Das oben genannte "RFC 1954" wurde durch das "RFC 2068" ersetzt und aktualisiert, wenn sie also mehr über HTTP in Erfahrung bringen möchten empfehle ich das "RFC 2068".

Ich hoffe dieser Text hat ihnen ein gutes Basis Wissen zum Thema TCP/IP vermittelt auf das sie nun gut aufbauen können. Für Fragen und Feedback [EMAIL]astovidatu@security-project.org[/EMAIL]. Bis zum nächsten mal.

__________________
:saarland_1:


17.08.2004 00:04 Opa Friedel ist offline E-Mail an Opa Friedel senden Beiträge von Opa Friedel suchen Nehmen Sie Opa Friedel in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Baerchens Key World » Allgemeines Forum » FAQ`s & Anleitungen, Hilfen für den PC » [FAQ] TCP/IP Einleitung


Forensoftware: Burning Board 2.3.6pl2, entwickelt von WoltLab GmbH