Welk adres een cloudfirewall ziet zodra je VPN aan staat
Een volledige tunnel verandert het bronadres dat je database ziet. Verplaats de allowlist, het privépad of de split tunnel, niet de inloggegevens.
Een database die werkt voordat de VPN verbindt en daarna faalt, is zelden een probleem met inloggegevens. Cloudfirewalls vergelijken bronadressen, en een volledige tunnel vervangt precies het adres dat ze vergeleken. Het verschil tussen wat je denkt dat je laptop verstuurt en wat de server ontvangt, is de hele bug, en het is in één stap meetbaar.
Wat het bronadres wordt
In een volledige tunnel verlaat elk pakket het netwerk via de VPN-gateway, dus ziet de server het uitgaande adres van de gateway in plaats van je thuisverbinding. Zit er een forward-proxy in het pad, dan komt diens adres aan. Beide zijn legitieme bronnen, en geen van beide is het adres in je oorspronkelijke regel.
De firewallregels van Azure SQL op server- en databaseniveau vergelijken het clientadres dat de logische server bereikt, en dat is na een volledige tunnel het uitgaande adres. Een AWS-beveiligingsgroep die één adres toestaat, gedraagt zich hetzelfde. Het pakket wordt vóór authenticatie weggegooid, dus de fout die je terugkrijgt lijkt op een netwerkstoring in plaats van een rechtenprobleem. Dat is precies waarom mensen wachtwoorden gaan resetten.
Waar de allowlist wordt beslist
Lees de regel die bij het falende pad hoort, niet de regel waarvan je je herinnert dat je hem hebt gemaakt. Noteer de reikwijdte, de poort, het protocol en of de regel vóór enige identiteitscontrole wordt geëvalueerd.
Bepaal daarna welke laag de beslissing legitiem bezit. Een adresregel beantwoordt waar het verkeer vandaan komt. Een privé-eindpunt beantwoordt of de dienst überhaupt via een privépad bereikbaar is. Een split-tunneluitzondering beantwoordt welke bestemmingen de tunnel omzeilen. Ze zijn niet uitwisselbaar, en elk faalt anders wanneer de tunnel verandert.
Drie reparaties, drie lagen
Elke optie hieronder repareert de stroom om een andere reden, en de verkeerde keuze levert een verbinding die werkt tot de volgende gatewaywijziging.
| 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 |
Het uitgaande adres toevoegen is de kleinste wijziging en de kwetsbaarste, omdat een nieuwe gateway of een andere regio het stil ongeldig maakt. Documenteer het adres naast de tunneldefinitie zodat beide samen bewegen. Een tijdelijk breed bereik is een diagnose, geen reparatie; het laten staan is hoe interne diensten uiteindelijk bloot komen te staan.
Waarom een beheerd platform niet aan de tunnel kan deelnemen
Applicatieplatforms zoals Heroku, AppHarbor of CloudBees draaien je code in een omgeving zonder tun- of tap-apparaat en zonder rechten om er een te maken. Hun inkomende model is HTTP en geen willekeurige luisterende socket. Een buildpack dat een VPN-binary meelevert, heeft nog steeds geen plek voor de interface. De werkbare patronen zijn een statisch uitgaand adres dat de database kan toestaan, een privéverbindingsproduct dat het platform biedt, of een proxy in een DMZ die via HTTPS bereikbaar is.
Die proxy is een toegangspad met eigen authenticatie en logging. Hij maakt het platform geen lid van je VPN, en dat zo beschrijven levert regels op die niemand kan auditen.
Verifieer vanaf de client die faalde
Verbind opnieuw en herhaal het exacte clientpad. Controleer het bronadres dat de dienst logt, de route die de client voor de databasenaam kiest, en het resultaat van de daadwerkelijke query, in die volgorde. Een test vanaf de gateway bewijst dat de gateway werkt, wat nooit twijfelachtig was. Als de verbinding nu authenticeert en de query nog steeds faalt, is het resterende probleem de databaserechten.
Herzie deze regels telkens wanneer de tunnel verandert. Een vervangen gateway of een nieuw uitgaand bereik breekt het pad zonder enige wijziging in de applicatieconfiguratie.