Dva odvojena pravila odlučuju da li VPN tunel preživljava vatrozid: port na koji klijent zove i protokol koji nosi teret. Otvorite samo prvo pa se tunel autentifikuje, a zatim ne prenosi podatke. Minimum je jedan TCP port plus GRE za PPTP, dva UDP porta plus ESP za L2TP/IPsec i IKEv2, i jedan port za SSTP, OpenVPN i WireGuard. Smer, praćenje stanja i NAT odlučuju o ostalom.

Pođite od porta na koji klijent zove

Svaka familija ima ulaznu tačku koju klijent prvo kontaktira, i upravo tu ulaznu tačku vaše pravilo dozvole mora da imenuje. PPTP klijenti se povezuju na TCP 1723. L2TP/IPsec započinje IKE na UDP 500 i prelazi na UDP 4500 kada se koristi NAT traversal, a sam L2TP okvir je na UDP 1701 unutar tunela. SSTP umotava sesiju u TLS na TCP 443, IKEv2 pregovara na UDP 500 i 4500, OpenVPN podrazumevano koristi UDP 1194 ali se često premešta na TCP 443, a WireGuard sluša na 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

Tretirajte te brojeve kao podrazumevane vrednosti, a ne kao fiksna svojstva. WireGuard interfejs koristi koji god port za slušanje njegova konfiguracija navede, a OpenVPN server može da stoji na bilo kom portu koji je administrator izabrao. Pročitajte konfiguraciju servera pre nego što napišete pravilo, jer vatrozid otvoren za 1194 ne čini ništa za server premešten na 443.

Treća kolona je mesto gde većina zahteva za promenu ode naopako. Pravilo postoji, ali pokazuje na pogrešno odredište, pogrešan smer ili pogrešan transport.

GRE i ESP su brojevi protokola, ne portovi

GRE i ESP uopšte nemaju portove, pa vatrozidni obrazac koji prihvata samo brojeve portova ne može da ih izrazi. GRE je IP protokol 47, a ESP IP protokol 50, i oba se uparuju preko polja protokola u IP zaglavlju. Pravilo napisano kao TCP port 47 ne uparuje ništa, i tako PPTP politika izgleda ispravno i ipak odbacuje svaki paket posle rukovanja.

Kućni ruteri skrivaju to iza polja za propuštanje koje instalira pravilo protokola i, za GRE, NAT pomoćnika potrebnog za mapiranje toka. Na pravom vatrozidu protokol dodajete sami: dozvolite IP protokol 47 ka PPTP serveru, dozvolite IP protokol 50 ka IPsec gejtveju. Gde platforma ne nudi polje protokola, izlaz je inkapsulacija, zato IKEv2 može da se vrati na UDP 4500 i zato OpenVPN i WireGuard nikad ne nailaze na problem.

Proverite šta pravilo zapravo uparuje pre nego što okrivite klijenta. Brojač paketa koji na gejtveju ostane na nuli kaže da pravilo nikad nije aktivirano, i nikakvo ponovno instaliranje na strani klijenta to ne menja.

Smer, stanje i NAT menjaju odgovor

Klijent koji zove ka spolja i gejtvej koji sluša ka unutra su različiti zahtevi, a ista lista portova može biti ispravna u jednom smeru i pogrešna u drugom. Vatrozid sa stanjem prati UDP tok na 500 i 4500 i propušta odgovore nazad bez drugog pravila. ESP i GRE ne nose portove, pa NAT uređaj nema šta da uhvati i treba mu pomoćnik ili inkapsulacija da prati sesiju.

NAT traversal je deo koji se propušta. IKEv2 počinje na UDP 500, otkrije NAT uređaj i nastavlja na UDP 4500, pa politika koja dozvoljava samo 500 daje tunel koji se uspostavi i onda utihne. L2TP/IPsec radi isti pokret. Ako vaše snimanje pokazuje prvu razmenu ali ne i stalni saobraćaj, potražite pravilo koje staje na 500.

Zabeležite smer uz svako pravilo. „Dozvoli UDP 4500“ ne znači ništa dok ne kažete odakle dokle, a pravilo ispravno za klijenta u pokretu obično je pogrešno za lokal-uz-lokal partnera.

Proverite svaku putanju snimanjem

Pokrenite snimanje na gejtveju, ne na klijentu: klijent beleži samo ono što je stiglo. Ovi filteri pokrivaju gore navedene familije i pokazuju koja faza nedostaje:

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

Čitajte izlaz kao niz. Kada se pojavi pregovaranje ali ne i protokol tereta, odbacivanje se dešava negde između klijenta i gejtveja. Kada se pojave oba a stranica i dalje ne uspeva, vatrozid više nije osumnjičeni; pogledajte rutiranje, DNS ili bazen adresa koji je klijent dobio.

Na uređaju bez tcpdumpa iste dokaze daju brojači interfejsa i pravila. Bajtovi ulaze ali ne izlaze na interfejsu tunela — to upućuje na povratnu putanju, a ne na početno pravilo dozvole.

Ostavite skup pravila koji možete da branite

SSTP na TCP 443 ne razlikuje se od običnog HTTPS-a nijednom filteru zasnovanom na portovima, i to je smisao kada mreža dozvoljava samo web saobraćaj. Zato i pravilo za 443 mora kao odredište da imenuje gejtvej, a ne ceo internet. Brišite privremena pravila od-bilo-čega-do-bilo-čega čim tunel proradi. Zapišite koje je pravilo uparilo, broj protokola gde ga ima i smer, da sledeća osoba krene od dokaza.

Cloud gejtveji od tačke do lokacije čine izbor vidljivim: preuzeti profil koristi ili SSTP na 443 ili IKEv2 na 500 i 4500, i treba da otvorite samo onaj koji profil zaista izabere. PPTP ne vredi izuzetka za GRE na modernoj mreži, jer mobilni operateri često odbacuju protokol 47 bez obzira na vaš vatrozid. Pre nego što zatvorite zahtev, potvrdite da pravilo odgovara portu u konfiguraciji servera, da je polje protokola postavljeno gde familija to traži i da je odredište gejtvej, a ne bilo koja adresa.

Povezani članci