Մեկ 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։