next up previous contents index
Next: IP-Multicast Up: Die Internetprotokollfamilie Previous: Kommunikationsendpunkte

Dienste im Internet

  Die im Internet bzw. von Rechnern im Internet angebotenen Dienste sind beliebig - manche sind fast auf allen Rechnern vorhanden (z.B. smtp - Elektronische Post [Pos82] oder telnet(1)), Telnet  andere nur selten (z.B. archie). Was die (meisten) Dienste jedoch gemeinsam haben, ist, daß sie auf definierten Ports Port zu finden sind. Ports sind protokollabhängige Subadressen innerhalb eines Hosts; sie sind z.B. mit Postfächern zu vergleichen, wobei das Postamt als ein Host mit einer oder mehrerer IP-Adressen angesehen wird. Die bekannten Ports  werden, wie viele andere Nummern im Internet von der IANA  zentral vergeben, um so die Eindeutigkeit der Nummern zu garantieren - siehe auch Abschnitt 2.6 auf Seite [*].

Der folgende Ausschnitt von /etc/services  [*] zeigt exemplarisch einige Ports  mit den zugeordneten Diensten:


 
Tabelle: Ein Ausschnitt aus /etc/services 
Name Portnummer Protokoll Aliasname
telnet 23 tcp  
smtp 25 tcp mail
domain 53 tcp nameserver
domain 53 udp nameserver
mcntp 5418 tcp multicast news directory
mcntp 5418 udp multicast news directory


Hier sieht man, daß Portnummern  durchaus doppelt vergeben werden können, da es sich, wie im Fall des domain Dienstes um zwei verschiedene Protokolle handelt. Aus der Tabelle ist zu erkennen, daß auf Port  23 des TCP  Protokolls ein Telnet Telnet Dienst zu erwarten ist, sofern dieser Port  bedient wird. Diese Ports  sind also die Kommunikationsendpunkte auf der anderen Seite einer Kommunikationsverbindung. Ein Serverprozeß hat auch einen Socket  geöffnet und wartet nun mit diesem Socket , bis eine Verbindung zu ihm aufgebaut wird.

Ein bestimmter Dienst ist durch das folgende Tripel repräsentiert:

Dienst = (Host,Port,Protokoll)

Dieses Tripel ist eindeutig und es können keine zwei unterschiedliche Dienste mit dem gleichen Tripel existieren. Den symbolischen Namen für einen Dienst kann man im Normalfall in /etc/services  finden.

Prinzipiell werden Ports  auf Unix(TM)  Rechnern für ausgehende Verbindungen - für das Ziel muß der Zielport angegeben werden - dynamisch, mit niederen Nummern beginnend, vergeben: ein Prozeß, der einen Port  zur Kommunikation benötigt, bekommt den nächsten freien mit der niedrigsten verfügbaren Nummer vom System zugewiesen. Damit aber kein Benutzer dies als Sicherheitsloch ausnutzen kann, indem er sich sehr früh einloggt, oder falls ein alter Port  nicht mehr benötigt wird, diesen wiederbenutzt und einen eigenen Server auf diesen Port  setzt, dürfen Ports  mit einer Nummer [IMAGE ] 1024 nur von root belegt werden; root ist per Definition der Benutzer auf einem Unix  System, der vertrauenswürdig ist[*]. Wäre diese Einschränkung nicht gegeben, könnte nicht mit Sicherheit gesagt werden, welcher Dienst auf welchem Port  zu erwarten ist. Aus diesem Grund sind die Dienste fest den Ports  zugeordnet und wenn ein Server auf Port  n arbeitet, kann zu diesem Port  eine Verbindung aufgebaut werden. Manche Server (wie z.B. X Windows oder Irc) nehmen sich Ports  mit einer hohen Nummer (6000 und 6667), so daß dort die Wahrscheinlichkeit der Portblockierung zum Zeitpunkt des Serverstarts gering ist.


next up previous contents index
Next: IP-Multicast Up: Die Internetprotokollfamilie Previous: Kommunikationsendpunkte
Heiko W.Rupp
12/1/1997