Millised VPN-pordid tuleks tulemüüris avada: protokoll protokolli haaval
PPTP vajab TCP 1723 ja GRE, L2TP/IPsec vajab UDP 500 ja 4500 ning ESP, SSTP, OpenVPN ja WireGuard vajavad igaüks ühe pordi. Siin on, mida avada.
Kaks eraldi reeglit otsustavad, kas VPN-tunnel läbib tulemüüri: port, millele klient helistab, ja protokoll, mis kandevõimet veab. Ava ainult esimene ja tunnel autenditakse, kuid pärast seda ei liigu ükski andmebait. Miinimum on üks TCP-port ja GRE PPTP jaoks, kaks UDP-porti ja ESP L2TP/IPsec ja IKEv2 jaoks ning üks port SSTP, OpenVPN ja WireGuard jaoks. Suund, oleku jälgimine ja NAT otsustavad ülejäänu.
Alusta pordist, millele klient helistab
Igal perekonnal on sissepääsupunkt, millega klient esimesena ühendust võtab, ja just selle sissepääsupunkti peab sinu lubamisreegel nimetama. PPTP kliendid ühenduvad TCP 1723-le. L2TP/IPsec alustab IKE-d UDP 500-l ja läheb üle UDP 4500-le, kui NAT-i läbimine on kasutusel, samal ajal kui L2TP-raam ise on UDP 1701 tunnelis sees. SSTP mässib sessiooni TLS-i TCP 443-l, IKEv2 peab läbirääkimisi UDP 500 ja 4500-l, OpenVPN kasutab vaikimisi UDP 1194, kuid viiakse sageli TCP 443-le, ja WireGuard kuulab UDP 51820-l.
| 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 |
Käsitle neid numbreid vaikeväärtustena, mitte fikseeritud omadustena. WireGuard-liides kasutab seda kuulamisporti, mille selle konfiguratsioon teatab, ja OpenVPN server võib istuda ükskõik millisel pordil, mille administraator valis. Loe serveri konfiguratsiooni enne reegli kirjutamist, sest 1194 jaoks avatud tulemüür ei tee midagi serveri jaoks, mis kolis 443-le.
Kolmas veerg on koht, kus enamik muudatustaotlusi luhtub. Reegel on olemas, kuid see osutab valele sihtkohale, valele suunale või valele transpordile.
GRE ja ESP on protokollinumbrid, mitte pordid
GRE-l ja ESP-l ei ole üldse porte, seega tulemüüri vorm, mis võtab vastu ainult pordinumbreid, ei saa neid väljendada. GRE on IP-protokoll 47 ja ESP on IP-protokoll 50, mõlemad sobitatakse IP-päise protokollivälja kaudu. TCP-pordina 47 kirjutatud reegel ei sobi millegagi, ja nii näeb PPTP-poliitika õige välja ning jätab ikkagi iga paketi pärast kätlust kõrvale.
Tarbijaruuterid peidavad selle läbiviigu märkeruudu taha, mis paigaldab protokollireegli ja GRE puhul voolu kaardistamiseks vajaliku NAT-abilise. Päris tulemüüris lisate protokolli ise: lubage IP-protokoll 47 PPTP-serverile, lubage IP-protokoll 50 IPsec-lüüsile. Kui platvorm protokollivälja ei paku, on väljapääs kapseldamine, mistõttu IKEv2 võib langeda tagasi UDP 4500-le ja mistõttu OpenVPN ja WireGuard ei kohta seda probleemi kunagi.
Kontrollige, millega reegel tegelikult sobib, enne kui klienti süüdistate. Lüüsil nulli peale jääv paketilugeja ütleb, et reegel ei rakendunud kunagi, ja ükski kliendipoolne uuesti paigaldamine seda ei muuda.
Suund, olek ja NAT muudavad vastust
Välja helistav klient ja sissepoole kuulav lüüs on erinevad nõuded ning sama pordiloend võib olla ühes suunas õige ja teises vale. Olekupõhine tulemüür jälgib UDP-voogu 500 ja 4500 peal ning lubab vastused ilma teise reeglita tagasi. ESP ja GRE ei kanna porte, seega NAT-seadmel pole milleltki haarata ja see vajab sessiooni jälgimiseks abilist või kapseldamist.
NAT-i läbimine on osa, mis jääb märkamata. IKEv2 algab UDP 500-l, tuvastab NAT-seadme ja jätkab UDP 4500-l, seega ainult 500 lubav poliitika annab tunneli, mis luuakse ja siis vaikib. L2TP/IPsec teeb sama liigutuse. Kui teie püünis näitab esimest vahetust, kuid mitte püsivat liiklust, otsige reeglit, mis lõpeb 500 juures.
Märkige suund iga reegli juurde. «Luba UDP 4500» ei tähenda midagi, kuni te ei ütle, kust kuhu, ja rändkliendi jaoks õige reegel on tavaliselt saidilt-saidile partneri jaoks vale.
Kontrollige iga teed püünisega
Käivitage püünis lüüsil, mitte kliendil: klient salvestab ainult selle, mis kohale jõudis. Need filtrid katavad ülaltoodud perekonnad ja näitavad, milline etapp puudub:
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
Lugege väljundit järjestusena. Kui läbirääkimine ilmub, kuid kandevõime protokoll mitte, toimub kõrvalejätmine kuskil kliendi ja lüüsi vahel. Kui mõlemad ilmuvad ja leht ikka ei toimi, ei ole tulemüür enam kahtlusalune; vaadake marsruutimist, DNS-i või kliendile antud aadressibasseini.
Masinas, kus tcpdump puudub, annavad samad tõendid liidese- ja reeglilugejad. Baidid sisenevad, kuid ei välju tunneli liidesel — see osutab tagasiteele, mitte algsele lubamisreeglile.
Jätke reeglistik, mida suudate kaitsta
SSTP TCP 443 peal ei eristu tavalise HTTPS-i jaoks ühegi pordipõhise filtri jaoks, ja see ongi mõte, kui võrk lubab ainult veebiliiklust. Seetõttu peaks 443 reegel nimetama sihtkohana lüüsi, mitte tervet internetti. Kustutage ajutised miskist-miskile reeglid kohe, kui tunnel töötab. Kirjutage üles, milline reegel sobis, protokollinumber, kus see olemas on, ja suund, et järgmine inimene alustaks tõenditest.
Pilve punktist-saiti lüüsid teevad valiku nähtavaks: allalaaditud profiil kasutab kas SSTP-d 443 peal või IKEv2-t 500 ja 4500 peal, ja avada tuleks ainult see, mille profiil tegelikult valib. PPTP ei ole kaasaegses võrgus GRE-erandit väärt, sest mobiilioperaatorid jätavad protokolli 47 sageli kõrvale sõltumata teie tulemüürist. Enne pileti sulgemist kinnitage, et reegel vastab serveri konfiguratsiooni pordile, et protokolliväli on seatud seal, kus perekond seda vajab, ja et sihtkoht on lüüs, mitte ükskõik milline aadress.