Direkt zum Inhalt

Cookie-Einstellungen

Wählen Sie, welche Arten von Cookies Sie erlauben. Sie können Ihre Auswahl jederzeit über Cookie-Einstellungen unten auf jeder Seite ändern. Datenschutzerklärung

Notwendig

Immer aktiv

Nötig zum Einloggen, für Ihren Warenkorb und um Ihre Auswahl zu speichern. Diese sind immer aktiv.

Welche Cookies?
  • weboke_sessie, weboke_klant, weboke_remember: Ihre Sitzung und eingeloggt bleiben
  • weboke_basket: Ihr Warenkorb
  • wkBtwIncl: Preise mit oder ohne MwSt. anzeigen
  • wok_cookies: Ihre Cookie-Auswahl, 12 Monate

Misst, welche Anzeige zu einem Besuch oder einer Bestellung führt, damit wir nicht für Anzeigen zahlen, die nichts bringen.

Welche Cookies?
  • Google Ads über Google Tag Manager (_gcl_au, _gcl_aw), bis zu 90 Tage
  • OpenAI Ads, Anzeigen in ChatGPT
  • wok_aff: über welchen Partner Sie zu uns kamen (Partnerprogramm), 60 Tage

4,6

Land und Sprache

Jedes Land hat seine eigene Website, mit Preisen und MwSt. dieses Landes.

Anzeigen

Welche Dienste lauschen auf Ihrem VPS, und was ist von außen erreichbar?

Jedes Programm, das Verbindungen annimmt, lauscht auf einem Port: SSH auf 22, ein Webserver auf 80 und 443, MariaDB auf 3306. Jeder Port, der von außen erreichbar ist, ist eine Tür zu Ihrem Server. Eine Website benötigt von außen meist nur 22, 80 und 443. Hier erfahren Sie, wie Sie sehen, was lauscht und auf welcher Adresse, und wie Sie prüfen, was der Rest des Internets sieht.

Prüfen, was lauscht

Führen Sie auf Ihrem VPS Folgendes aus:

sudo ss -tulpn

Die Optionen bedeuten: TCP (-t), UDP (-u), nur lauschende Sockets (-l), welches Programm (-p) und Nummern statt Namen (-n). Ein Beispiel:

tcp LISTEN 0.0.0.0:22       users:(("sshd",...))
tcp LISTEN 0.0.0.0:443      users:(("nginx",...))
tcp LISTEN 127.0.0.1:3306   users:(("mariadbd",...))
tcp LISTEN 0.0.0.0:6379     users:(("redis-server",...))
tcp LISTEN [::]:22          users:(("sshd",...))

Wichtig ist die Spalte Local Address, also die Adresse, auf der das Programm lauscht:

AdresseBedeutung
0.0.0.0Alle IPv4-Adressen, also auch Ihre öffentliche Adresse: von außen erreichbar, sofern keine Firewall dies blockiert
[::]Alle IPv6-Adressen: dasselbe für IPv6
127.0.0.1 oder [::1]Nur der Server selbst (Loopback): von außen nie erreichbar
127.0.0.53 oder 127.0.0.54Ebenfalls Loopback: der lokale DNS-Helfer von systemd-resolved

Im Beispiel ist MariaDB in Ordnung: Nur Programme auf dem Server selbst können darauf zugreifen. Redis lauscht auf allen Adressen, und genau das ist der Fehler, um den es hier geht.

Im Dienst selbst abschotten

Eine Datenbank, ein Cache oder eine Verwaltungsoberfläche sollte fast nie von außen erreichbar sein. Der beste erste Schritt ist, dass der Dienst nur auf Loopback lauscht. Unter Debian und Ubuntu:

ProgrammEinstellungDatei
MariaDB oder MySQLbind-address = 127.0.0.1/etc/mysql/mariadb.conf.d/50-server.cnf
PostgreSQLlisten_addresses = 'localhost'/etc/postgresql/<Version>/main/postgresql.conf
Redisbind 127.0.0.1 -::1 und protected-mode yes/etc/redis/redis.conf

Starten Sie danach den Dienst neu (siehe Dienste auf Ihrem VPS mit systemctl verwalten) und prüfen Sie erneut mit ss -tulpn. Möchten Sie selbst von Ihrem Laptop aus auf die Datenbank zugreifen, verwenden Sie statt eines offenen Ports einen SSH-Tunnel, siehe Eine SSH-Config: mit einem kurzen Namen anmelden.

Die Firewall als zweite Schicht

Eine Firewall blockiert, was versehentlich doch auf allen Adressen lauscht. Wie Sie ufw einrichten, lesen Sie in Eine Firewall mit ufw (oder nftables). Verlassen Sie sich nicht auf eine einzige Schicht: Eine Firewall kann ausgeschaltet sein oder eine Regel zu großzügig.

Ports, die Sie mit Docker veröffentlichen (ports:), umgehen ufw. Eine Datenbank mit "3306:3306" ist dann von außen erreichbar, auch wenn ufw meldet, dass der Port geschlossen ist. Setzen Sie 127.0.0.1: davor oder veröffentlichen Sie den Port nicht. Siehe Docker und die Firewall: Ports sicher veröffentlichen.

Von außen prüfen

ss zeigt, was auf dem Server lauscht, aber nicht, was Ihre Firewall durchlässt. Die eigentliche Prüfung führen Sie von einem anderen Computer aus durch, nicht vom Server selbst. Mit nc (netcat) unter Mac oder Linux:

nc -vz -w 3 203.0.113.10 6379
nc -6 -vz -w 3 2001:db8::10 6379

Unter Windows erledigt PowerShell dasselbe mit Test-NetConnection 203.0.113.10 -Port 6379. Tragen Sie Ihre eigene IPv4- und IPv6-Adresse ein; diese finden Sie in der VPS-Übersicht. Das Ergebnis lesen Sie so:

  • Offen (succeeded): Es lauscht etwas und ist von außen erreichbar.
  • Geschlossen (Connection refused): Es lauscht nichts, oder die Firewall lehnt aktiv ab.
  • Gefiltert (Time-out): Eine Firewall verwirft den Verkehr stillschweigend.

Für eine Datenbank sind geschlossen und gefiltert beide gut. Testen Sie auch IPv6: Ein häufiger Fehler ist eine Firewall mit nur IPv4-Regeln, während der Dienst auch auf [::] lauscht. Ein Portscanner wie nmap prüft mehrere Ports gleichzeitig; verwenden Sie einen solchen Scanner nur auf Ihrem eigenen Server.

Ihr Server wird ab der ersten Minute gescannt, auch auf Ports von Datenbanken und Suchclustern. Läuft ein Dienst, den Sie nicht kennen, finden Sie heraus, was es ist, und entfernen Sie ihn, wenn Sie ihn nicht benötigen. Was nicht läuft, kann auch kein Leck verursachen.

Ihr VPS ist vollständig selbstverwaltet: Welche Dienste lauschen und wie Ihre Firewall eingestellt ist, regeln Sie selbst. Wir helfen beim WebOké-Teil, etwa bei der VPS-Übersicht, dem Netzwerk und Snapshots.

Mehr erfahren? Besuchen Sie den kostenlosen Kurs VPS und Linux-Serververwaltung, Lektion 5.1 Ports und lauschende Dienste oder Lektion 5.2 Eine Firewall mit ufw und nftables.

War dieser Artikel hilfreich?

← Zurück zu VPS-Hosting

Einen Moment bitte…

Richten Sie Ihre Domains ein

Legen Sie für jede Domain die Nameserver, die Verknüpfung mit Ihrem Hosting und den künftigen Inhaber fest.

Ihre Domains werden geladen…