Ports für jeden Dienst
Server-Prozesse lauschen bei
UDP und
TCP auf
bestimmten Portnummern. Per Übereinkunft werden dazu Ports niedriger
Nummern verwendet. Für die Standarddienste sind diese Portnummern in
den RFCs festgeschrieben. Ein
Port im "listen"-Modus ist
gewissermaßen eine halboffene Verbindung. Nur Quell-IP und Quellport
sind bekannt. Der Serverprozeß kann vom Betriebssystem dupliziert
werden, so daß weitere Anfragen auf diesem Port behandelt werden
können.
-
Die Portnummern werden auf dem Host-System
konfiguriert und haben zwei Funktionen:
-
Allgemein verfügbare Dienste werden über
'well known' Ports (--> feste, per
RFC zugeordnete
Portnummer) erreichbar. Sie stehen also für ein Protokoll,
das über die Nummer direkt angesprochen wird
-
oder sie werden beim Verbindungsaufbau
vereinbart und einem Server-Programm zugewiesen
-
Die Portangabe ist nötig, wenn mehrere
Serverprogramme auf dem adressierten Rechner laufen.
-
Die Portnummer steht im
TCP-Header und ist 16
Bit groß. Theoretisch können also bis zu 65535
TCP-Verbindungen
auf einem Rechner mit einer einzigen
IP-Adresse aufgebaut
werden.
-
Portnummern werden oft auch bei der
Konfiguration von Internet-Clients als Parameter gefordert.
-
Die Client-Prozesse verwenden normalerweise
freie Portnummern, die vom lokalen Betriebssystem zugewiesen
werden (Portnummer > 1024).
Die "well known" Portnummern (0 bis 1023), die
weltweit eindeutig adressiert werden müssen, werden durch die
IANA
(Internet Assigned Numbers Authority) vergeben. Einige Beispiele für
TCP-Ports (UDP verwendet eine andere Zuordnung):
Portnummer |
Protokoll |
20 |
FTP (Daten) |
21 |
FTP (Befehle) |
22 |
Secure Shell |
23 |
Telnet |
25 |
SMTP |
53 |
DNS-Server |
70 |
Gopher |
79 |
Finger |
80 |
HTTP (Proxy-Server) |
110 |
POP3 |
119 |
NNTP |
143 |
IMAP |
194 |
IRC |
210 |
WAIS |
256 - 1023 |
UNIX-spezifische Services |
540 |
UUCP |
1024 - 49151 |
Registered Ports |
49152 - 65535 |
Dynamic / Private Ports |
Eine vollständige Portliste erhält man bei
http://www.iana.org/assignments/port-numbers.
IP-Adresse und Portnummer definieren einen
Kommunikationsendpunkt, der in der
TCP/IP-Welt "Socket" genannt
wird. Die Grenze zwischen der Anwendungsschicht und der
Transportschicht ist in den meisten Implementierungen zugleich die
Grenze zwischen dem Betriebssystem und den Anwendungsprogrammen. Im
OSI-Modell ist diese Grenze in etwa die Grenze zwischen den
Schichten 4 und 5. Daher ordnet man
IP meist ungefähr in die
Ebene 3
und
TCP ungefähr in
Ebene 4 des
OSI-Modells ein. Da
TCP/IP jedoch
älter und einfacher als das
OSI-Modell ist, kann diese Einordnung
nicht genau passen.
Port-Scans
Beim Scanning wird versucht, offene Ports eines
Rechners zu ermitteln. Das ist meist auch der erste Schritt eines
Angreifers, der in einem Rechner eindringen will. Deshalb dient ein Portscan auch dazu, die Sicherheit des eigenen Systems zu
überprüfen. Bei den Scanning-Methoden wurden Verfahren entwickelt,
bei denen versucht wird, den Scanvorgang auf dem gescannten Rechern
unentdeckt zu lassen.
-
TCP-Connect-Scan
Bei dieser Methode wird versucht, eine Verbindung zu einem Port
auf dem Zielrechner aufzubauen. Der Scanner läßt einen
vollständigen Dreiwege-Handshake zu, bevor er die Verbindung
wieder unterbricht. Diese Art der Scans ist allerdings sehr
leicht zu entdecken und kann auch leicht mit Hilfe von Firewalls
abgeblockt werden.
-
TCP-SYN-Scan
Diese Methode wird oft als "Half-Open-Scan" bezeichnet. Der
Scanner sendet ein SYN-Packet an den Zielrechner, wie bei einem
ganz normalen Verbindungsaufbau. Wenn der Zielrechner mit einem
RST antwortet, weiß der Scanner, daß dieser Port geschlossen
ist. Antwortet der Zielrechner jedoch mit einem SYN/ACK, handelt
es sich um einem offenen Port. In diesem Falle wird die
Verbindung vom Scanner sofort mit einem RST beendet. Diese Art
des Scannens ist nicht ganz so leicht auf dem Zielrechner zu
entdecken wie der Connect Scan.
-
Stealth FIN-Scan
Stealth Scans sollen vom Zielrechner nicht entdeckt werden.
Allerdings gibt es Programme, die genau solche Scans entdecken.
Beim "Stealth FIN Scan" wird nur ein Packet mit einem FIN-Flag,
ohne begleitendes ACK-Flag gesendet. Diese Art von Paket ist
unzulässig. Wenn der Port offen ist, wird das Paket des Scanners
vom Zielrechner ignoriert. Wenn der Port geschlossen ist,
antwortet der Zielrechner mit einem RST-Paket.
-
Stealth Xmastree-Scan
Bei diesem Scan sind die FIN-, URG-, und PUSH-Flags alle
gemeinsam gesetzt. Auch dieses Paket ist unzulässig. Wenn der
Port offen ist, wird das Paket des Scanners vom Zielrechner
ignoriert. Wenn der Port geschlossen ist, antwortet der
Zielrechner mit einem RST-Paket.
-
Stealth Null-Scan
Bei diesem Scan sind alle Flags auf Null gesetzt. Alles Weitere
wie oben.
-
ACK-Scan
Dieser Scan wird verwendet, um Firewalls zu testen ob sie mit "stateful
inspection" arbeiten (z.B. Firewall 1) oder ob es sich nur um
einfache Packetfilter handelt, die eingehende SYN Packete
verwerfen. Der ACK-Scan sendet ein Packet mit gesetztem ACK-Flag
und zufälliger Sequenznummer an die Ports. Wenn das Paket von
der Firewall durchgelassen wird, sendet der Server ein RST, da
das Paket nicht zuzuordnen ist. In diesem Fall wird der Port als
"ungefiltert" klassifiziert. Wenn die Firewall den Status einer
Verbindung überwacht, wird das Paket ohne eine Antwort vom
Zielrechner abgewiesen oder es wird dem Scanner mit einer
ICMP
Destination unreachable Nachricht geantwortet.
|