Ports und Firewalls
Was der Agent erreichen muss und warum nirgends eine eingehende Regel nötig ist.
Erforderliche ausgehende Verbindungen
Erlauben Sie diese Verbindungen von jedem Gerät aus, auf dem SXAccess läuft. Eine Regel, die ausgehendes UDP zu jeder Adresse und jedem Port erlaubt, deckt direkte Tunnel und STUN ab.
| Ziel | Port | Zweck |
|---|---|---|
mgmt.sxaccess.com | TCP 443 | Management - Registrierung, Datenstrom der Netzwerkbeschreibung, Aktualisierungen der Zugriffsregeln. In jedem Client fest hinterlegt. |
app.sxaccess.com | TCP 443 | Anmeldung aus Browser, Apps und CLI; das Dashboard; die REST-API. |
pkgs.sxaccess.com | TCP 443 | Installationsdateien und Prüfung auf Updates. |
| Discovery | TCP 443 über TLS; Endpunkt vom Management-Dienst zugewiesen | Versiegelte Aushandlungsnachrichten, während zwei Agenten einen Tunnel aufbauen. |
| Relay | TCP 443 über TLS; Endpunkt vom Management-Dienst zugewiesen | Überträgt den Tunnelverkehr, bis ein direkter Pfad gefunden ist, und immer dann, wenn sich keiner finden lässt. |
| STUN / TURN | Vom Management-Dienst zugewiesen | Ermitteln der öffentlichen Adresse des Geräts; TURN-Weiterleitung nur, wenn eines der beiden Geräte kein SXAccess-Relay hat. |
| Andere Geräte, unter beliebiger Adresse | UDP, beliebiger Port | Direkte Tunnel. Der Port am anderen Ende ist der, den das NAT dieses Geräts zuordnet; er lässt sich daher nicht vorab festlegen. |
sxaccess info -dDer Tunnel-Port
Der CLI-Agent lauscht standardmäßig auf UDP 51820. Ist der Port bereits belegt, wählt er einen anderen freien Port. Die Apps nutzen einen zufälligen UDP-Port. Das betrifft nur das lokale Ende: Das andere Gerät kann jeden Port nutzen, den sein NAT wählt. Beschränken Sie ausgehendes UDP daher nicht auf 51820.
Diesen Port müssen Sie weder öffnen noch weiterleiten. Beide Geräte senden einander gleichzeitig Pakete, und NAT oder Firewall auf jeder Seite lassen die Pakete der Gegenseite als Antworten durch; dieses Hole Punching beschreibt die Seite NAT und Konnektivität. Eine ausgehende Regel, die UDP zu jeder Adresse und jedem Port erlaubt, genügt für einen direkten Tunnel. Filtert eine Firewall zwischen Ihren eigenen Netzen UDP, erlauben Sie es zwischen den Geräten, die direkt miteinander kommunizieren sollen.
Restriktive Umgebungen
Manche Unternehmensnetze blockieren ausgehendes UDP vollständig. Dann kommen keine direkten Tunnel zustande, und jede Verbindung bleibt auf dem Relay; das Relay läuft über TLS auf TCP 443, das Netzwerk funktioniert also weiter, allerdings mit höherer Latenz.
Die Apps vertrauen nur den Zertifizierungsstellen, die sie mitbringen. Ein Proxy, der TLS auf dem Weg zu mgmt.sxaccess.com oder app.sxaccess.com aufbricht, legt sie deshalb lahm. Nehmen Sie beide Hosts von der TLS-Inspektion aus, ebenso die Discovery- und Relay-Endpunkte, die sxaccess info -d auflistet.
sxaccess info -d zeigt, welche Geräte direkt (P2P) und welche über ein Relay (Relayed) verbunden sind. In den Apps zeigt dasselbe die Angabe Path auf der Seite Devices: Sie beginnt mit Direct oder Relayed. So unterscheiden Sie am schnellsten ein Netz mit blockiertem UDP von einem NAT-Problem. Lautet die Kopfzeile Partly connected, erreicht der Agent nur einen der beiden Dienste: den Management-Dienst oder Discovery.
Um einen Host zu prüfen, führen Sie die Befehle unten aus. Jedes curl gibt einen HTTP-Statuscode aus: Jeder Code außer 000 bedeutet, dass der Host geantwortet hat; 000 bedeutet, dass keine Antwort ankam. Der erste Befehl prüft den Management-Dienst, der zweite Anmeldung, Dashboard und REST-API. sxaccess info -d zeigt danach, was der Agent selbst meldet.
curl -sS -o /dev/null -w '%{http_code}\n' https://mgmt.sxaccess.comcurl -sS -o /dev/null -w '%{http_code}\n' https://app.sxaccess.comsxaccess info -d
