Netzwerke - Was ist ein Port?

Netzwerke - Was ist ein Port?

Immer wieder werden Sie in Zusammenhang mit Sicherheit und Computern den Begriff "Port" hören oder lesen. Um zu verstehen, was ein Port ist und wie er funktioniert, müssen wir wissen, wie sich Computer unterhalten. Wie bereits im Abschnitt "Das TCP/IP-Protokoll" erwähnt, werden Daten in Netzwerken immer in kleine Pakete zerstückelt versendet. Grundlage für die Kommunikation zwischen Computern sind die Protokolle. Protokolle sind im Grunde nichts anderes als Vereinbarungen für die Verständigung, eine Sprache, wenn man so will.

Die Aufgabe des Aufteilens in Pakete und das Versenden der selben übernimmt stets das Betriebssystem, also Windows oder Linux oder welches System auch immer verwendet wird. Die Daten die übertragen werden sollen, werden stets von den Anwendungen geliefert. Damit nun die Datenpakete beim Empfänger ankommen, muß das Betriebssystem die zum Senden bereitstehenden Nutzdaten in Pakete aufteilen und jedem dieser Pakete die Adresse des Empfängersystems sowie die Adresse des sendenden Systems (also seine eigene) hinzufügen. Diese zusätzlichen Daten werden auch Steuerdaten genannt.

Zu vergleichen ist das mit einem Brief. Der Zettel, auf dem die Nachricht steht, entspricht den Nutzdaten. Nun stecken Sie den Brief in einen Umschlag (das Paket) und fügen noch die Steuerdaten hinzu - Empfänger und Absender.
Da aber ein Betriebssystem immer nur Pakete einer gewissen Größe erzeugen kann, müssen die Nutzdaten, wenn sie umfangreicher sind, unterteilt werden. Das ist in etwa so, als würden Sie einen siebenseitigen Brief schreiben aber in jedem Umschlag nur Platz für eine Seite haben. Dann müssen Sie sieben Umschläge füllen und mit Absender und Empfänger beschriften.

Der Empfänger der Briefe wird nun diese öffnen, die einzelnen Seiten in eine sinnvolle Reihenfolge bringen und die Nachricht lesen. Ein Computer wird das ebenfalls tun, den kompletten Brief allerdings nicht lesen, sondern an eine entsprechende Anwendung weiterleiten, die den Brief lesen wird, sprich : die Nutzdaten verarbeitet und daraufhin gegebenenfalls eine sinnvolle Antwort schickt. Diese wird wieder in kleine Pakete zerlegt versendet, mit den Steuerdaten in jedem einzelnen Paket.

Es gibt jetzt nur ein Problem : wenn Sie mit einem Browser eine Webseite aufrufen möchten, wissen Sie, dass Sie einen Browser benutzen. Es wird erwartet, dass auf der anderen Seite der Verbindung ein Webserver darauf wartet, Ihre Anfrage (oder besser die Ihres Browsers) zu empfangen und entsprechend zu beantworten. Wie aber soll der Computer, auf dem das Webserverprogramm läuft, wissen, welche Anwendung die gerade empfangenen Daten verarbeiten kann? Es könnte jede sein, die gerade aktiv läuft.

Kurz und gut : nein, es kann nur eine bestimmte Anwendung sein.

Möchte eine Anwendung nämlich mit der Außenwelt in Verbindung treten, muß sie dies dem Betriebssystem mitteilen. Das Betriebssystem versieht daraufhin alle Datenpakete, die von dieser Anwendung kommen, mit einer Nummer. Dies ist die so genannte Portnummer. Und diese Portnummer wird sowohl für den Empfänger als auch für den Absender vermerkt.

Wenn Sie mit Ihrem Browser eine Webseite aufrufen möchten, wird Ihr Betriebssystem den für diese Anfrage gesendeten Paketen die Empfänger-Portnummer 80 geben. Das bedeutet, dass es auf der Empfängerseite eine Anwendung geben muß, die vom Betriebssystem Daten erhält, welche die Empfängerportnummer 80 tragen. Und diese Anwendung ist die Webserversoftware. Nur wenn die empfangenen Daten die Portnummer 80 tragen, wird der Webserver diese erhalten. Den Port 80 nennt man deswegen auch "für HTTP reserviert". HTTP ist das Übertragungsprotokoll für Webseiten.

Läuft nun dieser Webserver, hat er sich auch beim Betriebssystem angemeldet und diesem mitgeteilt, dass es Daten vom Port 80 haben möchte. Daraufhin wird dieser Port abgehört. Er ist geöffnet.

Somit lassen sich Ports quasi mit Türen vergleichen, vor denen jeweils ein Türsteher Posten bezogen hat. Nur wer die richtige Türnummer auf der Eintrittskarte stehen hat, wird eingelassen. Jeder Computer verfügt übrigens über 65.536 solcher Türen.

Was ist aber nun an offenen Ports so bedenklich?

Ein geöffneter Port bedeutet ja im Endeffekt, dass es eine Anwendung geben muß, die auf diesem Port eingehende Daten erwartet. Ansich nichts Schlimmes. Wenn aber die Anwendung, welche die Daten verarbeiten will, einen Fehler hat und sich bei bestimmten Daten anders verhält als gewünscht, kann das Probleme mit sich bringen.

Unter Windows beispielsweise laufen stets Dienste im Hintergrund. Dabei handelt es sich auch nur um Programme, die bestimmte Aufgaben erledigen. Manche dieser Dienste erwarten auch Daten von außen, um diese zu verarbeiten. Dazu wird ein entsprechender Port geöffnet. In den Betriebssystemen Windows 2000 und XP hatte einer dieser Dienste, der Daten auf dem Port 135 erwartet hat, einen Fehler. Über diesen Fehler konnte sich der Wurm "Blaster" verbreiten. Er enthielt bestimmte Daten, die in dem Dienst eine vom Programmierer nicht gewollte Reaktion hervorriefen.

Ein Dienst ist nun aber nicht viel mehr als ein Programm, ein Stück Software. Und grundsätzlich jede Software besitzt potentiell Fehler. Die logische Konsequenz davon ist, möglichst alle offenen Ports zu schließen. Dies geschieht in der Regel durch beenden der entsprechenden Anwendungen. Die korrekte Funktion des Betriebssystems wird davon nicht wirklich beeinträchtigt, da die meisten der Dienste auf einem Anwendercomputer ohnehin nicht gebraucht werden, dennoch aber standardmäßig aktiviert sind.

Kann man denn dann die Ports nicht auch mit einer Personal Firewall wie ZoneAlarm oder der Norton Firewall schließen?

Die einfache Antwort lautet : nein! Eine Personal Firewall schließt keine Ports, weil Sie die dafür verantwortlichen Anwendungen nicht beenden kann. Alles, was eine Personal Firewall im besten Falle tut, ist Ports zu verbergen, sie quasi vor der Außenwelt zu verstecken. Wenn nun die Personal Firewall, die ja ebenfalls nur ein Programm ist, selbst Fehler besitzt, ist auch diese potentiell angreifbar.