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

մինի|port forwarding via NAT router
**Համակարգչային ցանցում պորտի փոխանցում** կամ **պորտի քարտեզագրում** (), ցանցի հասցեների ուղղորդման (NAT) ծրագիր, որը հղում է փոխանցում մեկ հասցեից և պորտի համարի համակցությունից մյուսը։ Այս տեխնիկան առավել հաճախ օգտագործվում է պաշտպանված կամ դիմակավորված (ներքին) ցանցի վրա բնակվող սերվերի վրա ծառայություններ մատուցելու համար՝ դարպասի () հակառակ կողմում (արտաքին ցանց) հակառակորդի վրա, օգտագործելով վերափոխման նպատակակետ 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 սերվեր։ Սերվերը գաղտնագրում է տվյալները, այնուհետև վերահղում այն դեպի նպատակակետ հյուրընկալող և պորտ :

Հրամանի տողի վրա () «-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- երը շրջանցելու համար, ինչպիսիք են կորպորատիվ ցանցերում։

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

## Արտաքին հղումներ
* 
* 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.

Կատեգորիա:Համակարգչային ցանցեր
Կատեգորիա:Տեղեկատվական անվտանգություն