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

Վիքիպեդիայից՝ ազատ հանրագիտարանից
port forwarding via NAT router

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

Նպատակ[խմբագրել | խմբագրել կոդը]

Պորտի փոխանցումը հնարավորություն է տալիս ցանցից դուրս համակարգիչներին (օրինակ ՝ համակարգիչներ ինտերնետում) միանալ հատուկ համակարգչին կամ ծառայությանը մասնավոր տեղական տարածքային ցանցում (LAN)[3]:

Սովորական լոկալ ցանցում հանգույցները ինտերնետ են ստանում 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 արձանագրություն ՝ դարպասի վրա պահելու համար նավահանգստի համարը և դարպասապահին առաջացնում է փաթեթներ փոխանցել իր ունկնդրին։

Պորտի փոխանցման տեսակներ[խմբագրել | խմբագրել կոդը]

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

Տեղական պորտի ուղարկում[խմբագրել | խմբագրել կոդը]

Տեղական պորտի առաքումը պորտի ամենատարածված տեսակն է։ Այն օգտագործվում է թույլ տալու համար, որ օգտագործողը տեղական համակարգչից կապի մեկ այլ սերվերի հետ կապի միջոցով, այսինքն `փոխանցի տվյալները անվտանգ մեկ այլ հաճախորդի ծրագրից, որն աշխատում է նույն համակարգչում, որպես Secure Shell (SSH) հաճախորդ։ Տեղական պորտերի փոխանցմամբ օգտագործելով, որոշ վեբ էջեր արգելող firewall- ները կարող են շրջանցվել[5] :

SSH հաճախորդի միացումները փոխանցվում են, SSH սերվերի միջոցով, նախատեսված նպատակակետային սերվերին։ SSH սերվերը կազմաձևված է, որպեսզի տվյալ պորտից տվյալները վերափոխի (որը տեղական է հյուրընկալողին, որը վարում է SSH հաճախորդը) ապահով թունելի միջոցով որոշակի նշված նպատակակետային հյուրընկալողի և պորտի միջոցով։ Տեղական պորտը նույն համակարգչում է, ինչ SSH հաճախորդը, և այս պորտը «փոխանցվող պորտն» է։ Միևնույն համակարգչի վրա ցանկացած հաճախորդ, որը ցանկանում է միանալ նույն նշանակման հյուրընկալողին և պորտին, կարող է կազմաձևվել `փոխանցված պորտին միանալու համար (այլ ոչ թե ուղղակիորեն դեպի նշանակման սերվերը և պորտը)։ Այս կապի հաստատումից հետո SSH հաճախորդը լսում է փոխանցված պորտում և դիմումներով ուղարկված բոլոր տվյալներն ուղղում դեպի այդ պորտ ՝ ապահով թունելի միջոցով դեպի SSH սերվեր։ Սերվերը գաղտնագրում է տվյալները, այնուհետև վերահղում այն դեպի նպատակակետ հյուրընկալող և պորտ[6] :

Հրամանի տողի վրա (անգլ.՝ Command Line (cmd)) «-L» - ը նշում է տեղական պորտի փոխանցումը։ Տեղադրման սերվերը և երկու պորտային համարները պետք է ներառվեն։ 1024-ից պակաս կամ 49150-ից ավելի պորտային համարները վերապահված են համակարգին։ Որոշ ծրագրեր կաշխատեն միայն հատուկ աղբյուրի պորտերով, բայց մեծ մասի համար հնարավոր է օգտագործել ցանկացած աղբյուրի պորտի համարը։

Տեղական պորտի փոխանցում[խմբագրել | խմբագրել կոդը]

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

Հեռակառավարման պորտի փոխանցում[խմբագրել | խմբագրել կոդը]

Պորտի փոխանցման այս ձևը հնարավորություն է տալիս կիրառել անվտանգ ցանցի (SSH) կապի սերվերի կողմից SSH- ի հաճախորդի կողմից բնակվող ծառայություններ մուտք գործելու ծառայություններ[8]։ Բացի SSH- ից, կան նաև անհատական թունելային սխեմաներ, որոնք օգտագործում են հեռավոր(remote) պորտի վերահասցեագրումը նույն ընդհանուր նպատակներով[9] : Այլ կերպ ասած, հեռավոր պորտի փոխանցումը թույլ է տալիս օգտվողներին միանալ թունելի, SSH- ի կամ այլի սերվերի կողմը դեպի հեռավոր ցանցային ծառայություն, որը գտնվում է թունելի հաճախորդի կողմում։

Հեռավոր(remote) պորտի վերահասցեավորումն օգտագործելու համար պետք է հայտնի լինեն նշանակման սերվերի հասցեն (թունելի հաճախորդի կողմում) և երկու պորտերի համարները։ Ընտրված պորտերի համարները կախված են այն բանից, թե որ ծրագիրը պետք է օգտագործվի։

Հեռակառավարման պորտի փոխանցումը թույլ է տալիս այլ համակարգիչներ մուտք գործել հեռավոր սերվերների վրա հյուրընկալված ծրագրեր։ Երկու օրինակ.

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

Դինամիկ պորտի փոխանցում[խմբագրել | խմբագրել կոդը]

Դինամիկ պորտի փոխանցումը (DPF) firewall- ի կամ NAT- ի անցման պահանջարկային եղանակ է `firewall- ի անցքերի օգտագործմամբ։ Նպատակը հնարավորություն է տալիս հաճախորդներին ապահով կերպով միանալ վստահելի սերվերին, որը հանդես է գալիս որպես միջնորդ ՝ մեկ կամ մի քանի նպատակակետային սերվերներ տվյալներ ուղարկելու / ստանալու նպատակով[6] :

DPF-ն կարող է իրականացվել `տեղադրելով տեղական դիմում, ինչպիսին է SSH- ը, որպես SOCKS վստահված սերվեր, որը կարող է օգտագործվել ցանցի կամ Ինտերնետի միջոցով տվյալների փոխանցումը մշակելու համար։ Ծրագրերը, ինչպիսիք են վեբ զննարկիչները, պետք է կազմաձևվեն անհատական կարգով `վստահված անձի միջոցով երթևեկությունը ուղղելու համար, որը հանդես է գալիս որպես անվտանգ թունելի մեկ այլ սերվերի։ Երբ վստահված անձին այլևս անհրաժեշտ չէ, ծրագրերը պետք է կազմաձևվեն իրենց բնօրինակ պարամետրերին։ DPF- ի ձեռնարկի պահանջների պատճառով, այն հաճախ չի օգտագործվում[6]։

Կապը հաստատվելուց հետո, DPF- ն կարող է օգտագործվել ՝ անվստահելի ցանցին միացված օգտագործողի համար լրացուցիչ անվտանգություն ապահովելու համար։ Քանի որ տվյալները պետք է անցնեն անվտանգ թունելի միջոցով մեկ այլ սերվերի նախքան իր նախնական նպատակակետին ուղարկվելը, օգտագործողը պաշտպանված է փաթեթային խայթոցից, որը կարող է տեղի ունենալ LAN- ում[11]։

DPF-ն հզոր գործիք է`օգտագործելու շատ տարբերակներ; Օրինակ, սուրճ խանութի, հյուրանոցի կամ այլ կերպ նվազագույն անվտանգ ցանցի միջոցով ինտերնետին միացած օգտագործողը կարող է ցանկանալ օգտագործել DPF-ը՝ որպես տվյալների պաշտպանության միջոց։ DPF- ն կարող է օգտագործվել նաև արտաքին պատուհաններ մուտք սահմանափող firewall- երը շրջանցելու համար, ինչպիսիք են կորպորատիվ ցանցերում։

Ծանոթագրություններ[խմբագրել | խմբագրել կոդը]

  1. «Definition of: port forwarding»։ PC Magazine։ Արխիվացված է օրիգինալից 2012-06-03-ին։ Վերցված է 2008-10-11 
  2. Rory Krause։ «Using ssh Port Forwarding to Print at Remote Locations»։ Linux Journal։ Վերցված է 2008-10-11 
  3. Jeff "Crash" Goldin։ «How to set up a home web server»։ Red Hat։ Վերցված է 2008-10-11 
  4. OpenSSH Port forwarding
  5. «Local and Remote Port Forwarding and the Reflection for Secure IT Client 7.1 or Higher - Tech Note 2433»։ Support.attachmate.com։ 2012-11-09։ Վերցված է 2014-01-30 
  6. 6,0 6,1 6,2 6,3 «SSH/OpenSSH/PortForwarding - Community Ubuntu Documentation»։ Help.ubuntu.com։ 2013-12-13։ Վերցված է 2014-01-30 
  7. «Local and Remote Port Forwarding and the Reflection for Secure IT Client 7.1 or Higher - Tech Note 2433»։ Support.attachmate.com։ 2012-11-09։ Վերցված է 2014-01-30 
  8. Tunneling with Secure Shell
  9. «Local versus Remote Port Forwarding»։ NetworkActiv։ Արխիվացված է օրիգինալից 2016-11-04-ին։ Վերցված է հունիսի 8, 2014 
  10. «FTP Port Number 21 - Port 21 TCP»։ Compnetworking.about.com։ 2013-12-19։ Արխիվացված է օրիգինալից 2014-02-03-ին։ Վերցված է 2014-01-30 
  11. «SSH Dynamic Port Forwarding (Hacking Illustrated Series InfoSec Tutorial Videos)»։ Irongeek.com։ Վերցված է 2014-01-30 

Արտաքին հղումներ[խմբագրել | խմբագրել կոդը]