SXAccessSXAccessDoku
Dashboard öffnen

Internet-Gateways

Den gesamten Internetverkehr ausgewählter Geräte über eine Linux-Maschine Ihrer Organisation leiten, mit einer Route nach 0.0.0.0/0.

Eine Schritt-für-Schritt-Anleitung, von der ersten Gruppe bis zum Smartphone, dessen Verkehr von der Adresse des Gateways ausgeht, finden Sie unter Internetverkehr über ein eigenes Gateway.

Ein Internet-Gateway ist eine Route nach 0.0.0.0/0. Die Maschine, über die sie läuft, schickt den Internetverkehr anderer Geräte stellvertretend für sie ins Internet. Dieser Verkehr geht also von der öffentlichen Adresse des Gateways aus statt von dort, wo sich die Person gerade befindet.

Zwei Gründe sprechen dafür: ein Dienst, der nur eine feste Quelladresse akzeptiert, und eine Umgebung, in der der gesamte ausgehende Verkehr einen einzigen Kontrollpunkt passieren muss. Brauchen nur zwei oder drei Dienste eine feste Adresse, ist Split Tunneling das bessere Werkzeug.

Der Reiter „Internet gateways“ mit einem aufgeklappten Gateway: zwei Routing-Geräte, jeweils mit Metrik 9999, eingeschaltetem Schalter „Active“, der Gruppe, für die es gilt, und ohne Access Groups.
Ein Gateway auf zwei Maschinen: Fällt eine aus, übernimmt die andere. Hier haben beide dieselbe Metrik und keine Access Groups. Geben Sie der bevorzugten Maschine die niedrigere Metrik und beiden dieselben Access Groups, wie unten beschrieben.

Was ein Gateway braucht

  • Eine Linux-Maschine mit dem CLI-Agenten. Das Dashboard bietet jedes Gerät als Gateway an, doch nur der Agent unter Linux schaltet die IP-Weiterleitung ein, auf die ein Gateway angewiesen ist. Auf jedem anderen System bleibt sie aus, und das Gateway leitet nichts weiter. Nehmen Sie eine VM oder einen Server mit fester öffentlicher IPv4-Adresse, dimensioniert für den Verkehr aller, die das Gateway nutzen werden (siehe Dimensionierung und Redundanz). Die Firewall oder Security Group der Maschine muss ausgehenden Verkehr ins Internet zulassen. --block-lan-access deckt nur die Subnetze der eigenen Netzwerkschnittstellen des Gateways ab; Wo das Gateway laufen sollte beschreibt, wie es von allem anderen fernbleibt.
  • Zwei Gruppen. Eine für die Geräte, deren Internetverkehr über das Gateway laufen soll, und eine, die die Gateway-Maschine enthält. In den Beispielen dieser Seite heißen sie gateway-pilot und internet-gateway; siehe Gruppen.
  • Die passende Rolle. Mitglieder mit der Rolle Owner, Admin oder Network Admin können Internet-Gateways anlegen, ändern und löschen und die nötige Zugriffsregel schreiben. Für die Registrierung der Gateway-Maschine brauchen Sie einen Registrierungsschlüssel, den nur ein Owner oder Admin anlegen kann; siehe Rollen und Berechtigungen.

Wo das Gateway laufen sollte

--block-lan-access hält die Geräte, die das Gateway nutzen, aus den Subnetzen der eigenen Netzwerkschnittstellen des Gateways heraus, und mehr nicht. Andere Subnetze der VPC, gepeerte Netze, Netze hinter einem VPN und Link-Local-Adressen wie die Metadatenadresse 169.254.169.254 bleiben über das Gateway erreichbar. Vergibt die Cloud der Schnittstelle eine /32-Adresse, wie Google Cloud, schützt die Option keine andere Maschine.

Betreiben Sie das Gateway deshalb dort, wo es nichts Privates erreicht: in einer eigenen VPC ohne Peering, VPN oder Direct Connect zu Ihren anderen Netzen. Im eigenen Haus gehört es in ein VLAN, dessen Router Ihre anderen Netze sperrt.

Geben Sie der VM keine Cloud-Identität: keine IAM-Rolle und kein Instanzprofil, kein Dienstkonto der Cloud, keine Managed Identity. Legen Sie keine Geheimnisse in ihre User Data. Dann enthalten ihre Metadaten nichts, was sich zu stehlen lohnt.

Verlangen Sie auf AWS außerdem IMDSv2 mit einem Hop-Limit von 1: Actions › Instance settings › Modify instance metadata options oder aws ec2 modify-instance-metadata-options --instance-id <id> --http-tokens required --http-put-response-hop-limit 1.

Ein Internet-Gateway einrichten

  1. 1

    Die Gateway-Maschine registrieren

    Legen Sie unter Access → Enrollment keys → Create enrollment key einen Registrierungsschlüssel an. Tragen Sie unter Auto-assigned groups die Gruppe internet-gateway ein, und schließen Sie mit Create enrollment key ab. Installieren Sie dann den CLI-Agenten auf der Linux-Maschine (Unter Linux installieren), und starten Sie ihn als root mit dem Schlüssel, den er wie im Befehl unten aus einer Datei liest. Schritt 3 der Anleitung enthält einen Block, der all das in einem Durchgang erledigt und den Schlüssel aus der Shell-Historie heraushält.

    --block-lan-access deckt nur die Subnetze der eigenen Netzwerkschnittstellen des Gateways ab; Wo das Gateway laufen sollte beschreibt, wie es von allem anderen fernbleibt.

    Die IP-Weiterleitung müssen Sie nicht selbst einschalten: Der Agent setzt net.ipv4.ip_forward=1, sobald die Maschine eine Route bereitstellt.

    Öffnen Sie die Maschine unter Devices, und notieren Sie ihre Public IP: die Adresse, von der der Verkehr der anderen Geräte ausgehen wird.

    shell
    sxaccess start --enrollment-key-file /run/secrets/sxaccess-key --hostname gateway-fra1 --block-lan-access
  2. 2

    Das Gateway anlegen

    Networks → Internet gateways → Add Internet gateway öffnet ein Panel mit vier Ansichten:

    • Route: Wählen Sie im Reiter Routing Device die Linux-Maschine aus, dann Continue. Im Reiter Device group wählen Sie stattdessen eine Gruppe, deren Maschinen alle das Gateway bereitstellen (siehe Dimensionierung und Redundanz).
    • Groups: Applies to ist die Gruppe, deren Geräte die Standardroute erhalten, hier gateway-pilot; niemals All. Access Groups (optional) ist die Gruppe mit der Gateway-Maschine, hier internet-gateway. Continue bleibt ausgegraut, bis Applies to eine Gruppe enthält. Diese Ansicht hat Cancel, aber kein Back: Für eine andere Maschine brechen Sie ab und beginnen neu.
    • Name: Network Identifier ist mit Internet Gateway vorbelegt und fasst bis zu 40 Zeichen. Geräte nutzen ihn als ID des Gateways in sxaccess reach; ein kurzer Name ohne Leerzeichen wie internet-fra1 lässt sich daher leichter tippen. Description (optional) ist eine Notiz für andere Administratoren. Dann Continue.
    • Settings: Lassen Sie Enable Route eingeschaltet. Metric (1 bis 9999, Standard 9999) spielt erst eine Rolle, wenn eine zweite Maschine das Gateway bereitstellt; die niedrigere Metrik gewinnt. Einen Masquerade-Schalter gibt es nicht: Ein Gateway verwendet immer Masquerade, weil der Verkehr von seiner eigenen Adresse ausgehen muss. Add Internet Gateway legt es an.
  3. 3

    Die Zugriffsregel speichern

    Ein Gerät erhält das Gateway erst, wenn eine Zugriffsregel es mit der Gateway-Maschine verbindet. Sind Access Groups gesetzt, leitet das Gateway außerdem nur Verkehr von Geräten weiter, denen eine Zugriffsregel den Zugang zu einer seiner Access Groups erlaubt. Eine einzige Regel leistet beides: Quelle gateway-pilot, Ziel internet-gateway, One-way, any protocol.

    Legen Sie das Gateway unter Networks → Internet gateways mit Access Groups an, öffnet das Dashboard diese Regel bereits ausgefüllt, sobald Sie Add Internet Gateway wählen. Das Panel trägt den Titel Edit access rule, doch die Regel existiert erst, wenn Sie Save access rule wählen.

    Behalten Sie any protocol bei: Das Gateway leitet nur weiter, was die Regel erlaubt; eine engere Regel schneidet also den übrigen Internetverkehr dieser Geräte ab. Die Regel lässt die Geräte außerdem die Gateway-Maschine selbst auf jedem Port erreichen. Alles, was auf der Maschine lauscht, auch SSH, wird für diese Geräte erreichbar; beschränken Sie solche Dienste auf das Nötigste.

    Es öffnet sich keine Regel, wenn Sie bei einem Gerät beginnen (siehe unten), wenn Access Groups leer bleibt oder wenn Sie das Panel schließen. Legen Sie die Regel dann unter Access → Access rules → Create access rule an, und schließen Sie mit Create access rule ab. Ohne Access Groups muss trotzdem eine Regel die Geräte mit der Gateway-Maschine verbinden. Das Gateway leitet dann alles weiter, was sie senden: ins Internet und zu allem anderen, was es erreicht.

Vom Gerät aus beginnen

Dasselbe Panel lässt sich auch direkt bei der Maschine öffnen:

  • Unter Devices im Zeilenmenü des Geräts: Set Up Internet Gateway, oder Add Internet Gateway, wenn das Gerät bereits ein Gateway bereitstellt.
  • Auf der Seite des Geräts im Reiter Routes: Make this an Internet gateway; die Schaltfläche heißt Add Internet gateway, sobald das Gerät bereits eines bereitstellt.

Das Panel hat dann drei Ansichten, Groups, Name und Settings, weil die Maschine schon feststeht. Network Identifier ist mit Internet Gateway und dem Gerätenamen in Klammern vorbelegt. Ab einem Gerätenamen von 22 Zeichen sind das mehr als 40 Zeichen, und Continue bleibt ausgegraut, bis Sie den Namen kürzen. Danach öffnet sich keine Zugriffsregel: Legen Sie sie unter Access → Access rules → Create access rule selbst an.

Prüfen, wo der Verkehr austritt

Prüfen Sie auf einem Gerät aus der Gruppe unter Applies to, und zwar aus einem anderen Netz als dem des Gateways. Ein Gerät, das die Internetverbindung des Gateways teilt, hat ohnehin dieselbe öffentliche Adresse, und der Test belegt nichts.

  • Die Adresse: Jede Website, die Ihre öffentliche Adresse anzeigt, sollte jetzt die Public IP der Gateway-Maschine zeigen, wie sie auf deren Seite unter Devices steht.
  • Mit dem CLI-Agenten: sxaccess reach list führt das Gateway unter seinem Network Identifier mit network: 0.0.0.0/0 und state: Selected auf. In sxaccess info -d zeigt der Eintrag der Gateway-Maschine Reaches: 0.0.0.0/0, und seine Werte unter Transferred wachsen, während Sie surfen.
  • Auf dem Smartphone: Die Zeile des Gateways unter Resources ist eingeschaltet; siehe Ein Internet-Gateway nutzen.
  • Im Dashboard: Unter Devices steht neben dem Namen der Gateway-Maschine ein Wegweiser-Symbol. Wenn Sie mit der Maus darauf zeigen, erscheint ein Hinweis, der mit This device is an internet gateway. beginnt. Owner und Admins sehen das Symbol bei Maschinen, die als Routing Device gewählt sind.
  • Die Gegenprobe: Ein Gerät außerhalb der Gruppe unter Applies to behält seine eigene öffentliche Adresse, und sxaccess reach list zeigt dort kein 0.0.0.0/0.
shell - auf einem Gerät aus der Gruppe unter Applies to
sxaccess reach listsxaccess info -d

Welche Geräte es nutzen

  • Der CLI-Agent (Linux und macOS) nutzt ein Gateway, sobald es ankommt. Um ein Gerät herauszunehmen, entfernen Sie das Gateway über seinen Network Identifier, mit dem ersten Befehl unten. Der zweite nimmt es wieder auf; dank -a bleiben die übrigen Netze ausgewählt. Ohne -a ersetzt sxaccess reach add die Auswahl (siehe Was Geräte mit einer Route tun). Eine ID mit Leerzeichen gehört in Anführungszeichen, etwa der Standardname "Internet Gateway".
  • iOS und Android führen das Gateway unter Resources auf, von Anfang an eingeschaltet. Beim erneuten Einschalten fragt die App nach einer Bestätigung, und Select all schaltet nie ein Gateway ein. iOS erlaubt mehrere Gateways gleichzeitig, Android nur eines, und Android setzt voraus, dass „Privates DNS“ ausgeschaltet ist; siehe Ein Internet-Gateway nutzen.
  • Die Apps für macOS und Windows führen das Gateway unter Resources auf, leiten aber noch keinen Verkehr darüber, auch wenn sein Schalter eingeschaltet erscheint. Ihr Internetverkehr geht weiter über die lokale Verbindung hinaus. Brauchen diese Geräte für einige Dienste eine feste Adresse, nutzen Sie Split Tunneling.

Auf jedem Client läuft nur IPv4-Internetverkehr über ein Gateway. IPv6-Internetverkehr funktioniert auf einem Gerät nicht, solange es ein Gateway nutzt.

shell - dieses Gerät aus dem Gateway nehmen
sxaccess reach remove internet-fra1
shell - wieder aufnehmen, die übrigen Netze behalten
sxaccess reach add -a internet-fra1

Dimensionierung und Redundanz

Ein Routing-Gerät leitet gelegentlich administrativen Verkehr weiter, ein Gateway dagegen alles. Beobachten Sie Netzwerkdurchsatz und CPU des Hosts: Eine kleine VM mit 100-Mbit-Anbindung ist ausgelastet, sobald zehn Personen in Videokonferenzen sitzen.

Für Redundanz registrieren Sie eine zweite Linux-Maschine auf dieselbe Weise, mit einem eigenen Schlüssel, der internet-gateway zuweist, und mit --block-lan-access. Wählen Sie dann in der Spalte Failover des Gateways Add Device. Das Panel Add routing device fragt nach dem Routing Device und, nur für diese Maschine, nach Applies to und Access Groups (optional). Wählen Sie dieselben Gruppen wie bei der ersten Maschine: Weichen sie ab, ändert ein Failover, welche Geräte das Gateway erhalten und was es durchlässt. Add Route speichert den Eintrag.

Die neue Maschine beginnt immer mit der Metrik 9999, die auch die erste standardmäßig hat; keine wird also bevorzugt. Um eine zu bevorzugen, klicken Sie auf die Zeile des Gateways, damit sie aufklappt, und wählen im Zeilenmenü dieser Maschine Edit. Setzen Sie im Panel Update internet-fra1 im Reiter Settings die Metric, und wählen Sie Save Changes. Geben Sie zum Beispiel gateway-fra1 die Metrik 100 und gateway-fra2 die Metrik 200: Die niedrigere gewinnt.

Antwortet die bevorzugte Maschine nicht mehr, wechseln die Geräte zur anderen. Offene Verbindungen brechen dabei ab, denn eine neue Ausgangsadresse ist keine nahtlose Übergabe. Wie jedes Gerät seine Wahl trifft, beschreibt der Abschnitt Redundanz.

Eine Device group in der Ansicht Route funktioniert auch: Jede Maschine der Gruppe stellt das Gateway bereit, mit einer gemeinsamen Metrik. Die Spalte Failover zeigt dann Go to Devices statt Add Device, denn eine weitere Maschine kommt hinzu, indem Sie sie in diese Gruppe aufnehmen.

Das Panel „Add routing device“ über dem Reiter „Internet gateways“, mit Network Identifier, Routing-Gerät, der Gruppe, für die es gilt, und einem leeren Feld „Access Groups“.
„Add Device“ in der Spalte „Failover“ öffnet dieses Panel. Geben Sie der zweiten Maschine dieselben Gruppen unter „Applies to“ und „Access Groups“ wie der ersten.

Ausschalten oder entfernen

Klicken Sie unter Networks → Internet gateways auf die Zeile des Gateways, damit sie aufklappt. Jede Maschine, die das Gateway bereitstellt, hat dort eine eigene Zeile mit Metric, Active, Applies to und Access Groups.

  • Für alle pausieren: Schalten Sie Active in der Zeile jeder Maschine aus. Die Geräte verlieren die Standardroute und schicken ihren Internetverkehr wieder lokal hinaus; schalten Sie Active wieder ein, um das Gateway wieder zu nutzen.
  • Ändern, wer es nutzt: Wählen Sie im Zeilenmenü jeder Maschine Edit, ändern Sie im Reiter Route die Gruppen unter Applies to, und wählen Sie Save Changes. Passen Sie die Quelle der Zugriffsregel ebenso an. Applies to darf nicht leer bleiben; um alle zu stoppen, nutzen Sie Active.
  • Eine Maschine herausnehmen: Delete im Zeilenmenü dieser Maschine. Die Rückfrage Delete 'internet-fra1'? nennt zwar das Gateway, entfernt wird aber nur der Eintrag dieser Maschine.
  • Das ganze Gateway löschen: Delete im Zeilenmenü am Ende der Zeile des Gateways selbst. Das Dashboard nennt es hier ein Netzwerk und fragt Delete network 'internet-fra1'?; mit dem Gateway verschwinden die Einträge aller seiner Maschinen.

Nach dem Löschen bleiben die Zugriffsregel und die beiden Gruppen bestehen. Löschen Sie die Regel unter Access → Access rules, wenn nichts anderes sie braucht; eine Gruppe lässt sich löschen, sobald nichts sie mehr verwendet (siehe Gruppen). Auf der Maschine selbst schaltet der Agent die IP-Weiterleitung nie wieder ab. Setzen Sie sie zurück oder starten Sie die Maschine neu, wenn sie nicht mehr weiterleiten soll.

shell - auf der Gateway-Maschine, nach dem Löschen des Gateways
sudo sysctl -w net.ipv4.ip_forward=0

Wenn es nicht funktioniert

Prüfen Sie von oben nach unten, auf dem Gerät, das sich nicht wie erwartet verhält.

Was Sie sehenWas Sie prüfen
sxaccess reach list zeigt kein 0.0.0.0/0Ob das Gerät zu einer Gruppe unter Applies to gehört, ob eine Zugriffsregel diese Gruppe mit der Gruppe der Gateway-Maschine verbindet und ob Active bei mindestens einer Maschine eingeschaltet ist. Ein Gerät, das mit --disable-client-routes gestartet wurde, nutzt überhaupt keine Routen.
Das Gateway ist aufgeführt, aber nichts lädtOb die Gateway-Maschine unter Devices online ist und ob das Ziel der Zugriffsregel die Access Group ist, weiterhin mit any protocol. Die Maschine selbst muss das Internet erreichen: Ihre Firewall oder Security Group muss ausgehenden Verkehr zulassen. Auf der Maschine sollte sysctl net.ipv4.ip_forward die Zeile net.ipv4.ip_forward = 1 ausgeben.
Die öffentliche Adresse ändert sich nichtTesten Sie aus einem anderen Netz als dem des Gateways. Die Apps für macOS und Windows leiten noch keinen Verkehr über ein Gateway, auch wenn sein Schalter eingeschaltet erscheint. Auf dem Smartphone ist das Gateway unter Resources vielleicht ausgeschaltet, beim CLI-Agenten mit sxaccess reach remove herausgenommen.
Ein Android-Smartphone nutzt das Gateway nicht„Privates DNS“ ist eingeschaltet. Schalten Sie es unter Einstellungen → Netzwerk & Internet → Privates DNS aus; bis dahin kann das Gateway nicht starten.
Websites, die nur IPv6 haben, laden nichtÜber ein Gateway läuft nur IPv4, und auf jedem Client funktioniert IPv6-Internetverkehr nicht, solange das Gerät ein Gateway nutzt. Schalten Sie das Gateway auf diesem Gerät aus, um eine solche Website zu erreichen.
Geräte erreichen das LAN des Gateways, seine VPC oder 169.254.169.254Ein Subnetz der eigenen Netzwerkschnittstellen der Gateway-Maschine: Die Maschine wurde ohne --block-lan-access gestartet. Führen Sie dort sxaccess stop && sxaccess start --block-lan-access aus. Führen Sie es als eine Zeile aus: Eine Verbindung über SXAccess, etwa eine SSH-Sitzung zu dieser Maschine, bricht ab, bis start fertig ist. In einer Sitzung über sxaccess shell klappt das nicht: Beim Stoppen schließt der Agent diese Sitzung und beendet den Befehl. Nutzen Sie dafür die Konsole oder eine OpenSSH-Sitzung. Die Geräte, die das Gateway nutzen, verlieren dabei für einige Sekunden die Internetverbindung. --block-lan-access deckt nur die Subnetze der eigenen Netzwerkschnittstellen des Gateways ab; Wo das Gateway laufen sollte beschreibt, wie es von allem anderen fernbleibt.
Alles ist langsamEin Gateway trägt den gesamten Internetverkehr seiner Geräte; siehe Dimensionierung und Redundanz.

Stattdessen: Split Tunneling

Wenn Sie eigentlich nur eine feste Quelladresse für zwei oder drei Dienste brauchen, legen Sie keine Standardroute an. Veröffentlichen Sie nur diese Ziele als host- oder domain-Ressourcen eines internen Netzwerks, dessen Routing-Gerät die Gateway-Maschine ist. Geräte senden dann diesen Verkehr darüber und alles andere über ihre lokale Verbindung. Das bedeutet geringere Latenz und weniger Bandbreite, ein Ausfall der Maschine trifft nur diese Dienste, und es funktioniert auch mit den Apps für macOS und Windows.

Standardroute vs. gezielte Ressourcen

StandardrouteGezielte Ressourcen
Was umgeleitet wirdDer gesamte Internetverkehr des GerätsNur die benannten Hosts oder Domains
Zusätzliche LatenzFür den gesamten VerkehrNur für die umgeleiteten Dienste
Gateway-BandbreiteWächst mit der Gesamtnutzung aller GeräteWächst nur mit den betreffenden Diensten
Feste QuelladresseJaJa, für diese Dienste
Funktioniert mitDem CLI-Agenten, iOS und AndroidAllen Apps und dem CLI-Agenten
Geeignet fürVollständige Prüfung des ausgehenden VerkehrsEintrag in die Positivlisten einiger Partner-APIs