Համակարգչային ցանցում պորտի փոխանցում

Համակարգչային ցանցում պորտի փոխանցում կամ պորտի քարտեզագրում (անգլ.՝ Editing Port Forwarding), ցանցի հասցեների ուղղորդման (NAT) ծրագիր, որը հղում է փոխանցում մեկ հասցեից և պորտի համարի համակցությունից մյուսը։ Այս տեխնիկան առավել հաճախ օգտագործվում է պաշտպանված կամ դիմակավորված (ներքին) ցանցի վրա բնակվող սերվերի վրա ծառայություններ մատուցելու համար՝ դարպասի (անգլ.՝ Gateway) հակառակ կողմում (արտաքին ցանց) հակառակորդի վրա, օգտագործելով վերափոխման նպատակակետ IP հասցեն և կապի համարը ներքին հաղորդավար։


== Նպատակ ==
Պորտի փոխանցումը հնարավորություն է տալիս ցանցից դուրս համակարգիչներին (օրինակ ՝ համակարգիչներ ինտերնետում) միանալ հատուկ համակարգչին կամ ծառայությանը մասնավոր տեղական տարածքային ցանցում (LAN):
Սովորական լոկալ ցանցում հանգույցները ինտերնետ են ստանում DSL- ի կամ մալուխային մոդեմի միջոցով, որը միացված է երթուղիչին կամ ցանցի հասցեների թարգմանիչին (NAT / NAPT): Մասնավոր ցանցում հաղորդավարները միացված են Ethernet անջատիչին կամ հաղորդակցվում են անլար ցանցի միջոցով։ NAT սարքի արտաքին ինտերֆեյսը կարգավորված է հանրային IP հասցեի միջոցով։ Մյուս կողմից, երթուղիչի հետևում գտնվող համակարգիչները անտեսանելի են ինտերնետում հաղորդավարների համար, քանի որ յուրաքանչյուրը շփվում է միայն անձնական IP հասցեի միջոցով։
Պորտի փոխանցումը կարգավորելիս ցանցի կառավարիչը առանձնացնում է մեկ պորտի համարը դարպասի(gateway) վրա `մասնավոր ցանցում ծառայության հետ հաղորդակցվելու բացառիկ օգտագործման համար, որը գտնվում է հատուկ սերվերի վրա։ Արտաքին հաղորդիչները պետք է իմանան այս նավահանգստի համարը և դարպասի հասցեն ՝ ցանցային ներքին ծառայության հետ շփվելու համար։ Հաճախ, հայտնի ինտերնետային ծառայությունների պորտային համարները, ինչպիսիք են 80-րդ պորտը վեբ ծառայությունների համար (HTTP), օգտագործվում են պորտի փոխանցման մեջ, այնպես որ ընդհանուր ինտերնետային ծառայությունները կարող են իրականացվել մասնավոր ցանցերում հաղորդավարների վրա։
Բնորոշ ծրագրերը ներառում են հետևյալը.

Հասարակ HTTP սերվերի վարում մասնավոր LAN- ում
Secure Shell ից թույլատրել մասնավոր հաղորդավարին մուտքը Ինտերնետից
Թույլատրել FTP մասնավոր ցանցի վրա հաղորդավարին մուտքը Ինտերնետից
Առանձնակի LAN- ի ներսում հանրային մատչելի խաղի սերվերի վարումԱդմինիստրատորները կարգավորում են պորտը դեպի դարպասի գործավար համակարգ։ Linux- ի միջուկներում դա ձեռք է բերվում փաթեթային ֆիլտրի կանոններով iptables կամ netfilter միջուկի բաղադրամասերում։ BSD և macOS գործառնական համակարգերը նախքան Yosemite- ը (OS 10.10.X) իրականացնում են այն Ipfirewall (ipfw) մոդուլում, մինչդեռ MacOS գործող համակարգերը, որոնք սկսվում են Yosemite- ով, այն իրականացնում են Packet Filter (pf) մոդուլում։
Երբ օգտագործվում է դարպասի սարքերում, պորտը կարող է իրականացվել մեկ կանոնով `նպատակակետային հասցեն և պորտըը թարգմանելու համար։ (Linux միջուկի վրա, սա DNAT կանոն է)։ Աղբյուրի հասցեն և պորտըը, այս դեպքում, մնում են անփոփոխ։ Երբ օգտագործվում է այն սարքերի վրա, որոնք ցանցի լռելյայն դարպաս չեն հանդիսանում, սկզբնաղբյուրը պետք է փոխվի, որպեսզի թարգմանիչ մեքենայի հասցեն լինի, կամ փաթեթները շրջանցեն թարգմանիչը, և կապը ձախողվի։
Երբ պորտը ուղղորդումը իրականացվում է proxy process- ով(օրինակ ՝ կիրառական շերտի firewall- ների, SOCKS վրա հիմնված firewall- ների կամ TCP միացման միջոցով), ապա ոչ մի փաթեթ իրականում չի թարգմանվում, միայն տվյալները վստահված են։ Դա սովորաբար հանգեցնում է, որ աղբյուրի հասցեն (և պորտի համարը) փոխվում է վստահված մեքենայի հասցեին։
Սովորաբար մասնավոր host-երից միայն մեկը կարող է միանգամից օգտագործել որոշակի փոխանցված պորտ, բայց կարգավորումը երբեմն հնարավոր է տարբերակել մուտքը սկզբնաղբյուրի կողմից։
Unix-ի նման գործող համակարգերը երբեմն օգտագործում են պորտերի փոխանցում, որտեղ 1024-ից փոքր նավահանգստի համարները կարող են ստեղծվել միայն որպես արմատային օգտագործող ծրագրային ապահովման միջոցով։ Superuser արտոնյալներով վազելը (պորտըը կապելու համար) կարող է անվտանգության ռիսկ հանդիսանալ հյուրընկալողի համար, հետևաբար նավահանգստի փոխանցումն օգտագործվում է ցածր համարակալված պորտը մեկ այլ բարձր համարակալված նավահանգստի վերահղման համար, այնպես որ այդ ծրագրային ծրագիրը կարող է գործել որպես ընդհանուր գործող նվազեցված արտոնություններով համակարգի օգտագործող։
Universal Plug and Play արձանագրություն (UPnP) ապահովում է առանձնահատկություն `բնակելի ինտերնետ դարպասներում ավտոմատ տեղադրելու պորտերի օրինակներ։ UPnP- ն սահմանում է Internet Gateway Device Protocol (IGD), որը ցանցային ծառայություն է, որով Ինտերնետային դարպասը գովազդում է իր ներկայությունը մասնավոր ցանցում Simple Service Discovery Protocol (SSDP) միջոցով։ Ծրագիր, որն ապահովում է ինտերնետի վրա հիմնված ծառայությունը, կարող է հայտնաբերել այդպիսի դարպասներ և օգտագործել UPnP IGD արձանագրություն ՝ դարպասի վրա պահելու համար նավահանգստի համարը և դարպասապահին առաջացնում է փաթեթներ փոխանցել իր ունկնդրին։


== Պորտի փոխանցման տեսակներ ==
Պորտի փոխանցումը կարելի է բաժանել հետևյալ հատուկ տեսակների ՝ տեղական, հեռավոր և դինամիկ պորտերի վերահասցեավորում :


=== Տեղական պորտի ուղարկում ===
Տեղական պորտի առաքումը պորտի ամենատարածված տեսակն է։ Այն օգտագործվում է թույլ տալու համար, որ օգտագործողը տեղական համակարգչից կապի մեկ այլ սերվերի հետ կապի միջոցով, այսինքն `փոխանցի տվյալները անվտանգ մեկ այլ հաճախորդի ծրագրից, որն աշխատում է նույն համակարգչում, որպես Secure Shell (SSH) հաճախորդ։ Տեղական պորտերի փոխանցմամբ օգտագործելով, որոշ վեբ էջեր արգելող firewall- ները կարող են շրջանցվել :
SSH հաճախորդի միացումները փոխանցվում են, SSH սերվերի միջոցով, նախատեսված նպատակակետային սերվերին։ SSH սերվերը կազմաձևված է, որպեսզի տվյալ պորտից տվյալները վերափոխի (որը տեղական է հյուրընկալողին, որը վարում է SSH հաճախորդը) ապահով թունելի միջոցով որոշակի նշված նպատակակետային հյուրընկալողի և պորտի միջոցով։ Տեղական պորտը նույն համակարգչում է, ինչ SSH հաճախորդը, և այս պորտը «փոխանցվող պորտն» է։ Միևնույն համակարգչի վրա ցանկացած հաճախորդ, որը ցանկանում է միանալ նույն նշանակման հյուրընկալողին և պորտին, կարող է կազմաձևվել `փոխանցված պորտին միանալու համար (այլ ոչ թե ուղղակիորեն դեպի նշանակման սերվերը և պորտը)։ Այս կապի հաստատումից հետո SSH հաճախորդը լսում է փոխանցված պորտում և դիմումներով ուղարկված բոլոր տվյալներն ուղղում դեպի այդ պորտ ՝ ապահով թունելի միջոցով դեպի SSH սերվեր։ Սերվերը գաղտնագրում է տվյալները, այնուհետև վերահղում այն ​​դեպի նպատակակետ հյուրընկալող և պորտ :
Հրամանի տողի վրա (անգլ.՝ Command Line (cmd)) «-L» - ը նշում է տեղական պորտի փոխանցումը։ Տեղադրման սերվերը և երկու պորտային համարները պետք է ներառվեն։ 1024-ից պակաս կամ 49150-ից ավելի պորտային համարները վերապահված են համակարգին։ Որոշ ծրագրեր կաշխատեն միայն հատուկ աղբյուրի պորտերով, բայց մեծ մասի համար հնարավոր է օգտագործել ցանկացած աղբյուրի պորտի համարը։


=== Տեղական պորտի փոխանցում ===
Օգտագործելով տեղական պորտի փոխանցումը ՝ փոստ ստանալու համար
Միացրեք նոութբուքից մի կայք `SSH թունելի միջոցով։


=== Հեռակառավարման պորտի փոխանցում ===
Պորտի փոխանցման այս ձևը հնարավորություն է տալիս կիրառել անվտանգ ցանցի (SSH) կապի սերվերի կողմից SSH- ի հաճախորդի կողմից բնակվող ծառայություններ մուտք գործելու ծառայություններ : Բացի SSH- ից, կան նաև անհատական ​​թունելային սխեմաներ, որոնք օգտագործում են հեռավոր(remote) պորտի վերահասցեագրումը նույն ընդհանուր նպատակներով : Այլ կերպ ասած, հեռավոր պորտի փոխանցումը թույլ է տալիս օգտվողներին միանալ թունելի, SSH- ի կամ այլի սերվերի կողմը դեպի հեռավոր ցանցային ծառայություն, որը գտնվում է թունելի հաճախորդի կողմում։
Հեռավոր(remote) պորտի վերահասցեավորումն օգտագործելու համար պետք է հայտնի լինեն նշանակման սերվերի հասցեն (թունելի հաճախորդի կողմում) և երկու պորտերի համարները։ Ընտրված պորտերի համարները կախված են այն բանից, թե որ ծրագիրը պետք է օգտագործվի։
Հեռակառավարման պորտի փոխանցումը թույլ է տալիս այլ համակարգիչներ մուտք գործել հեռավոր սերվերների վրա հյուրընկալված ծրագրեր։ Երկու օրինակ.

Ընկերության աշխատողն իր տանը հյուրընկալում է FTP սերվեր և ցանկանում է մուտք գործել FTP ծառայություն աշխատավայրում համակարգիչների միանալու համար։ Դա անելու համար աշխատողը կարող է SSH- ի միջոցով հեռավոր պորտ փոխանցել ընկերության ներքին համակարգիչներին ՝ ներառելով նրանց FTP սերվերի հասցեն և օգտագործելով FTP- ի ճիշտ պորտային համարները (ստանդարտ FTP պորտը TCP / 21 է)
Հեռավոր աշխատասեղանի սեսիաների բացումը հեռավոր պորտի փոխանցման սովորական կիրառում է։ SSH- ի միջոցով դա հնարավոր է իրականացնել `բացելով վիրտուալ ցանցի հաշվարկային պորտը (5900) և ներառելով նպատակակետ համակարգչի հասցեն :


=== Դինամիկ պորտի փոխանցում ===
Դինամիկ պորտի փոխանցումը (DPF) firewall- ի կամ NAT- ի անցման պահանջարկային եղանակ է `firewall- ի անցքերի օգտագործմամբ։ Նպատակը հնարավորություն է տալիս հաճախորդներին ապահով կերպով միանալ վստահելի սերվերին, որը հանդես է գալիս որպես միջնորդ ՝ մեկ կամ մի քանի նպատակակետային սերվերներ տվյալներ ուղարկելու / ստանալու նպատակով :
DPF-ն կարող է իրականացվել `տեղադրելով տեղական դիմում, ինչպիսին է SSH- ը, որպես SOCKS վստահված սերվեր, որը կարող է օգտագործվել ցանցի կամ Ինտերնետի միջոցով տվյալների փոխանցումը մշակելու համար։ Ծրագրերը, ինչպիսիք են վեբ զննարկիչները, պետք է կազմաձևվեն անհատական ​​կարգով `վստահված անձի միջոցով երթևեկությունը ուղղելու համար, որը հանդես է գալիս որպես անվտանգ թունելի մեկ այլ սերվերի։ Երբ վստահված անձին այլևս անհրաժեշտ չէ, ծրագրերը պետք է կազմաձևվեն իրենց բնօրինակ պարամետրերին։ DPF- ի ձեռնարկի պահանջների պատճառով, այն հաճախ չի օգտագործվում։
Կապը հաստատվելուց հետո, DPF- ն կարող է օգտագործվել ՝ անվստահելի ցանցին միացված օգտագործողի համար լրացուցիչ անվտանգություն ապահովելու համար։ Քանի որ տվյալները պետք է անցնեն անվտանգ թունելի միջոցով մեկ այլ սերվերի նախքան իր նախնական նպատակակետին ուղարկվելը, օգտագործողը պաշտպանված է փաթեթային խայթոցից, որը կարող է տեղի ունենալ LAN- ում։
DPF-ն հզոր գործիք է`օգտագործելու շատ տարբերակներ; Օրինակ, սուրճ խանութի, հյուրանոցի կամ այլ կերպ նվազագույն անվտանգ ցանցի միջոցով ինտերնետին միացած օգտագործողը կարող է ցանկանալ օգտագործել DPF-ը՝ որպես տվյալների պաշտպանության միջոց։ DPF- ն կարող է օգտագործվել նաև արտաքին պատուհաններ մուտք սահմանափող firewall- երը շրջանցելու համար, ինչպիսիք են կորպորատիվ ցանցերում։


== Ծանոթագրություններ ==


== Արտաքին հղումներ ==
Alan Stafford։ «Warp Speed Web Access: Sharing the Bandwidth»։ PC World։ Արխիվացված է օրիգինալից 2008-03-18-ին։ Վերցված է 2008-10-11 
Using UPnP for Programmatic Port Forwardings and NAT Traversal Free software which uses UPnP and the Internet Gateway Device Protocol (IGD) to automate port forwarding
TCP forwarding source code in C# Source code in C# explaining/PoC TCP forwarding.
Open.NAT Lightweight and easy-to-use .NET class library to allow port forwarding in NAT devices that support UPNP and PMP.