Um Ports und Netzwerkprotokolle geht es in der
einhunderteinundvierzigsten Episode des
Anwendungsentwickler-Podcasts. TL;DR Mit ping prüfe ich, ob ein
Ziel im Netzwerk antwortet und Pakete hin und zurück gelangen.
Ports adressieren einzelne Dienste auf einem Server, während
Netzwerkprotokolle festlegen, welche Befehle und Antworten Client
und Server austauschen. Für deine Ausbildung gehören die
verbreiteten Portnummern und die Abläufe von HTTP und SMTP zum
Grundlagenwissen. Wenn du sensible Daten überträgst, brauchst du
verschlüsselte Verbindungen wie HTTPS, weil Inhalte im Klartext
unterwegs mitgelesen werden können. Kapitelmarken [00:00:00]
Einstieg: Ports und Netzwerkprotokolle [00:00:43] Rückblick auf
Routing, private IP-Adressen und NAT [00:01:45] Mit Ping die
Erreichbarkeit prüfen [00:03:14] Fehlende Ping-Antworten und
mögliche Ursachen [00:04:26] DNS und Routing mit Ping
nachvollziehen [00:06:11] Mehrere Dienste unter einer IP-Adresse
[00:07:28] Ports und gebundene Serverprozesse [00:08:48]
Standardports und Well-Known-Ports [00:10:59] Ports für eigene
Anwendungen wählen [00:12:26] Portnummern in der Services-Datei
nachschlagen [00:14:04] Wichtige Protokolle und Ports für IT-Azubis
[00:17:44] Mehrere Dienste auf meinem Server [00:18:27] SSH-Port
ändern und Security by Obscurity [00:21:21] Was ein
Netzwerkprotokoll festlegt [00:25:08] HTTP: GET und Statuscodes
[00:27:00] SMTP mit Telnet nachvollziehen [00:28:30] SMTP-Ablauf
beim Versand einer E-Mail [00:32:05] Warum gemeinsame
Protokollstandards erforderlich sind [00:33:38] Textbasierte
Protokolle und gefälschte Absenderadressen [00:35:29] Passwörter
und Inhalte im Klartext [00:38:34] Sensible Daten über HTTPS
übertragen [00:39:21] Rückblick auf Ports und Protokolle [00:42:14]
Für die Prüfung vertiefen und weiterführende Links [00:43:10]
Feedback und Abschluss der Netzwerkreihe Inhalt Mit dem
Kommandozeilentool ping kann getestet werden, ob die Kommunikation
zum Ziel über das Netzwerk grundsätzlich möglich ist. Wenn ja, kann
man die Adresse dann z.B. auch im Browser aufrufen. Ports Die
grundsätzliche Kommunikation steht nun also, aber woher weiß ein
Server, welchen Dienst er einem Client anbieten soll (z.B. Mail
oder WWW oder eben auf den "Ping" antworten)? Die Lösung sind
Ports. Für jeden bekannten Dienst gibt es einen einzelnen Port, der
einfach an die IP-Adresse bzw. an den DNS-Namen angehängt werden
kann, z.B. google.de:80. Allgemein bekannte Dienste haben
verbindlich festgelegte, so genannte well-known Ports bis 1024.
Beispiele: HTTP 80, SMTP 25, SSH 22 oder Doom 666. Übrigens: ping
benutzt das Protokoll ICMP, das Bestandteil von IP ist und keinen
eigenen Port verwendet. Unter Windows gibt es in der Datei
C:\Windows\System32\drivers\etc\services eine Liste dieser
bekannten Ports. # Copyright (c) 1993-2004 Microsoft Corp. # # This
file contains port numbers for well-known services defined by IANA
# # Format: # # / [aliases...] [#] # echo 7/tcp echo 7/udp discard
9/tcp sink null discard 9/udp sink null systat 11/tcp users #Active
users systat 11/udp users #Active users daytime 13/tcp daytime
13/udp qotd 17/tcp quote #Quote of the day qotd 17/udp quote #Quote
of the day chargen 19/tcp ttytst source #Character generator
chargen 19/udp ttytst source #Character generator ftp-data 20/tcp
#FTP, data ftp 21/tcp #FTP. control ssh 22/tcp #SSH Remote Login
Protocol telnet 23/tcp smtp 25/tcp mail #Simple Mail Transfer
Protocol ... Protokolle Die Kommunikation steht also jetzt, aber
was wird da nun konkret übertragen? Protokoll: Eine Abfolge von
definierten Befehlen an den Server und dessen passenden Antworten.
Leicht verständlich ist das Protokoll SMTP (Simple Mail Transfer
Protocol) zum Versenden von E-Mails. Beispiel: HELO, MAIL FROM,
RCPT TO, DATA, Subject: Test, . Mit Hilfe des
Kommandozeilenwerkzeugs telnet kann man sich gezielt mit einem Port
des Zielservers verbinden und die passenden Befehle zum jeweiligen
Dienst ausführen. SMTP verwendet keinerlei Authentifizierung. Daher
ist Spam so ein Problem. HTTP (Hypertext Transfer Protocol)
verwendet Port 80. Bei HTTP werden andere Befehle verwendet,
wichtig ist insb. das GET, mit dem man Ressourcen abrufen kann
(also insb. Websites). Als Beispiel, wie wichtig dabei die
Verschlüsselung (HTTPS anstatt HTTP) ist, kann man ein kleines
Webformular erstellen, das einen Benutzernamen und ein
"geschütztes" Passwort abfragt. Schneidet man den Netzwerkverkehr
mit, kann man Benutzernamen und Passwort im Klartext mitlesen, auch
wenn im Formular im Passwortfeld nur Sternchen zu sehen sind.
Literaturempfehlungen Im guten alten IT-Handbuch für
Fachinformatiker* werden in Kapitel 4 Netzwerkgrundlagen die
meisten hier genannten Inhalte ausführlich erläutert. In meinem
Buchclub gehe ich auf die Inhalte auch noch einmal im Detail ein. *
Links Permalink zu dieser Podcast-Episode RSS-Feed des Podcasts
Port (Protokoll) Internet Control Message Protocol
Netzwerkprotokoll Simple Mail Transfer Protocol Hypertext Transfer
Protocol Zusammenfassung Mit Ping prüfen, ob dein Ziel antwortet
Wenn ich ein Netzwerkproblem untersuche, beginne ich mit ping.
Hinter dem Befehl steht die IP-Adresse oder der DNS-Name des Ziels.
Eine Antwort zeigt, dass Pakete zum Ziel gelangen und zurückkommen.
Ping arbeitet mit dem ICMP-Protokoll. Bei einem DNS-Namen löst dein
Client zunächst den Namen in eine IP-Adresse auf. Liegt das Ziel
außerhalb des eigenen Netzes, gehen die Pakete über das Gateway
beziehungsweise den Router weiter. Eine erfolgreiche Antwort
bestätigt damit auch, dass die dafür erforderlichen Schritte
funktionieren. Bleibt die Antwort aus, kommen verschiedene Ursachen
infrage: Du hast eine falsche IP-Adresse oder einen falschen Namen
eingegeben. Die Netzwerkkarte ist fehlerhaft konfiguriert. Der
DNS-Name lässt sich nicht auflösen. Eine Firewall blockiert die
Pakete. Der Zielserver beantwortet grundsätzlich keine Pings. Aus
einer fehlenden Antwort allein lässt sich die Ursache daher schwer
bestimmen. Einzelne Dienste über Ports ansprechen Auf meinem Server
laufen mehrere Dienste unter derselben IP-Adresse, darunter ein
Mailserver und ein Webserver. Über Ports kann eine Anfrage dem
passenden Dienst zugeordnet werden. Die jeweiligen Serverprozesse
binden sich dafür an einen Port und warten dort auf Anfragen. Eine
Portnummer lässt sich mit einem Doppelpunkt hinter die IP-Adresse
oder den DNS-Namen schreiben, beispielsweise google.de:80. Ports
sind 16 Bit lang, wodurch sich 65.536 verschiedene Nummern ergeben.
Wenn zwei Serverprozesse denselben Port beanspruchen, entsteht ein
Konflikt. Im beschriebenen Fall kann der zweite Webserver deshalb
nicht starten. Für deine eigene Anwendung müssen Client und Server
auf dieselbe Portnummer eingestellt sein. Standardports kennen und
nachschlagen Für verbreitete Dienste sind feste Portnummern
vereinbart. Dadurch weiß ein Client, welchen Port er standardmäßig
ansprechen soll. Bei HTTP ist das beispielsweise Port 80. Die
ersten 1.024 Ports bilden den Bereich der Well-Known-Ports. Darin
sind zahlreiche Dienste festgelegt, wobei zwischen den vergebenen
Nummern auch Lücken liegen. Für eine eigene Anwendung kannst du
einen Port oberhalb dieses Bereichs wählen, etwa 5000 oder 32000.
Auch oberhalb der Well-Known-Ports gibt es bekannte Dienste mit
üblichen Portnummern. Unter Windows findest du eine Liste in der
Textdatei C:\Windows\System32\drivers\etc\services. Sie liegt im
selben Verzeichnis wie die Hosts-Datei und enthält Dienstnamen,
Portnummern und Kommentare. Diese Ports gehören zum
Grundlagenwissen für dich als IT-Azubi, auch als
Fachinformatiker:in Anwendungsentwicklung: | Port | Protokoll oder
Dienst | Aufgabe | | --- | --- | --- | | 21 | FTP | Dateien
übertragen | | 22 | SSH, Secure Shell | Server administrieren | |
23 | Telnet | Server aus der Ferne verwalten, unverschlüsselt | |
25 | SMTP, Simple Mail Transfer Protocol | E-Mails versenden | | 53
| DNS | Namen in IP-Adressen auflösen | | 80 | HTTP | Websites
abrufen | | 110 | POP3, Post Office Protocol | E-Mails abrufen | |
143 | IMAP, Internet Message Access Protocol | E-Mails auf dem
Server verwalten und abrufen | | 389 | LDAP, Lightweight Directory
Access Protocol | Auf Verzeichnisdienste zugreifen, etwa im Active
Directory | | 443 | HTTPS | HTTP-Inhalte verschlüsselt übertragen |
| 3389 | Remote Desktop | Windows-Systeme aus der Ferne
administrieren | Bei POP3 werden E-Mails im vereinfachten
beschriebenen Ablauf abgeholt und anschließend vom Server entfernt.
Mit IMAP bleiben sie auf dem Server verfügbar, sodass du von
mehreren Clients darauf zugreifen kannst. Als Anekdote gehört Port
666 dazu, den id Software für Doom reservieren ließ. Für die
Prüfung stehen die verbreiteten Dienste im Vordergrund. Ihre Ports
brauchst du auch, wenn du Netzwerksoftware entwickelst oder in
einer Firewall festlegst, welche Verbindungen erlaubt sind. Einen
anderen SSH-Port einstellen Auf meinem Server habe ich SSH auf
einen anderen Port gelegt. Viele automatisierte Angriffe richten
sich zuerst gegen den bekannten Port 22. Wer einen anderen Port
verwendet, muss sowohl den SSH-Server als auch die eigenen Clients
entsprechend konfigurieren. Das Verstecken eines Dienstes heißt
Security by Obscurity. Durch einen Portscan lässt sich der Dienst
weiterhin finden. Der SSH-Server braucht deshalb zusätzliche
Schutzmaßnahmen, etwa verschlüsselte Verbindungen und ein Passwort.
Befehle und Antworten mit Protokollen festlegen Ein
Netzwerkprotokoll beschreibt,...
Kommentare (0)
Melde dich an, um einen Kommentar zu schreiben.