Hvilke VPN-porter du bør åpne i en brannmur: protokoll for protokoll
PPTP trenger TCP 1723 pluss GRE, L2TP/IPsec trenger UDP 500 og 4500 pluss ESP, og SSTP, OpenVPN og WireGuard trenger én port hver. Her er hva du skal åpne.
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.
| Family | Rule to add on the gateway | Typical mistake |
|---|---|---|
| WireGuard | UDP port from ListenPort, for the peer address | Assuming 51820 when the config says otherwise |
| OpenVPN | The configured UDP or TCP port, often 443 | Opening 1194 after the server moved |
| SSTP | TCP 443 limited to the gateway IP | Allowing 443 to any destination |
| IKEv2 | UDP 500 and UDP 4500, plus ESP | Allowing only 500 and losing NAT-T |
| L2TP/IPsec | UDP 500, 4500, ESP, and 1701 inside the tunnel | Exposing 1701 to the internet |
| PPTP | TCP 1723 and IP protocol 47 | Writing 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.