|
Jeder PC wird normalerweise durch seine
IP-Adresse weltweit eindeutig bezeichnet. Auf den meisten PC (und Servern) laufen gleichzeitig mehrere Programme. Man benötigt daher ein System, um innerhalb einer IP-Adresse ein bestimmtes Programm oder Fenster zu adressieren. |
Das Port-System bietet virtuelle Sub-Adressen für jede IP-Adresse. Damit kann ein (TCP, UDP) Datenstrom nicht nur den richtigen PC sondern auch das jeweils passende Programm erreichen. |
Netzwerk
|
Zusammenarbeit - Lokal und weltweit |
| OSI-Modell | Standard-Modell für Kommunikation: Ethernet, IP, Port, Router, TCP, .. |
| TCP | Organisation der Daten-Übertragung auf Sockets = IP+Port |
| Internet Protocol | IPv4 und IPv6 |
| Port | Client & Server, Absender & Empfänger |
| Port-Beispiel | Browser und Webserver, HTML und Bilder |
| Router | Vermittlung zwischen Netzwerken - Router & Proxy |
| Firewall | Blockiert unerwünschten Daten-Verkehr |
| Port-Nummern | Registrierte Ports der IANA |
| Port-Scanner | Werkzeug für Netzwerk-TechnikerInnen und Hacker |
| Links |
Ausgewählte
|
Port |
|
| Das IP-Protokoll (IPv4) weist jedem üblichen PC genau eine IP-Adresse zu. Alle Programme des PC müssen das gleicher (Ethernet)-Interface benutzen, um ins lokale Netzwerk (LAN) oder ins Internet zu gelangen. Das Interface erhält eine eindeutige IP-Adresse. Alle Daten-Pakete von und an diesen PC müssen diese eine IP-Adresse verwenden. | In der Praxis laufen meistens mehrere Dienste gleichzeitig über das Netzwerk-Interface. Das Port-Konzept sorgt für eine eindeutige Unterschiedung aller ein- und ausgehenden Daten-Ströme an einen PC. |
Client-PortsPort ist eine ganze Zahl im Bereich dezimal 0..65535 bzw. hexadezimal 0000..FFFF (2 Byte).Ziel-Port
Jedes Programm verfolgt beim Zugriff auf das Netzwerk ein bestimmtes Ziel.
Ein Browser richtet z.B. Anfragen an verschiedene Webserver. Der Standard-Port
für Webserver ist dezimal 80, daher wird das ausgehende Daten-Paket an
die betreffende IP-Adresse (bei Webservern meist an den Domain-Namen) und
dort an Port 80 gerichtet.Sie werden von keinem Browser nach dem Ziel-Port gefragt, weil austoamtisch Port 80 als Standard angenommen wird. |
Absender-Port
Ausgehende Client-Anforderungen erhalten von der
→ TCP- oder
→ UDP-Schicht des
Betriebssystems eine zufällige freie Port-Nummer zugewiesen.
Diese Zahl dient als Kennzeichen der Absender-Software.Wenn danach eingehende Daten-Pakete diese Port-Nummer enthalten, werden sie an das entsprechende Programm weitergegeben. Wenn ein Programm alle gewünschten Daten erhalten hat, kann es den gleichen Port für weitere Anfragen verwenden. Andererseits kann ein Programm beliebig viele verschiedene Ports verwenden, um. z.B. Webseiten und Bilder für verschiedene offene Fenster anzufordern. |
Server-PortsServer-Programme arbeiten im Hintergrund und zeigen kein Bedienungs-Fenster. Sie arbeiten meist nur auf Anfrage und warten ansonsten auf Aufträge.Lauschen
Jeder Server 'lauscht' (listen) an einem genau bestimmten Port,
z.B. ein Webserver auf Port 80. Der Server wird nur dann aktiv,
wenn eine Anfrage an genau diesen Port eintrifft.An einem (Server)-PC können gleichzeitig mehrere Server-Programme laufen, z.B. Dateiserver, Drucker-Server, Webserver, FTP-Server, Mail-Server, Zeit-Server, usw. Da jeder Server auf einem anderen Port lauscht, werden eingehende Aufträge je nach Ziel-Port an das richtige Server-Programm übergeben. |
Antwort
Die typische Antwort eines Webservers ist das Senden einer Webseite
(
→ HTML-Quellcode als Datenstrom). Die Antwort wird an IP-Adresse
und Port des Absenders gesendet.Am Ziel-PC werden die Antwort-Daten wieder an genau jenes Programm übergeben, welches die Anfrage mit dieser Port-Nummer abgesendet hat. Dieses Konzept erfordert, dass die Port-Nummern von Servern festgelegt werden. Die Port-Nummern der Client-PC können aus dem nicht festgelegten Bereich beliebig gewählt werden. |
Port-Beispiel |
||||||||||
HTTP-Anfrage von ihrem Browser(Beispiel für die Verwendung von Ports)► Ihr PC hat Zugang zu einem Netzwerk und verwendet eine eindeutige IP-Adresse, z.B. 38.107.179.211 Sie verwenden einen Browser und haben eine Webseite geöffnet. ► Sie klicken einen Link, z.B. Ihr Browser formuliert daraufhin mit dem HTTP-Protokoll eine Anfrage (GET...) und sendet diese als TCP-Pakete an den gewünschten Webserver. ► An Stelle der IP-Adresse des Webservers wird zunächst der Domain-Name pstrainer.topsoft.at verwendet. Als Ziel-Port wird vom Browser dezimal 80 eingesetzt - der (well-known) Standard-Port aller Webserver. ► Als Absender wird die IP-Adresse ihres PC 38.107.179.211 und ein zufällig freier Port verwendet, z.B. 34620 ► Ihre Anfrage gelangt zum Provider. Dort wird der Domain-Name pstrainer.topsoft.at mit Hilfe eines Name-Servers in eine IP-Adresse übersetzt, z.B. 192.168.255.11 Ihre Anfrage wird dann je nach den Möglichkeiten und der momentanen Auslastung an das Ziel geleitet. ► Am Ziel wird ihre Anfrage vom Server-PC mit der IP-Adresse 192.168.255.11 empfangen. Die TCP-Schicht des Server-PC analysiert den Ziel-Port 80 Dieser Standard-Port bezeichnet das Webserver-Programm, welches ihre Anfrage erhält. |
Antwort vom Webserver► Der Webserver reagiert durch Absenden der entsprechenden Webseite (genauer: des HTML-Textes der Webseite).Ohne besondere Angaben wird meist die Seite index.html gesendet. Als Ziel wird die IP-Adresse ihres PC 38.107.179.211 und der von ihrem Browser angegebene Port 34620 verwendet. ► Die Antwort-Daten ( → HTML-Quelltext der Webseite) werden durch das Internet an ihren PC geleitet, je nach den Möglichkeiten über verschiedene Stationen. ► Am Ziel werden die Daten von ihrem PC mit der IP-Adresse 38.107.179.211 empfangen. Die TCP-Schicht ihres PC analysiert den Ziel-Port. Port 34620 wird von ihrem Browser verwendet, die eintreffenden Daten werden daher an diese Software übergeben. ► Ihr Browser empfängt die Daten, stellt daraus eine Webseite zusammen und zeigt sie am Bildschirm an. |
|||||||||
|
||||||||||
WebseitenIhr Browser wartet auf jede angeforderte Webseite.Wenn die Antwort eintrifft, dann zeigt der Browser die Webseite an. |
Wenn keine Antwort eintrifft, dann zeigt ihr Browser eine Fehlermeldung an. In beiden Fällen kann der gleiche Port erneut verwendet werden - für ihre nächste Anfrage. |
|||||||||
BilderIn den meisten Webseiten sind Bilder oder andere Objekte enthalten. Die Bilder werden nicht als Daten mit der Webseite gesendet. Sie sind im HTML-Quelltext als Verweise in dieser Form enthalten:<img src="bild.jpg" />
Das Attribut src bezeichnet den Datei-Namen des Objekts.Wenn ihr Browser einen derartigen Verweis liest, dann sendet er an den Webserver eine weitere Anforderung Für jedes in einer Webseite enthaltene Bild (oder andere eingebettete Objekte) wird eine eigene Anfrage an den Webserver gesendet. ♦ Werkzeug zur Live-Anzeige von IP-Adresse:Port von Client und Server auf eigenen Webseiten. |
Es ist typisch, dass ein Browser kurz nach dem Empfang einer Webseite mehrere weitere Anforderungen an den Webserver sendet, und zwar je eine für jeden gefundenen Verweis. Jede Anfrage wird mit einem anderen Absender-Port versehen. Zu diesem Zeitpunkt sind mehrere Anfragen zur aktuellen Webseite offen, mit mehreren verschiedenen Absender-Ports. Beim Eintreffen der Bilder erkennt der Browser am Port, um welches Bild es sich handelt und ersetzt den Platzhalter durch das Bild. Falls ein Bild nicht eintrifft, bleibt der Platzhalter auf der Webseite. |
|||||||||
Router und Proxy-Server |
|
|
Ein Router hat die Aufgabe, den gesamten Daten-Verkehr zwischen dem
Lokalen Netzwerk (LAN) und dem Internet zu verwalten. Dabei muss natürlich die Information über die Ports aller Daten-Pakete erhalten bleiben. Dafür wurde eine spezielle Technik - Masquerading - entwickelt: |
MasqueradingDer Router übersetzt IP-Adressen und Ports aller aus dem LAN nach außen laufenden Daten durch seine eigene IP-Adresse und einen zufälligen freien Port.Jede derartige "Übersetzung" wird in einer eigenen Tabelle am Router eingetragen. Von allen ankommenden Daten wird der Port analysiert. Mit Hilfe der Tabelle werden sie an die betreffende IP-Adresse inkl. Port innerhalb des LAN weitergeleitet. ♦ Details zu Masquerading |
Port-Nummern |
|||||||||||
|
Ports sind ganze Zahlen im Bereich dezimal 0..65535 bzw.
hexadezimal 0000..FFFF (2 Byte). Ein Teil der Port-Nummern muss festgelegt werden, um damit bestimmte Dienste (Server-Programme) auf entfernten PC zu bezeichnen. Die Verwaltung der Port-Nummern erfolgt durch die IANA (Internet Assigned Numbers Authority). Die IANA unterscheidet folgende Bereiche:
|
•
Das #-Zeichen bezeichnet Kommentare. • Die Listen sind absichtlich lückenhaft besetzt, d.h. einzelne Ports bleiben vorläufig Unassigned • Manche Dienste verwenden mehrere Ports, z.B. FTP (Befehle und Daten auf getrennten Ports). • Normalerweise werden Port-Nummern für TCP und UDP gleich vergeben. Beide Dienste werden jedoch in den Listen getrennt angeführt. • Server 'lauschen' auf den Well-Known oder Registered Ports auf Anfragen / Aufträge. Client-Software kann beliebige unbesetzte Ports>1023 verwenden. |
||||||||||
|
Linux:
Das Betriebssystem führt eine umfangreiche Liste wichtiger Ports.
Sie finden diese Text-Datei z.B. hier
/etc/services
|
Windows:
Das Betriebssystem führt eine gekürzte Liste wichtiger Ports.
Sie finden diese Text-Datei z.B. hier
C:\Windows\system32\drivers\etc\services
(Öffnen sie die Datei mit notepad.exe
oder wordpad.exe )
|
||||||||||
| Auszug aus einer Port-Liste: | |||||||||||
|
Wechsel-Rahmen:
Typische Port-Liste eines Linux-PC,
Gekürzte IANA Port-Liste
|
Die aktuelle offizielle Port-Liste der IANA finden sie auf der Webseite http://www.iana.org/assignments/port-numbers | ||||||||||
Port-Scanner |
|
|
Port-Scanner sind Programme, die als Diagnose-Werkzeug eingesetzt werden. Damit werden automatisch Anfragen an alle Ports einer oder mehrerer IP-Adressen gestellt. |
Auf diese Weise lässt sich erkennen, auf welchen Ports Server lauschen. Ein gelegentlicher Port-Scan ihres eigenen Servers aus dem Internet ist ein guter Test, um Sicherheits-Lücken zu finden. |
netstatDas Konsolen-Programm netstat erlaubt die Ausgabe aller aktiven Ports, insbesondere jener Ports ihres PC, auf denen ein Dienst (Server-Programm) horcht:Linux:
Hilfe zum Programm und Anwendungs-Beispiel:
# man netstat
# netstat --listening --numeric-ports |
Windows:
Hilfe zum Programm und Anwendungs-Beispiel
C:\> netstat /?
Geduld ! - Auf Windows wird je nach Option ein kompletter Scan mit ziemlich
langen Wartezeiten ausgeführt !C:\> netstat -a C:\> netstat -bn Die Ausgabe-Liste zeigt in der Spalte 'Lokale Adresse' Name oder IP-Adresse ihres PC, danach (mit : getrennt) den Port. Einige Ports werden nicht mit ihrer Nummer sondern mit ihren Namen angeführt. Die Port-Nummern erhalten sie aus der Port-Liste der IANA. |
|
|
Firewall-Software ist meistens für das eigene Netzwerk wesentlich toleranter eingestellt. Daher wird zur Tarnung eines Scans bevorzugt ein anderer PC im angegriffenen LAN (Zombie) benutzt. |
|
Port-Scanner werden umgekehrt auch zur Abwehr von Hackern eingesetzt.
Man findet damit allfällige 'undichte' Stellen im eigenen Netzwerk. Es gibt Internet-Sites, welche auf ausdrückliche Anfrage einen Port-Scan am eigenen PC oder Router durchführen und das Ergebnis mitteilen. |
Aus dem Internet kann man zahlreiche Port-Scanner Programme laden, meist kostenfrei. Die Anwendung gegen fremde PC oder Netzwerke kann rechtliche Konsequenzen nach sich ziehen. |
|
PHP-Entwicklung
PEAR bietet ausgezeichnete PHP-Module, u.a. mit Funktionen für
Netz-Werkzeug, z.B.
Net_Portscan
|
Damit lassen sich Portscan-Funktionen auf eigenen dynamischen Webseiten einsetzen. |
|
|
|
IANA
(Internet Assigned Numbers Authority) -
Port Numbers (en) Elektronik-Kompendium (de): TCP, TCP/IP, Portforwand: Port-Liste nach Software (en) |
Wikipedia: (de)
Port,
Portscanner
|
|
Live Online PortScan:
Nessus (de)Hagel-IT (de) Planet Security (de) Sygate (en) |
Windows PortScanner
PScan
von googlepages
|