Çfarë ndodh me lidhjet brenda dhe jashtë tunelit VPN

Nga letra në shërbimin e mbështetjes teknike Tucha lindin artikuj të vërtetë. Së fundmi, na kontaktoi një klient me kërkesën për të sqaruar se çfarë ndodh gjatë lidhjeve brenda VPN-tunelit midis zyrës së përdoruesit dhe ambientit në cloud, si dhe gjatë lidhjeve jashtë VPN-tunelit. Prandaj, i gjithë teksti i paraqitur më poshtë është një letër reale që ne i dërguam njërit prej klientëve tanë në përgjigje të pyetjes së tij. Sigurisht, ne e ndryshuam adresën IP për të mos e deanonimizuar klientin. Por, po, shërbimi i mbështetjes teknike Tucha vërtet njihet për përgjigjet e tij të detajuara dhe letra informuese. 🙂

Sigurisht, ne kuptojmë se për shumë njerëz kjo artikull nuk do të jetë një zbulim. Por, duke pasur parasysh se herë pas here në Habr shfaqen artikuj për administratorët e rinj, si dhe në dritën e faktit se ky artikull erdhi nga një letër reale për një klient real, ne sërish do ta ndajmë këtë informacion edhe këtu. Ka një mundësi të madhe që dikujt do t'i jetë i dobishëm.
Prandaj e shpjegojmë në detaje se çfarë ndodh midis serverit në cloud dhe zyrës, nëse ato janë të lidhura me një rrjet site-to-site. Vlen të përmendet se një pjesë e shërbimeve është e disponueshme vetëm nga zyra, ndërsa një pjesë — nga kudo në internet.

Menjëherë shpjegojmë se klienti ynë dëshiron që në serverin 192.168.A.1 të mund të hyjë nga kudo përmes RDP, duke u lidhur me A.A.A.2:13389, ndërsa për shërbimet e tjera — vetëm nga zyrat (192.168.B.0/24), e cila është e lidhur përmes VPN. Po ashtu, klienti kishte fillimisht të konfiguruar që në makinën 192.168.B.2 në zyrë gjithashtu mund të hyhej përmes RDP nga kudo, duke u lidhur me B.B.B.1:11111. Ne ndihmuam në organizimin e lidhjeve IPSec midis cloud-it dhe zyrës, dhe specialisti IT i klientit filloi të bëjë pyetje në lidhje me çfarë do ndodhte në raste të caktuara. Për t'iu përgjigjur të gjitha këtyre pyetjeve, ne, në thelb, i shkruam atij gjithçka që mund të lexoni më poshtë.

Çfarë ndodh me lidhjet brenda dhe jashtë tunelit VPN

Tani le të shqyrtojmë këto procese më në detaje.

Pozita e parë

Kur diçka dërgohet nga 192.168.B.0/24 në 192.168.A.0/24 apo nga 192.168.A.0/24 në 192.168.B.0/24, ajo kalon në VPN. Domethënë, ky paketë shtohet me enkriptim dhe dërgohet midis B.B.B.1 dhe A.A.A.1, por 192.168.A.1 sheh paketën pikërisht nga 192.168.B.1. Ata mund të komunikojnë me njëri-tjetrin për çdo protokoll. Përgjigjet e kundërta po ashtu kalohen përmes VPN, ku ajo paketë nga 192.168.A.1 për 192.168.B.1 do të dërgohet si një datagram ESP nga A.A.A.1 në B.B.B.1, which will be unpacked by the router on that side, retrieving the packet from it and delivering it to 192.168.B.1 as the packet from 192.168.A.1.

A specific example:

1) 192.168.B.1 addresses 192.168.A.1, wants to establish a TCP connection with 192.168.A.1:3389;

2) 192.168.B.1 sends a connection establishment request from 192.168.B.1:55555 (the port number for feedback is chosen by it, here and later we will use the number 55555 as an example of such a port number that the system selects when forming a TCP connection) to 192.168.A.1:3389;

3) the operating system running on the computer with the address 192.168.B.1, decides to pass this packet to the router's gateway address (192.168.B.254 in our case), because there are no other more specific routes for 192.168.A.1, it therefore sends the packet via the default route (0.0.0.0/0);

4) to do this, it tries to find the MAC address for the IP address 192.168.B.254 in the ARP protocol's cache table. If it is not found, it sends a 192.168.B.1 broadcast who-has request to the network 192.168.B.0/24. When 192.168.B.254 in response sends back its MAC address, the system transfers the Ethernet packet to it and adds this information to its cache table;

5) the router receives this packet and decides where to send it: it has a policy indicating that it should forward all packets between 192.168.B.0/24 dhe 192.168.A.0/24 via the VPN connection between B.B.B.1 dhe A.A.A.1;

6) the router forms the ESP datagram from B.B.B.1 në A.A.A.1;

7) the router determines to whom to send this packet, it sends it to, say, B.B.B.254 (the internet provider's gateway), because it doesn't have more specific routes to A.A.A.1, than 0.0.0.0/0;

8) just as previously stated, it finds the MAC address for B.B.B.254 and sends the packet to the internet provider's gateway;

9) internet providers forward the ESP datagram through their networks from B.B.B.1 në A.A.A.1;

10) the virtual router on A.A.A.1 receives this datagram, decrypts it, and gets the packet from 192.168.B.1:55555 për 192.168.A.1:3389;

11) the virtual router checks who to send it to, finds the network in the routing table 192.168.A.0/24 and sends it directly to 192.168.A.1, since it has an interface 192.168.A.254/24;

12) for this, the virtual router finds the MAC address for 192.168.A.1 and sends this packet to it over the virtual Ethernet network;

13) 192.168.A.1 receives this packet on port 3389, agrees to establish a connection, and forms a response packet from 192.168.A.1:3389 në 192.168.B.1:55555;

14) its system sends this packet to the gateway address of the virtual router (192.168.A.254 in our case), because there are no other more specific routes for 192.168.B.1, ajo nuk e ka, pra duhet të dërgojë paketën përmes ruterit të parazgjedhur (0.0.0.0/0);

15) ashtu si në rastet e mëparshme, sistemi që punon në serverin me adresën 192.168.A.1, gjen adresën MAC 192.168.A.254, për shkak se ndodhet në të njëjtin rrjet me ndërfaqen e saj 192.168.A.1/24;

16) ruter virtual pranon këtë paketë dhe vendos se ku ta dërgojë: ka një politikë që e detyron të dërgojë të gjitha paketat midis 192.168.A.0/24 dhe 192.168.B.0/24 via the VPN connection between A.A.A.1 dhe B.B.B.1;

17) ruter virtuali formon një datagram ESP nga A.A.A.1 për B.B.B.1;

18) ruter virtuali vendos se kujt t'i dërgojë këtë paketë, e dërgon tek A.A.A.254 (gateway i ofruesit të shërbimit të internetit, në këtë rast, është gjithashtu ne), sepse nuk ka rute më të veçanta për B.B.B.1, than 0.0.0.0/0;

19) ofruesit e shërbimit të internetit dërgojnë përmes rrjeteve të tyre datagramin ESP A.A.A.1 në B.B.B.1;

20) ruteri në B.B.B.1 receives this datagram, decrypts it, and gets the packet from 192.168.A.1:3389 për 192.168.B.1:55555;

21) ku kupton se duhet ta dërgojë pikërisht në 192.168.B.1, për shkak se ky është në të njëjtin rrjet me të, ndihmon për të dërguar paketat për 192.168.B.0/24 direkt;

22) ruteri gjen adresën MAC për 192.168.B.1 dhe i dërgon kësaj paketë;

23) sistemi operativ në kompjuterin me adresën 192.168.B.1 pranon paketën nga 192.168.A.1:3389 për 192.168.B.1:55555 dhe inicon hapat e mëposhtëm për të vendosur një lidhje TCP.

Në këtë shembull, është përshkruar në mënyrë të përmbledhur dhe të thjeshtë (dhe këtu mund të kujtojmë shumë detaje) se çfarë ndodh në nivelet 2-4. Nivelet 1, 5-7 nuk janë shqyrtuar.

Pozita e dytë

Nëse nga 192.168.B.0/24 diçka dërgohet pikërisht në A.A.A.2, ajo shkon jo në VPN, por direkt. Kështu, nëse përdoruesi me adresë 192.168.B.1 addresses A.A.A.2:13389, kjo paketë dërgohet nga adresa B.B.B.1, kalon në A.A.A.2, dhe atje ruteri e pranon dhe e dërgon në 192.168.A.1. 192.168.A.1 nuk di asgjë për 192.168.B.1, ai sheh paketën nga B.B.B.1, sepse ajo ka ardhur prej saj. Prandaj, përgjigja për këtë kërkesë shkon përmes rrugës së zakonshme, e cila gjithashtu dërgohet nga adresa A.A.A.2 dhe shkon në B.B.B.1, dhe ai ruter e jep këtë përgjigje në 192.168.B.1, ai sheh përgjigjen nga A.A.A.2, për të cilin ai është drejtuar.

A specific example:

1) 192.168.B.1 addresses A.A.A.2, wants to establish a TCP connection with A.A.A.2:13389;

2) 192.168.B.1 sends a connection establishment request from 192.168.B.1:55555 (ky numër, ashtu siç është në shembullin e mëparshëm, mund të jetë tjetër) në A.A.A.2:13389;

3) the operating system running on the computer with the address 192.168.B.1, decides to pass this packet to the router's gateway address (192.168.B.254 in our case), because there are no other more specific routes for A.A.A.2, ajo nuk e ka, dhe kështu, ajo dërgon paketën përmes ruterit të parazgjedhur (0.0.0.0/0);

4) për këtë, siç e përmendëm në shembullin e mëparshëm, përpiqet të gjejë adresën MAC për adresën IP 192.168.B.254 in the ARP protocol's cache table. If it is not found, it sends a 192.168.B.1 broadcast who-has request to the network 192.168.B.0/24. When 192.168.B.254 in response sends back its MAC address, the system transfers the Ethernet packet to it and adds this information to its cache table;

5) ruteri pranon këtë paketë dhe vendos se ku ta dërgojë: ka një politikë që e detyron të dërgojë (duke zëvendësuar adresën e rrethme) të gjitha paketat nga 192.168.B.0/24 tek nodet e tjera të rrjetit të internetit;

6) pasi kjo politikë nënkupton se adresa e kthimit duhet të përputhet me adresën më të ulët në ndërfaqen, përmes së cilës do të transmetohet ky paketë, rrugëzuesi fillimisht përcakton se kujt t'ia dërgojë këtë paketë, dhe ai, ashtu si në shembullin paraardhës, duhet ta dërgojë në B.B.B.254 (the internet provider's gateway), because it doesn't have more specific routes to A.A.A.2, than 0.0.0.0/0;

7) për rrjedhojë, rrugëzuesi ndërron adresën e kthimit të paketës, kështu që tani paketë nga B.B.B.1:44444 (numri i portit, natyrisht, mund të jetë ndryshe) në A.A.A.2:13389;

8) rrugëzuesi mban mend se çfarë ka bërë, kështu që, kur nga A.A.A.2:13389 në B.B.B.1:44444 vjen një përgjigje, do të di se çfarë duhet të ndryshojë adresën dhe portin e marrësit në 192.168.B.1:55555.

9) tani rrugëzuesi duhet ta dërgojë atë te rrjeti i ofruesit të internetit përmes B.B.B.254, për rrjedhojë, ashtu siç përmendëm më parë, ai gjen adresën MAC për B.B.B.254 and sends the packet to the internet provider's gateway;

10) ofruesit e internetit dërgojnë përmes rrjeteve të tyre paketën nga B.B.B.1 në A.A.A.2;

11) rrugëzuesi virtual në A.A.A.2 pranon këtë paketë në portin 13389;

12) në rrugëzuesin virtual ka një rregull, i cili parashikon se paketat që vijnë nga çdo dërgues në këtë port, duhet të dërgohen në 192.168.A.1:3389;

13) rrugëzuesi virtual gjen në tabelën e rrugëzimit rrjetin 192.168.A.0/24 dhe e dërgon direkt në 192.168.A.1, pasi ka një ndërfaqe 192.168.A.254/24;

14) për këtë, rrugëzuesi virtual gjen adresën MAC për 192.168.A.1 and sends this packet to it over the virtual Ethernet network;

15) 192.168.A.1 receives this packet on port 3389, agrees to establish a connection, and forms a response packet from 192.168.A.1:3389 në B.B.B.1:44444;

16) sistemi i tij e dërgon këtë paketë në adresën e portit të rrugëzuesit virtual (192.168.A.254 in our case), because there are no other more specific routes for B.B.B.1, ajo nuk e ka, pra duhet të dërgojë paketën përmes ruterit të parazgjedhur (0.0.0.0/0);

17) ashtu si në rastet e mëparshme, sistemi që funksionon në serverin me adresën 192.168.A.1, gjen adresën MAC 192.168.A.254, për shkak se ndodhet në të njëjtin rrjet me ndërfaqen e saj 192.168.A.1/24;

18) rrugëzuesi virtual e pranon këtë paketë. Duhet theksuar, ai e mban mend se mori në A.A.A.2:13389 paketën nga B.B.B.1:44444 dhe e ndryshoi adresën dhe portin e marrësit në 192.168.A.1:3389, për rrjedhojë, paketës nga 192.168.A.1:3389 për B.B.B.1:44444 ai e ndryshon adresën e dërguesit në A.A.A.2:13389;

19) rrugëzuesi virtual përcakton kujt t'ia dërgojë këtë paketë, ai e dërgon atë në A.A.A.254 (gateway i ofruesit të shërbimit të internetit, në këtë rast, është gjithashtu ne), sepse nuk ka rute më të veçanta për B.B.B.1, than 0.0.0.0/0;

20) ofruesit e internetit dërgojnë përmes rrjeteve të tyre paketën me A.A.A.2 në B.B.B.1;

21) rrugëzuesi në B.B.B.1 pranon këtë paketë dhe kujton se, kur ai dërgoi paketën nga 192.168.B.1:55555 për A.A.A.2:13389, ai ndryshoi adresën dhe portin e dërguesit në B.B.B.1:44444, kështu që kjo është përgjigje që duhet ta dërgojë në 192.168.B.1:55555 (në të vërtetë, aty ekzistojnë edhe disa kontrolle të tjera, por ne nuk e thellojmë në këtë);

22) ai e kupton se duhet ta dërgojë drejtpërdrejt në 192.168.B.1, pasi që ai ndodhet me të në të njëjtin rrjet, për rrjedhojë, ai ka një regjistër përkatës në tabelën e rrugëzimit e cila e detyron të dërgojë paketat për të gjitha 192.168.B.0/24 direkt;

23) routeri gjenon adresën MAC për 192.168.B.1 dhe i dërgon kësaj paketë;

24) sistemi operativ në kompjuterin me adresë 192.168.B.1 pranon paketën nga A.A.A.2:13389 për 192.168.B.1:55555 dhe inicon hapat e mëposhtëm për të vendosur një lidhje TCP.

Duhet të theksohet se në këtë rast kompjuteri me adresën 192.168.B.1 nuk di asgjë për serverin me adresën 192.168.A.1, ai komunikon vetëm me A.A.A.2. Po ashtu serveri me adresën 192.168.A.1 nuk di asgjë për kompjuterin me adresën 192.168.B.1. Ai mendon se iu lidha nga adresa B.B.B.1, dhe më shumë nuk di asgjë, themi, nuk e di.

Gjithashtu duhet të theksohet se në rastin kur ky kompjuter kërkon lidhjen me A.A.A.2:1540, lidhja nuk do të krijohet, sepse kalimi i lidhjeve në portin 1540 nuk është konfiguruar në routerin virtual, edhe nëse ndonjë server në rrjetin virtual 192.168.A.0/24 (p.sh., në serverin me adresë 192.168.A.1) ka ndonjë shërbim që pret lidhje në këtë port. Nëse përdoruesit të kompjuterit me adresë 192.168.B.1 i nevojitet me të vërtetë të vendosë lidhjen me këtë shërbim, ai duhet të përdorë VPN, dmth. të lidhet drejtpërdrejt me 192.168.A.1:1540.

Duhet theksuar se çdo përpjekje për të krijuar lidhje me A.A.A.1 sidoqoftë lidhjet IPSec nga B.B.B.1 nuk do të jetë e suksesshme. Çdo përpjekje për të krijuar lidhje me A.A.A.2, përveç lidhjeve në portin 13389, gjithashtu nuk do të jetë e suksesshme.
Gjithashtu do të theksojmë se nëse dikush tjetër i drejtohet A.A.A.2 p.sh., C.C.C.C, gjithçka që është përmendur në pikat 10-20 do të ketë të bëjë edhe me të. Ajo që ndodh para kësaj dhe pas kësaj varet nga ajo që ndodhet pas C.C.C.C. Ne nuk kemi informacion të tillë, prandaj këshillojmë të kërkoni konsultime nga administratorët e nodës me adresë C.C.C.C.

Pozita e tretë

Dhe, përkundrazi, nëse nga 192.168.A.1 dërgohet ndonjë gjë në një port që është konfiguruar për kalim brenda në B.B.B.1 (p.sh., 11111), kjo gjithashtu nuk kalon në VPN, por thjesht përfundon nga A.A.A.1 dhe shkon në B.B.B.1, dhe ai e dërgon atë diku, të themi, 192.168.B.2:3389. Ai e sheh këtë paketë jo nga 192.168.A.1, por nga A.A.A.1. Dhe, kur 192.168.B.2 përgjigjet, paketa shkon nga B.B.B.1 në A.A.A.1, dhe më vonë arrin te iniciatori i lidhjes — 192.168.A.1.

A specific example:

1) 192.168.A.1 addresses B.B.B.1, wants to establish a TCP connection with B.B.B.1:11111;

2) 192.168.A.1 sends a connection establishment request from 192.168.A.1:55555 (ky numër, ashtu siç është në shembullin e mëparshëm, mund të jetë tjetër) në B.B.B.1:11111;

3) sistemi operativ që punon në serverin me adresë 192.168.A.1, decides to pass this packet to the router's gateway address (192.168.A.254 in our case), because there are no other more specific routes for B.B.B.1, it therefore sends the packet via the default route (0.0.0.0/0);

4) për këtë, siç e përmendëm në shembujt e mëparshëm, ai përpiqet të gjejë adresën MAC për IP adresën 192.168.A.254 in the ARP protocol's cache table. If it is not found, it sends a 192.168.A.1 broadcast who-has request to the network 192.168.A.0/24. When 192.168.A.254 përgjigjet i dërgon adresën e saj MAC, sistemi dërgon paketën Ethernet për të dhe e ruan këtë informacion në tabelën e saj të përkohshme;

5) router virtual pranon këtë paket dhe vendos se ku ta dërgojë: ai ka një politikë të shkruar, sipas së cilës duhet të maskojë (duke ndërruar adresën e prapme) të gjitha paketat nga 192.168.A.0/24 tek nodet e tjera të rrjetit të internetit;

6) pasi kjo politikë parashikon se adresa e prapme duhet të përputhet me adresën më të ulët në ndërfaqen, përmes të cilës do të dërgohet ky paket, router virtual fillimisht vendos se kujt t'ia dërgojë këtë paket, dhe ai, si në shembullin e mëparshëm, duhet ta dërgojë në A.A.A.254 (gateway i ofruesit të shërbimit të internetit, në këtë rast, është gjithashtu ne), sepse nuk ka rute më të veçanta për B.B.B.1, than 0.0.0.0/0;

7) pra, routeri virtual ndërron adresën e prapme të paketës, tani kjo është një paketë nga A.A.A.1:44444 (numri i portit, natyrisht, mund të jetë ndryshe) në B.B.B.1:11111;

8) routeri virtual e mban mend se çfarë ka bërë, kështu që kur nga B.B.B.1:11111 për A.A.A.1:44444 vjen një përgjigje, do të di se çfarë duhet të ndryshojë adresën dhe portin e marrësit në 192.168.A.1:55555.

9) tani routeri virtual duhet ta dërgojë në rrjetin e ofruesit të internetit përmes A.A.A.254, kështu që, ashtu siç e përmendëm më parë, ai gjen adresën MAC për A.A.A.254 and sends the packet to the internet provider's gateway;

10) ofruesit e internetit dërgojnë përmes rrjeteve të tyre paketën nga A.A.A.1 në B.B.B.1;

11) routeri në B.B.B.1 pranon këtë paket në portin 11111;

12) në routerin virtual ka një rregull që parashikon se paketat që vijnë nga një dërgues në këtë port duhet të dërgohen në 192.168.B.2:3389;

13) routeri gjen në tabelën e routing rrjetin 192.168.B.0/24 and sends it directly to 192.168.B.2, since it has an interface 192.168.B.254/24;

14) për këtë, rrugëzuesi virtual gjen adresën MAC për 192.168.B.2 and sends this packet to it over the virtual Ethernet network;

15) 192.168.B.2 receives this packet on port 3389, agrees to establish a connection, and forms a response packet from 192.168.B.2:3389 në A.A.A.1:44444;

16) sistemi i tij transmeton këtë paket në adresën gateway të routerit (192.168.B.254 in our case), because there are no other more specific routes for A.A.A.1, ajo nuk e ka, pra duhet të dërgojë paketën përmes ruterit të parazgjedhur (0.0.0.0/0);

17) po ashtu si në rastet e mëparshme, sistemi që punon në kompjuterin me adresën 192.168.B.2, gjen adresën MAC 192.168.B.254, për shkak se ndodhet në të njëjtin rrjet me ndërfaqen e saj 192.168.B.2/24;

18) routeri pranon këtë paket. Duhet të theksohet, ai e mban mend se mori në B.B.B.1:11111 paketën nga A.A.A.1 dhe e ndryshoi adresën dhe portin e marrësit në 192.168.B.2:3389, për rrjedhojë, paketës nga 192.168.B.2:3389 për A.A.A.1:44444 ai e ndryshon adresën e dërguesit në B.B.B.1:11111;

19) routeri vendos kujt t'ia dërgojë këtë paket. Ai e dërgon atë në, le themi, B.B.B.254 (gateway të ofruesit të internetit, adresën e saktë të së cilës nuk e dimë), sepse nuk ka rrugë më të sakta drejt A.A.A.1, than 0.0.0.0/0;

20) ofruesit e internetit dërgojnë përmes rrjeteve të tyre paketën me B.B.B.1 në A.A.A.1;

21) routeri virtual në A.A.A.1 pranon këtë paketë dhe kujton se, kur ai dërgoi paketën nga 192.168.A.1:55555 për B.B.B.1:11111, ai ndryshoi adresën dhe portin e dërguesit në A.A.A.1:44444. Kështu, kjo është një përgjigje që duhet të dërgohet në 192.168.A.1:55555 (në të vërtetë, siç e përmendëm në shembullin e mëparshëm, ka edhe disa verifikime të tjera, por këtë herë ne nuk merremi me to);

22) ai kupton se duhet ta dërgojë drejtpërdrejt në 192.168.A.1, pasi ai ndodhet në të njëjtin rrjet me të, kështu që ai ka një regjistrim përkatës në tabelën e routing, që e detyron ta dërgojë paketat për të gjithë 192.168.A.0/24 direkt;

23) routeri gjenon adresën MAC për 192.168.A.1 dhe i dërgon kësaj paketë;

24) sistemi operativ në serverin me adresën 192.168.A.1 pranon paketën nga B.B.B.1:11111 për 192.168.A.1:55555 dhe inicon hapat e mëposhtëm për të vendosur një lidhje TCP.

Ashtu si në rastin e mëparshëm, në këtë rast serveri me adresën 192.168.A.1 nuk di asgjë për kompjuterin me adresën 192.168.B.1, ai komunikon vetëm me B.B.B.1. Kompjuterin me adresën 192.168.B.1 as nuk e di për serverin me adresën 192.168.A.1. Ai mendon se iu lidha nga adresa A.A.A.1, ndërsa e gjithë pjesa tjetër është e fshehur prej tij.

Përfundimi

Kështu ndodhin të gjitha lidhjet brenda tunelit VPN mes zyrës së klientit dhe mjedisit në re, si dhe lidhjet jashtë tunelit VPN. Nëse keni ndonjë pyetje ose keni nevojë për ndihmën tonë për zgjidhjen e problemeve në re, mos hezitoni të kontaktoni 24/7.

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster