Бір OpenVPN порты, үш қызмет: ішкі порттар неге маңызды
Бір туннель, үш қызмет, бір ашық порт. Сыртқы VPN тыңдаушысын қолданбалардың ішкі порттарынан бөліп, содан кейін әрбір ішкі рұқсатты бөлек тексеріңіз.
Бір SSH сессиясы, бір веб-қолданба және бір атау сұрауы порттар үшін таласпай-ақ бір VPN қосылымын бөлісе алады. Клиент шлюзге бір шифрланған ағын құрады және әрбір қолданба әңгімесі соның ішінде жүреді. Сыртта тек туннельдің өз тасымалы мен порты көрінеді. Іште әр қызмет өз портын сақтайды және әлі де өз рұқсатын қажет етеді.
Сыртқы ағын нені тасымалдайды және нені жасырады
Клиент әрбір пакетті машинадан шықпас бұрын туннель тасымалына орайды. Бұл сыртқы ағынның бір мақсатты порты бар, ол VPN конфигурацияланған кезде бекітіледі. Қаптаманың ішінде әрбір бастапқы пакет өзі бағыттаған қызметтің мекенжайы мен портын сақтайды. Шлюз қаптаманы алып тастап, ішкі тақырып бойынша маршруттайды, сондықтан мақсат желіден келе жатқан қарапайым клиентті көреді.
Сондықтан WAN интерфейсіндегі түсірілім бір әңгімені көрсетеді, үшеуін емес. Ішкі порттар тек декапсуляциядан кейін пайда болады. Сондықтан бір брандмауэр саңылауы SSH, HTTPS және DNS-ті бір уақытта тасымалдай алады.
# WAN side: one outer tuple, whatever the inner services are
tcpdump -ni wan0 'udp port 443'
# tunnel side: the inner tuples appear after decapsulation
tcpdump -ni tun0
TUN/TAP құжаттамасы маршрутталған TUN құрылғысы IP пакеттерін ядро мен пайдаланушы кеңістігіндегі процесс арасында беру түсірілімін қамтиды. Дәл осы беру ішкі тақырыпты шлюздің маршруттау және брандмауэр кодына көрінетін етеді. Ол сондай-ақ сыртқы порттың қандай қызметтерге рұқсат етілгені туралы ештеңе айтпайтынын түсіндіреді.
NAT қайта бағыттауы тыңдаушыға тиесілі, қолданбаларға емес
IPv4 NAT артындағы өздігінен орналастырылған шлюзге бір кіріс аудармасы қажет: ашық мекенжай мен порт VPN тыңдаушысына салыстырылады. Туннель пайдаланушылары оларға жететіндіктен ғана SSH, HTTPS немесе DNS үшін ешбір ереже қажет емес. Ол порттарды жариялау туннель қорғап отырған қызметтерді әшкерелер еді. Қайта бағыттау ережесі тыңдаушының қолжетімділігін сипаттайды, ішіндегі бірдеңеге рұқсатты емес.
Керісінше де дұрыс. Туннель портын ашу басқа ештеңені әшкерелемейді, сондықтан тек туннель арқылы қолжетімді қызмет өзінің ашық бетін жабық күйде ұстайды. Бұл бөліну әдетте қызметті басынан жеке ұстаудың себебі болып табылады.
Кіруге нақты шешім қабылданатын жер — ішкі саясат
Шифрлау жолды қорғайды; ол мақсатқа рұқсат бермейді. Клиент маршруттары қай префикстердің туннельге кіретінін таңдайды, шлюздің қайта бағыттау саясаты пакеттердің одан шығуы мүмкін-мүмкін еместігін шешеді, ал мақсаттың брандмауэры мен кіруі қызметтің жауап беретінін шешеді. DNS — ең айқын жағдай: сұрауларды тасымалдау шешушінің оларды сіздің клиент пулыңыздан қабылдауына әкелмейді. Әрбір қабат дербес «жоқ» дей алады.
Әр қызметті туннель арқылы бөлек тексеріңіз. Сәтті іздеу веб-порт туралы ештеңе айтпайды, ал сәтті веб-сұрау SSH туралы ештеңе айтпайды.
dig @10.40.0.53 app.corp.example
nc -vz 10.40.0.10 8443
ssh -p 2222 [email protected]
Туннель жұмыс істеп, бәрі сәтсіз болғанда, алдымен клиенттің маршрут кестесін оқыңыз. Бір қызмет сәтсіз болып, қалғандары жұмыс істегенде, ақау сол мақсатта болады. Бұл екі байқау әртүрлі жауаптыларды көрсетеді және оларды араластыру уақытты жоғалтады.
WireGuard та сол шекараны жүргізеді
WireGuard сыртқы тыңдаушысын ListenPort деп атайды, ал ішкі қолданба өзіне қажет кез келген қызмет портын пайдаланады. AllowedIPs бағытталған префикстер жиынтығы, рұқсат етілген қызмет порттарының тізімі емес. Оны порт рұқсаттарының тізімі ретінде оқу туннель жасайтын іске сәйкес келмейтін ережелер жасайды. Атауы басқа; қабаттасу емес.
Қызметті жергілікті кіріс саясатында рұқсат етіңіз, егер ол соңғы нүктенің өзінде жұмыс істесе, немесе қайта бағыттау саясатында, егер ол сол соңғы нүктенің артында орналасса. Бұл айырмашылық қай ереже жиынтығы пакетті көретінін шешеді.
Жалпы пішін — көптеген ішкі әңгімелері бар бір сыртқы тасымал. Бірнеше сыртқы алмасу немесе басқа IP протоколы қажет өнімдер бір ашық порт үлгісі осы дизайнды сипаттайтынын, әр VPN-ді емес екенін еске салады.