Hvilke VPN-porter du må åpne i en brannmur: protokoll for protokoll
PPTP krever TCP 1723 pluss GRE, L2TP/IPsec krever UDP 500 og 4500 pluss ESP, og SSTP, OpenVPN og WireGuard trenger én port hver. Her er hva du må åpne.
To ulike regler avgjør om en VPN-tunnel klarer seg gjennom en brannmur: porten klienten ringer, og protokollen som frakter nyttelasten. Åpner du bare den første, blir tunnelen godkjent, men etterpå går det ingen data. Minstekravet er én TCP-port pluss GRE for PPTP, to UDP-porter pluss ESP for L2TP/IPsec og IKEv2, og én port for SSTP, OpenVPN og WireGuard. Retning, tilstandssporing og NAT avgjør resten.
Begynn med porten klienten ringer
Hver familie har et inngangspunkt som klienten kontakter først, og det er dette inngangspunktet tillatelsesregelen din skal navngi. PPTP-klienter kobler seg til TCP 1723. L2TP/IPsec starter IKE på UDP 500 og skifter til UDP 4500 når NAT-traversering tas i bruk, mens L2TP-rammen selv 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 |
Se på tallene som standardverdier, ikke som faste egenskaper. Et WireGuard-grensesnitt bruker den lytteporten konfigurasjonen sier, og en OpenVPN-server kan ligge på hvilken som helst port administratoren har valgt. Les serverkonfigurasjonen før du skriver regelen, for en brannmur som er åpnet for 1194 hjelper ikke en server som er flyttet til 443.
Den tredje kolonnen er der de fleste endringssakene feiler. Regelen finnes, men den peker mot feil mål, feil retning eller feil transport.
GRE og ESP er protokollnumre, ikke porter
GRE og ESP har overhodet ingen porter, så et brannmurskjema som bare tar imot portnumre kan ikke uttrykke dem. GRE er IP-protokoll 47 og ESP er IP-protokoll 50, og begge matches gjennom protokollfeltet i IP-hodet. En regel skrevet som TCP-port 47 treffer ingenting, og slik kan en PPTP-policy se riktig ut og likevel droppe hver pakke etter håndtrykket.
Hjemmerutere skjuler dette bak en avkrysningsboks for gjennomgang som installerer protokollregelen og, for GRE, NAT-hjelperen som trengs for å kartlegge flyten. På en ordentlig brannmur legger du inn protokollen selv: tillat IP-protokoll 47 mot PPTP-serveren, tillat IP-protokoll 50 mot IPsec-gatewayen. Der plattformen ikke har protokollfelt, er innkapsling løsningen, og derfor kan IKEv2 falle tilbake til UDP 4500 og derfor møter OpenVPN og WireGuard aldri problemet.
Sjekk hva regelen faktisk treffer før du gir klienten skylden. En pakketeller som står på null på gatewayen forteller at regelen aldri ble utløst, og ingen mengde reinstallering på klientsiden endrer på det.
Retning, tilstand og NAT forandrer svaret
En klient som ringer ut og en gateway som lytter inn er forskjellige krav, og samme portliste kan være riktig i én retning og gal i den andre. En tilstandsbasert brannmur følger UDP-flyten på 500 og 4500 og slipper svarene tilbake uten en ekstra regel. ESP og GRE frakter ingen porter, så en NAT-enhet har ingenting å feste seg til og trenger en hjelper eller innkapsling for å følge sesjonen.
NAT-traversering er delen som ofte glemmes. IKEv2 begynner 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 samme bevegelse. Hvis opptaket ditt viser den første utvekslingen, men ikke vedvarende trafikk, bør du lete etter en regel som stopper på 500.
Skriv ned retningen for hver regel. «Tillat UDP 4500» betyr ingenting før du sier hvor fra og hvor til, og en regel som er riktig for en klient på farten er vanligvis gal for en site-til-site-partner.
Sjekk hver vei med et opptak
Kjør opptaket på gatewayen, ikke på klienten: klienten registrerer bare det som kom fram. Disse filtrene dekker familiene ovenfor 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 utskriften 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 ikke brannmuren mistenkt lenger; se på ruting, DNS eller adressepoolen klienten fikk.
På en maskin uten tcpdump gir grensesnitt- og regeltellere de samme bevisene. Bytes som kommer 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 av noe portbasert filter, og det er nettopp 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 alt-til-alt så snart tunnelen virker. Skriv ned hvilken regel som traff, protokollnummeret der det finnes, og retningen, slik at 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 det profilen faktisk velger. PPTP er ikke verdt GRE-unntaket på et moderne nett, fordi mobiloperatører ofte dropper protokoll 47 uansett brannmur. Før du lukker saken, må du bekrefte at regelen passer til porten i serverkonfigurasjonen, at protokollfeltet er satt der familien trenger det, og at målet er gatewayen og ikke en tilfeldig adresse.