Welche Adresse eine Cloud-Firewall sieht, wenn Ihr VPN aktiv ist
Ein Full Tunnel ändert die Quelladresse, die Ihre Datenbank sieht. Verschieben Sie die Allowlist, den privaten Pfad oder den Split Tunnel, nicht die Anmeldedaten.
Eine Datenbank, die vor dem Verbindungsaufbau des VPN funktioniert und danach ausfällt, ist selten ein Problem der Anmeldedaten. Cloud-Firewalls gleichen Quelladressen ab, und ein Full Tunnel ersetzt genau die Adresse, die sie abgeglichen haben. Die Lücke zwischen dem, was Ihr Laptop Ihrer Meinung nach sendet, und dem, was der Server empfängt, ist der ganze Fehler, und sie lässt sich in einem Schritt messen.
Wozu die Quelladresse wird
In einem Full Tunnel verlässt jedes Paket das Netz über das VPN-Gateway, sodass der Server die Egress-Adresse des Gateways sieht statt Ihrer Heimverbindung. Sitzt ein Forward-Proxy im Pfad, kommt dessen Adresse an. Beides sind legitime Quellen, und keine davon ist die Adresse in Ihrer ursprünglichen Regel.
Die Firewallregeln von Azure SQL auf Server- und Datenbankebene gleichen die Clientadresse ab, die den logischen Server erreicht, und das ist nach einem Full Tunnel die Egress-Adresse. Eine AWS-Sicherheitsgruppe, die eine einzige Adresse erlaubt, verhält sich genauso. Das Paket wird vor der Authentifizierung verworfen, daher sieht der zurückkommende Fehler wie ein Netzwerkausfall aus und nicht wie ein Berechtigungsproblem. Genau deshalb beginnen Leute, Passwörter zurückzusetzen.
Wo die Allowlist entschieden wird
Lesen Sie die Regel, die zum fehlschlagenden Pfad passt, nicht die Regel, von der Sie glauben, sie angelegt zu haben. Notieren Sie ihren Geltungsbereich, ihren Port, ihr Protokoll und ob sie vor irgendeiner Identitätsprüfung ausgewertet wird.
Entscheiden Sie dann, welche Schicht diese Entscheidung legitim besitzt. Eine Adressregel beantwortet, woher der Verkehr kommt. Ein privater Endpunkt beantwortet, ob der Dienst überhaupt über einen privaten Pfad erreichbar ist. Eine Split-Tunnel-Ausnahme beantwortet, welche Ziele den Tunnel umgehen. Sie sind nicht austauschbar, und jede versagt anders, wenn sich der Tunnel ändert.
Drei Reparaturen, drei Schichten
Jede Option unten repariert den Fluss aus einem anderen Grund, und die falsche Wahl erzeugt eine Verbindung, die bis zur nächsten Gateway-Änderung funktioniert.
| Repair | Layer it changes | What it does not fix |
|---|---|---|
| Add the egress address to the rule | Source address matching | Nothing about routing, and it breaks when the egress moves |
| Use a private endpoint | Whether the service is reached privately | A client that still resolves the public name |
| Add a split-tunnel exception | Which flows bypass the tunnel | An expired credential or a wrong password |
Die Egress-Adresse hinzuzufügen ist die kleinste Änderung und die fragilste, weil ein neues Gateway oder eine andere Region sie still ungültig macht. Dokumentieren Sie die Adresse neben der Tunneldefinition, damit sich beide gemeinsam bewegen. Ein temporärer breiter Bereich ist eine Diagnose, keine Reparatur; ihn stehen zu lassen, ist der Weg, auf dem interne Dienste am Ende exponiert sind.
Warum eine verwaltete Plattform dem Tunnel nicht beitreten kann
Anwendungsplattformen wie Heroku, AppHarbor oder CloudBees führen Ihren Code in einer Umgebung ohne tun- oder tap-Gerät und ohne Rechte aus, eines zu erstellen. Ihr Inbound-Modell ist HTTP und kein beliebiger lauschender Socket. Ein Buildpack, das eine VPN-Binärdatei mitliefert, hat immer noch keinen Platz für die Schnittstelle. Die funktionierenden Muster sind eine statische Egress-Adresse, die die Datenbank erlauben kann, ein privates Verbindungsprodukt der Plattform oder ein Proxy in einer DMZ, der über HTTPS erreicht wird.
Dieser Proxy ist ein Zugriffspfad mit eigener Authentifizierung und Protokollierung. Er macht die Plattform nicht zu einem Mitglied Ihres VPN, und eine solche Beschreibung erzeugt Regeln, die niemand prüfen kann.
Prüfen Sie vom fehlgeschlagenen Client aus
Verbinden Sie sich erneut, und wiederholen Sie den exakten Clientpfad. Prüfen Sie die Quelladresse, die der Dienst protokolliert, die Route, die der Client für den Datenbanknamen wählt, und das Ergebnis der tatsächlichen Abfrage, in dieser Reihenfolge. Ein Test vom Gateway beweist, dass das Gateway funktioniert, was nie zweifelhaft war. Wenn die Verbindung jetzt authentifiziert wird und die Abfrage weiterhin fehlschlägt, ist das verbleibende Problem die Datenbankberechtigung.
Überprüfen Sie diese Regeln, wenn sich der Tunnel ändert. Ein ersetztes Gateway oder ein neuer Egress-Bereich bricht den Pfad ohne jede Änderung an der Anwendungskonfiguration.