Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

Was fehlt?

Es liegt in der Natur der Sache: Ein Wiki ist niemals fertig. Wir geben uns große Mühe, mit der Entwicklung Schritt zu halten; lassen Supportanfragen direkt in neue Artikel einfließen … aber auch wir sind nicht perfekt. Wenn du hier nicht fündig wirst: Nicht schmollen - Bescheid sagen! Unter hallo@uberspace.de steht dir unser Team gerne bereit. Hand drauf!

system:ports

Ports

Bis auf eine Hand voll geöffnete Ports (die üblichen Verdächtigen wie 22, 25, 80, 110, …) sind unsere Systeme nach draußen erst mal dicht. Du möchtest eine Applikation nutzen, die einen oder mehrere eigene Ports benötigt? Kein Problem, wenn du dich an ein paar Spielregeln hältst und den Port wie unten beschrieben in der Firewall öffnest.

User-Bereich

Bitte nutze ausschließlich Ports zwischen 61000 und 65535!

Dies dient in erster Linie der Vermeidung von Kollisionen, da viele Applikationen beliebte Default-Ports wie 3000, 8000, 8080, 5000, 9000 … verwenden und es hier insofern ein großes Risiko gibt, dass andere User ins Blaue hinein den gleichen Port beanspruchen. „Ungewöhnlichere“ Portnummern sind potentiell besser, dementsprechend also auch nicht unbedingt Ports wie 65432, 63036, etc.

Die IANA empfiehlt nur Ports zwischen 49152 und 65535 zu vergeben, da sie niedrigere Ports für die feste Vergabe vorsieht. Diese sogenannten „ephemeral ports“ werden daher in erster Linie als ausgehende Ports verwendet wenn Programme Verbindungen nach außen aufbauen, aber sie sind eben auch für die Vergabe an Programme vorgesehen, die sich eben an nicht-Standard-Ports binden und dort auf eingehende Verbindungen lauschen. Linux weicht von dieser Empfehlung ab und verwendet als „ephemeral ports“ die Ports von 32768 bis 61000. Über die Gründe kann man lange diskutieren oder nicht, wir sparen uns die Zeit und nutzen diesen Umstand aus, indem wir nur Ports zwischen 61000 und 65535 vergeben, so sind direkt Konflikte mit Programmen die ausgehende Verbindungen aufbauen ausgeschlossen.

Standard-Ports

Bitte belege keine standardisierten Ports!

Standardisierte Ports sind jene, die in /etc/services aufgeführt werden oder unabhängig davon in der Praxis häufig verwendet verwendet werden, wie z.B. die Ports 10011 und 30033 für Teamspeak.

Grund dafür sind auch hier zum einen ein hohes Kollisionsrisiko; zum anderen ist uns aber auch wichtig, den Eindruck nach außen zu vermeiden, dass es sich bei diesen Diensten um offiziell von Uberspace.de betriebene Dienste handelt. Last but not least möchten wir uns in einigen Fällen standardisierte Ports auch explit für eine eventuelle spätere offizielle Nutzung durch uns (z.B. für zentrale XMPP-Server pro Host) freihalten.

Das betrifft insofern insbesondere (aber nicht ausschließlich) die folgenden Ports, die im Support besonders häufig nachgefragt werden:

  • 3000/tcp (Default von Rails, Dancer, Catalyst, Mojolicious, …)
  • 5222/tcp (XMPP)
  • 5223/tcp (XMPP)
  • 5269/tcp (XMPP)
  • 6667/tcp (IRC)
  • 8080/tcp (div. Proxyserver)
  • 9987/udp (Teamspeak)
  • 10011/tcp (Teamspeak)
  • 30033/tcp (Teamspeak)
  • 64738/tcp+udp (Mumble)

Kollisionen

Bitte prüfe vor der Konfiguration, ob der Port noch frei ist!

Du kannst einfach nachschauen, ob der von dir gewünschte Port noch frei ist. Das geht z.B. über netstat -tulpen | grep PORTNUMMER. Wenn dort keine Rückmeldung kommt, ist der Port (zumindest zum Zeitpunkt der Überprüfung) nicht in Benutzung.

Proxy-Anbindung

Wenn dein Port für einen Web-Dienst ist, empfehlen wir eine Anbindung über Apache als Proxy.

Viele Dienste wie z.B. Ghost, etherpad-lite und node.js im Allgemeinen lauschen auf einem Port, der erst mal nicht von draußen erreichbar ist. Über einen RewriteRule-Eintrag in der .htaccess kann man diesen Dienst über unseren Webserver nach draußen tunneln.

Firewall

Der Port ist erstmal nur lokal erreichbar. Also für dich und die anderen User auf deinem System; Zugriffe von außen werden erst einmal von der Firewall blockiert. Du kannst deine geöffneten Ports selbst verwalten. Das geht per uberspace-add-port, uberspace-del-port und uberspace-list-ports. Alle Skripte geben mit --help Instruktionen, wie sie bedient werden möchten.

Hier mal ein Beispiel an Hand eines TCP-Ports:

[wiebke@amnesia ~]$ uberspace-add-port -p tcp --firewall
🚀  All good! Opened tcp port 61032.
[wiebke@amnesia ~]$ uberspace-list-ports --open
tcp 61032
[wiebke@amnesia ~]$ uberspace-del-port -p tcp -n 61032 --firewall
closed tcp port 61032.

Bei mehr als 10 Ports pro User und Protokoll ist erst mal Schluss und wenn es wirklich mehr sein muss, solltest du uns eine Mail an hallo@uberspace.de schreiben.

Tunnel

Wenn du als einziger von außen auf den Port zugreifen sollst, empfehlen wir dir einen SSH-Tunnel.

In vielen Fällen ist ein nach draußen erreichbarer Port gar nicht nötig, nämlich dann, wenn ausschließlich du selbst auf den betreffenden Dienst zugreifen willst - zum Beispiel, wenn du einen ZNC o.ä. auf deinem Uberspace laufen lassen willst. In diesem Fall ist es sinnvoll, sich nur lokal an einen entsprechenden Port zu binden und jenen dann über einen SSH-Tunnel anzusprechen.

Damit schlägst du gleich zwei Fliegen mit einer Klappe: Auf der einen Seite ist die komplette Verbindung zwischen deinem Rechner und deinem Serverdienst verschlüsselt, ohne dass du dazu innerhalb der Applikation etwas konfigurieren müsstest; zum anderen erhöhst du die Sicherheit, weil du deinen Serverdienst nicht ins öffentliche Netz exponierst - immerhin kommt es auch durchaus vor, dass Serverdienste auch remote ausnutzbare Exploits enthalten.

*nix

Linux, BSD, OS X und so weiter. Du wirst schon wissen, wenn du hier weiterlesen musst.

Beispiel aus der Praxis: ssh peterchen@canis.uberspace.de -L 62451:127.0.0.1:62452 tunnelt einen Dienst, der auf dem Uberspace von peterchen auf Port 62452 läuft an deinen lokalen Rechner durch und macht ihn über localhost:62451 erreichbar.

man ssh auf der Shell hilft bei Fragen gerne weiter.

Windows

Benutzt du Windows? Dann ist vermutlich PuTTY der SSH-Client deiner Wahl (siehe hierzu auch unseren Abschnitt zu SSH unter Windows).

Auch mit PuTTY kannst du einfach einen Tunnel aufbauen, bleiben wir mal bei dem Beispiel von oben:

  1. Gib im Willkommensfenster wie gewohnt unter „Host Name (or IP address)“ den Hostnamen des Servers ein, auf dem dein Uberspace liegt, z. B. canis.uberspace.de
  2. Wähle links im Baum-Menü den Punkt „Connection“ > „SSH“ > „Tunnels“
  3. Unter „Add new forwarded port:“ gibst du nun ein:
    • Source port: 62451
    • Destination: 127.0.0.1:62452
    • (o) Local ( ) Remote
  4. Klicke auf „Add“, um den Tunnel hinzuzufügen
  5. Wechsele links im Baum-Menü wieder den ersten Punkt „Session“
  6. Gib der Session unter „Saved Session“ einen Namen, z.B. „Uberspace mit Portweiterleitung“, und klick auf „Save“

Der letzte Schritt ist natürlich optional, bietet sich aber an, wenn du die Tunnelkonfiguration nicht jedes Mal von Neuem vornehmen möchtest.

system/ports.txt · Zuletzt geändert: 2016/07/27 23:03 von uber