To separate regler avgjør om en VPN-tunnel overlever en brannmur: porten klienten ringer til, og protokollen som bærer nyttelasten. Åpne bare den første, så autentiseres tunnelen, og deretter flyttes ingen data. Minimumet er én TCP-port pluss GRE for PPTP, to UDP-porter pluss ESP for L2TP/IPsec og IKEv2, og én enkelt port for SSTP, OpenVPN og WireGuard. Retning, tilstandssporing og NAT avgjør resten.

Start med porten klienten ringer til

Hver familie har et inngangspunkt klienten kontakter først, og det inngangspunktet er det tillatelsesregelen din må navngi. PPTP-klienter kobler til TCP 1723. L2TP/IPsec starter IKE på UDP 500 og går over til UDP 4500 når NAT-traversering er i bruk, mens selve L2TP-rammen ligger på UDP 1701 inne i tunnelen. SSTP pakker sesjonen inn i TLS på TCP 443, IKEv2 forhandler på UDP 500 og 4500, OpenVPN bruker UDP 1194 som standard men flyttes ofte til TCP 443, og WireGuard lytter på UDP 51820.

FamilyRule to add on the gatewayTypical mistake
WireGuardUDP port from ListenPort, for the peer addressAssuming 51820 when the config says otherwise
OpenVPNThe configured UDP or TCP port, often 443Opening 1194 after the server moved
SSTPTCP 443 limited to the gateway IPAllowing 443 to any destination
IKEv2UDP 500 and UDP 4500, plus ESPAllowing only 500 and losing NAT-T
L2TP/IPsecUDP 500, 4500, ESP, and 1701 inside the tunnelExposing 1701 to the internet
PPTPTCP 1723 and IP protocol 47Writing a rule for TCP 47

Behandle disse tallene som standardverdier og ikke som faste egenskaper. Et WireGuard-grensesnitt bruker den lytteporten konfigurasjonen oppgir, og en OpenVPN-server kan sitte på hvilken som helst port administratoren valgte. Les serverkonfigurasjonen før du skriver regelen, for en brannmur åpnet for 1194 gjør ingenting for en server som er flyttet til 443.

Den tredje kolonnen er der de fleste endringssakene går galt. Regelen finnes, men den peker på feil mål, feil retning eller feil transport.

GRE og ESP er protokollnumre, ikke porter

GRE og ESP har ingen porter i det hele tatt, så et brannmurskjema som bare godtar portnumre kan ikke uttrykke dem. GRE er IP-protokoll 47 og ESP er IP-protokoll 50, begge matches via protokollfeltet i IP-hodet. En regel skrevet som TCP-port 47 matcher ingenting, og det er slik en PPTP-policy ser riktig ut og likevel slipper hver pakke etter håndtrykket.

Forbrukerrutere skjuler dette bak en gjennomgangsavkrysning som installerer protokollregelen og, for GRE, NAT-hjelperen som trengs for å kartlegge flyten. På en ekte brannmur legger du til protokollen selv: tillat IP-protokoll 47 til PPTP-serveren, tillat IP-protokoll 50 til IPsec-gatewayen. Der plattformen ikke tilbyr protokollfelt, er innkapsling veien ut, derfor kan IKEv2 falle tilbake til UDP 4500, og derfor treffer OpenVPN og WireGuard aldri problemet.

Kontroller hva regelen faktisk matcher før du klandrer klienten. En pakketeller som blir stående på null på gatewayen sier at regelen aldri ble utløst, og ingen mengde ominstallasjon på klientsiden endrer det.

Retning, tilstand og NAT endrer svaret

En klient som ringer ut og en gateway som lytter inn er forskjellige krav, og den samme portlisten kan være riktig i én retning og feil i den andre. En tilstandsbasert brannmur sporer UDP-flyten på 500 og 4500 og slipper svarene tilbake uten en andre regel. ESP og GRE bærer ingen porter, så en NAT-enhet har ingenting å feste seg i og trenger en hjelper eller en innkapsling for å følge sesjonen.

NAT-traversering er den delen som blir oversett. IKEv2 starter på UDP 500, oppdager en NAT-enhet og fortsetter på UDP 4500, så en policy som bare tillater 500 gir en tunnel som etableres og deretter blir stille. L2TP/IPsec gjør det samme trekket. Hvis opptaket ditt viser den første utvekslingen, men ikke vedvarende trafikk, se etter en regel som stopper ved 500.

Noter retningen med hver regel. «Tillat UDP 4500» betyr ingenting før du sier hvorfra og hvor, og en regel som er riktig for en roamingklient er vanligvis feil for en site-til-site-peer.

Sjekk hver vei med et opptak

Kjør opptaket på gatewayen, ikke på klienten: en klient registrerer bare det som kom frem. Disse filtrene dekker familiene over og viser hvilket trinn som mangler:

sudo tcpdump -ni any tcp port 1723
sudo tcpdump -ni any udp port 500 or udp port 4500
sudo tcpdump -ni any proto gre
sudo tcpdump -ni any proto 50

Les utdata som en sekvens. Når forhandlingen dukker opp, men nyttelastprotokollen ikke, skjer droppet et sted mellom klient og gateway. Når begge vises og siden fortsatt feiler, er brannmuren ikke lenger den mistenkte; se på ruting, DNS eller adressepoolen klienten fikk.

På en boks uten tcpdump kommer de samme bevisene fra grensesnitt- og regeltellere. Bytes inn, men ikke ut på tunnegrensesnittet peker på returveien og ikke på den opprinnelige tillatelsesregelen.

Etterlat et regelsett du kan forsvare

SSTP på TCP 443 kan ikke skilles fra vanlig HTTPS for noen portbasert filter, og det er poenget når et nettverk bare tillater webtrafikk. Det er også grunnen til at 443-regelen bør navngi gatewayen som mål i stedet for hele internett. Slett midlertidige regler fra hva-som-helst-til-hva-som-helst så snart tunnelen virker. Skriv ned hvilken regel som traff, protokollnummeret der det finnes, og retningen, så neste person starter med bevis.

Skybaserte punkt-til-site-gatewayer gjør valget synlig: profilen du laster ned bruker enten SSTP på 443 eller IKEv2 på 500 og 4500, og du bør bare åpne den profilen faktisk velger. PPTP er ikke verdt GRE-unntaket i et moderne nettverk, siden mobiloperatører ofte dropper protokoll 47 uansett brannmur. Før du lukker saken, bekreft at regelen passer porten i serverkonfigurasjonen, at protokollfeltet er satt der familien trenger det, og at målet er gatewayen og ikke en hvilken som helst adresse.

Relaterte artikler