VPN туннелінің firewall-дан өту-өтпеуін екі бөлек ереже шешеді: клиент қоңырау шалатын порт және жүкті тасымалдайтын протокол. Тек біріншісін ашсаңыз, туннель аутентификациядан өтеді, содан кейін деректер қозғалмайды. Ең азы — PPTP үшін бір TCP порты және GRE, L2TP/IPsec және IKEv2 үшін екі UDP порты және ESP, ал SSTP, OpenVPN және WireGuard үшін бір порттан. Бағыт, күйді бақылау және NAT қалғанын шешеді.

Клиент қоңырау шалатын порттан бастаңыз

Әр отбасының клиент бірінші хабарласатын кіру нүктесі бар, және рұқсат ережеңіз дәл сол кіру нүктесін атауы керек. PPTP клиенттері TCP 1723-ке қосылады. L2TP/IPsec UDP 500-де IKE бастайды және NAT-тан өту қолданылғанда UDP 4500-ге ауысады, ал L2TP кадрының өзі туннель ішіндегі UDP 1701-де болады. SSTP сессияны TCP 443-те TLS-ке орайды, IKEv2 UDP 500 мен 4500-де келіссөз жүргізеді, OpenVPN әдепкі бойынша UDP 1194 қолданады, бірақ жиі TCP 443-ке көшіріледі, ал WireGuard 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

Бұл сандарды тұрақты қасиет емес, әдепкі мән ретінде қабылдаңыз. WireGuard интерфейсі өз конфигурациясы жариялаған кез келген тыңдау портын пайдаланады, ал OpenVPN сервері әкімші таңдаған кез келген портта отыра алады. Ережені жазбас бұрын сервер конфигурациясын оқыңыз, өйткені 1194 үшін ашылған firewall 443-ке көшірілген серверге ештеңе істемейді.

Үшінші баған — өзгеріс билеттерінің көбісі қателесетін жер. Ереже бар, бірақ ол қате мақсатқа, қате бағытқа немесе қате тасымалдауға нұсқайды.

GRE мен ESP — протокол нөмірлері, порт емес

GRE мен ESP-нің порты мүлдем жоқ, сондықтан тек порт нөмірлерін қабылдайтын firewall пішіні оларды өрнектей алмайды. GRE — IP протоколы 47, ESP — IP протоколы 50, екеуі де IP тақырыбының протокол өрісі арқылы сәйкестендіріледі. TCP порты 47 деп жазылған ереже ештеңемен сәйкеспейді, осылайша PPTP саясаты дұрыс көрінеді және қол алысқаннан кейінгі әр пакетті тастайды.

Тұтынушылық маршрутизаторлар мұны өткізу құсбелгісінің артына жасырады, ол протокол ережесін және GRE үшін ағынды бейнелеуге қажет NAT көмекшісін орнатады. Нақты firewall-да протоколды өзіңіз қосасыз: PPTP серверіне IP протоколы 47-ге рұқсат беріңіз, IPsec шлюзіне IP протоколы 50-ге рұқсат беріңіз. Платформа протокол өрісін ұсынбайтын жерде инкапсуляция — шығар жол, сондықтан IKEv2 UDP 4500-ге қайта алады және сондықтан OpenVPN мен WireGuard бұл мәселеге ешқашан тап болмайды.

Клиентті кінәламас бұрын ереженің нақты неге сәйкес келетінін тексеріңіз. Шлюзде нөлде тұрған пакет санағышы ереженің ешқашан іске қосылмағанын айтады, ал клиент жағында қанша рет қайта орнатсаңыз да бұл өзгермейді.

Бағыт, күй және NAT жауапты өзгертеді

Сыртқа қоңырау шалатын клиент пен ішке тыңдайтын шлюз — әртүрлі талаптар, және бір порт тізімі бір бағытта дұрыс, екіншісінде қате болуы мүмкін. Күйді бақылайтын firewall 500 мен 4500-дегі UDP ағынын қадағалайды және жауаптарды екінші ережесіз кері жібереді. ESP мен GRE порт тасымалдамайды, сондықтан NAT құрылғысының ұстайтын жері жоқ және сессияны қадағалау үшін көмекші не инкапсуляция керек.

NAT-тан өту — жиі ұмытылатын бөлік. IKEv2 UDP 500-де басталады, NAT құрылғысын анықтайды және UDP 4500-де жалғастырады, сондықтан тек 500-ге рұқсат беретін саясат орнатылып, кейін үнсіз қалатын туннель береді. L2TP/IPsec те сол қозғалысты жасайды. Егер түсіріліміңіз бірінші алмасуды көрсетсе, бірақ тұрақты трафикті көрсетпесе, 500-де тоқтайтын ережені іздеңіз.

Әр ережемен бірге бағытты жазып отырыңыз. «UDP 4500-ге рұқсат бер» қайдан қайда екенін айтпайынша ештеңе білдірмейді, ал кезбе клиент үшін дұрыс ереже сайт-сайт серіктесі үшін әдетте қате.

Әр жолды түсіріліммен тексеріңіз

Түсірілімді клиентте емес, шлюзде жүргізіңіз: клиент тек келгенін жазады. Бұл сүзгілер жоғарыдағы отбасыларды қамтиды және қай кезең жетіспейтінін көрсетеді:

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

Шығысты реттілік ретінде оқыңыз. Келіссөз көрінсе, бірақ жүк протоколы көрінбесе, тастау клиент пен шлюз арасында бір жерде болады. Екеуі де көрініп, бет әлі ашылмаса, firewall енді күдікті емес; маршруттауға, DNS-ке немесе клиентке берілген мекенжай пулына қараңыз.

tcpdump жоқ құрылғыда дәл сол дәлелдер интерфейс пен ереже санағыштарынан келеді. Туннель интерфейсінде байттар кіріп, шықпаса — бұл бастапқы рұқсат ережесіне емес, қайтару жолына нұсқайды.

Қорғай алатын ережелер жинағын қалдырыңыз

TCP 443-тегі SSTP кез келген портқа негізделген сүзгі үшін қарапайым HTTPS-тен ажыратылмайды, және желі тек веб-трафикке рұқсат бергенде мәселе осында. Сондықтан 443 ережесі бүкіл интернетті емес, шлюзді межелеуі керек. Туннель жұмыс істесімен уақытша кез келгеннен-кез келгенге ережелерді жойыңыз. Қай ереже сәйкес келгенін, бар жерде протокол нөмірін және бағытты жазыңыз, келесі адам дәлелден бастасын.

Бұлттық нүктеден-сайтқа шлюздер таңдауды көрнекі етеді: жүктелген профиль 443-тегі SSTP немесе 500 мен 4500-дегі IKEv2 қолданады, және профиль шын мәнінде таңдағанын ғана ашу керек. PPTP заманауи желіде GRE ерекшелігіне тұрарлық емес, өйткені ұялы операторлар firewall-ыңызға қарамастан 47 протоколын жиі тастайды. Билетті жаппас бұрын ереженің сервер конфигурациясындағы портқа сәйкес келетінін, протокол өрісі отбасына қажет жерде орнатылғанын және меже кез келген мекенжай емес, шлюз екенін растаңыз.

Қатысты мақалалар