VPN: wormholes through the fabric of internet

…iliti kako “otključati” Fejsbuk na poslu ? … a ukoliko sadašnja srpska elita nastavi istim kursom erdogenizacije, ova tehnika može zgodno da posluži u svrhu otključavanja twitera, fb i nekih drugih servisa koji mogu doći pod udar cenzure.

Šta hoću reći… jako korisna stvar koja može da posluži da rešite neke probleme koji niste ni bili svesni da postoje niti ste bili u mogućnosti da ih tačno formulišete :). VPN je meni bio poprilično dugo problematičan koncept za razumeti. Prvenstveno, pored teorijskog uvoda, potrebno je imati pristup nekakvoj infrastrukturi koja bi omogućila vežbanje i eksperimentisanje nad pojedinim rešenjima. Moguće je, slepo prateći uputstva na internetu, naterati određene aplikacije da prorade bez mnogo razumevanja šta se dešava ispod haube. Koristeći Hamachi, TeamViewer i slične aplikacije, moguće je na relativno jednostavno uspostaviti remote desktop connection, odigrati mrežnu igricu sa društvom, pristupiti deljenim folderima na udaljenom kompjuteru, koristiti komercijalni VPN servis za “skrivanje” na internetu a sve to bez potrebe da se preterano razmišlja šta se dešava iza scene, gde to paketi podataka idu i kako koji računar zna gde se šta nalazi i kako čemu pristupiti. Ovde ćemo probati da bacimo malo više svetla na sam koncept u sferi utvrđivanja šta je moguće ostvariti koristeći VPN.

Teorija kaže – “Virtuelna privatna mreža (Virtual Private Network – VPN) je privatna komunikaciona mreža koja se koristi za komunikaciju u okviru javne mreže. Transport VPN paketa podataka odvija se preko javne mreže (npr. Internet) korišćenjem standardnih komunikacionih protokola.” https://sh.wikipedia.org/wiki/Virtuelna_privatna_mreža

pufff

Meni je za početak razumevanja ovoga gore napisanog, bila bitno da pronađem način da celu stvar vizualizujem. I onda se desi slika sa crvotočinama. I to ona iz naučne fantastike – “zvezdane kapije” koje omogućavaju prelazak ogromnih razdaljina jednim korakom. Tuneli kroz zakrivljenje prostor-vremena koji omogućavaju da se dve prostorno udaljene oblasti “privuku” i dodirnu u jednoj tački. Odjednom svetovi udaljeni stotinama i hiljadama svetlosnih godina se nađu tik jedan do drugog i spojeni u jednom prolazu. Odjednom se u zatvorenoj prostoriji pojave još jedna vrata koja vode u neki daleki prostor. Odjednom postoji portal (interfejs) ka tunelu između dve udaljene mreže koji omogućava da računari locirani u različitim mrežama komuniciraju između sebe kao da su deo jedne iste mreže i da su konektovani na jedan isti ruter.

Šta su interfejsi? Svaki uređaj koji pristupa nekoj mreži pristupa preko nečega što mi zovemo mrežni interfejs. Interfejs ima fizičku komponentu, fizičku adresu i logičku adresu. Ovo je u teoriji mreža detaljisano u tzv. OSI modelu ( https://sh.wikipedia.org/wiki/OSI_model). Nekako se u početku ne nameće potreba da razdvajanjem ovih komponenti tj. nekako logično da sve bude 1 na 1. Imamo mrežnu kartu (fizička komponenta) koja ima MAC adresu (hardverska adresa) koja ima dodeljenu IP adresu (logička adresa). Ono što je bitno da se shvati je da ovo ne mora nužno biti ustrojeno samo na ovakav način. Na nekom sistemu moguće je imati logičke interfejse koji nisu vezani ni sa jednim fizičkim uređajem. Ovu mogućnost iskorišćava VPN za svoje funkcionisanje. Na sistemu koji učestvuje u kreiranju VPN veze, prilikom konfiguracije kreira se dodatni logički interfejs koji se koristi za uspostavljanje veze i komunikaciju. Kada se tunel uspostavi i kreira VPN veza između dve lokacije, sistem na kojem je veza uspostavljena mrežne interfejse koji su mu dostupni (npr. LAN kartica i VPN interfejs) vidi apsolutno ravnopravno.

Izlaz IPCONFIG -ALL komande na ovom sistemu izgleda ovako:

Iz ovoga gore se može zaključiti da sistem ima jedan fizički mrežni interfejs sa adresom 192.168.1.6 i da ima uspostavljen VPN tunel i interfejs preko koga je uspostavljena ova veza sa adresom 10.8.0.6

Da bi se ustanovio poredak koji određuje koji saobraćaj ide po kom od ova dva interfejsa, na sistemu postoji nešto što se zove „routing table“ . Na ovom sistemu konkretno ona izgleda ovako

C:\Users\xxx>route print

===========================================================================

Interface List

 19...74 d4 35 91 fd 3e ......Realtek PCIe GBE Family Controller

 20...00 ff df 23 5d 04 ......TAP-Windows Adapter V9

  1...........................Software Loopback Interface 1

 21...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface

 15...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3

 13...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #5

===========================================================================




IPv4 Route Table

===========================================================================

Active Routes:

Network Destination        Netmask          Gateway       Interface  Metric

          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.6    291

         10.8.0.0    255.255.255.0         10.8.0.5         10.8.0.6    291

         10.8.0.4  255.255.255.252         On-link          10.8.0.6    291

         10.8.0.6  255.255.255.255         On-link          10.8.0.6    291

         10.8.0.7  255.255.255.255         On-link          10.8.0.6    291

      10.187.20.0    255.255.255.0         10.8.0.5         10.8.0.6    291

        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331

        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331

  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331

      192.168.1.0    255.255.255.0         On-link       192.168.1.6    291

      192.168.1.6  255.255.255.255         On-link       192.168.1.6    291

    192.168.1.255  255.255.255.255         On-link       192.168.1.6    291

        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331

        224.0.0.0        240.0.0.0         On-link          10.8.0.6    291

        224.0.0.0        240.0.0.0         On-link       192.168.1.6    291

  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331

  255.255.255.255  255.255.255.255         On-link          10.8.0.6    291

  255.255.255.255  255.255.255.255         On-link       192.168.1.6    291

===========================================================================

Persistent Routes:

  Network Address          Netmask  Gateway Address  Metric

          0.0.0.0          0.0.0.0      192.168.1.1  Default

===========================================================================

Mehanika određivanja gde koji paketić podataka se usmerava na način da se adresa na koju se paket šalje, proverava u ovoj gornjoj tabeli „odozdo na gore“ – ova pravila su poređana od preciznijih (konkretnih) ka opštijim. Preciznost, tj. opseg adresa koji je obuhvaćen nekim pojedinačnim pravilom određuje Netmask. Konkretno kombinacija Adresa i Netmask 10.187.20.0 i 255.255.255.0 obuhvata 254 adrese od 10.187.20.1 do 10.187.20.254. Pravilo 0.0.0.0. u kombinaciji sa maskom 0.0.0.0. obuhvata sve moguće IP adrese koje se mogu naći na internetu. Prvo pravilo (odozdo na gore) koje zadovoljava uslove zadate u zaglavlju TCP paketa, ono se primenjuje. Npr. u ovom slučaju uspostavljen je VPN tunel prema mreži koja koristi opseg adresa 10.187.20.0. ako pokušamo da pristupimo nekom računaru u toj mreži (npr. 10.187.20.122), gornja tabela će odrediti da se taj paket pošalje prema interfejsu 10.187.0.6 što je pravac uspostavljenog VPN tunela. Ukoliko se pokušava pristupiti npr. Google servisima na adresi 172.217.20.196 koje nema posebno definisane negde u ovoj tabeli, paket će biti poslat shodno najopštijem pravilu 0.0.0.0 tj. prema podrazumevanom gatewayu koji sistem koristi za pristup internetu (što je u ovom slučaju znači preko LAN interfejsa 192.168.1.6 na GW koji je ruter lokalne mreže 192.168.1.1)

Šta hoću reći… kada se priča o VPN-a, sam pojam VPN se odnosi na enkriptovani tunel komunikacije koji se uspostavlja između dva udaljena VPN interfejsa. VPN je u stvari ono što omogućava da vi u ovom slučaju vidite dva ravnopravna interfejsa (jedan realni i jedan virtuelni) i tehniku ostvarivanja komunikacije između dva kraja VPN tunela. Ali ova priča predstavlja u stvari udaljavanje od srca stvari. Ključ svih mogućih implementacija i modaliteta korišćenja VPN-a leži u manipulaciji ovom gornjom tabelom. Priča o VPN-u ustvari je priča o mrežnom rutiranju.

Neki mogućii upotrebe VPN-ova u svakodnevnom životu proizišli iz ovoga su:

Direktno povezivanje dva računara

Potrebno je samo obezbediti pristup adresi VPN interfejsa na lokalnoj masini (npr. 10.8.0.1) za ovo je potrebno u gornjoj tabeli imati definisanu rutu

Network Destination        Netmask          Gateway       Interface  Metric

         10.8.0.0    255.255.255.0         10.8.0.5         10.8.0.6    291

Rad na daljinu

Ovo valjda dođe kao prva asocijacija koja se javlja a pri pomenu VPN-a. Moguće je kreirati konekciju prema radnom mestu i koristiti sve resurse lokalne mreže na poslu. Za ovo je potrebno imati definisanu rutu prema udaljenoj mrežu preko VPN interfejsa

Network Destination        Netmask          Gateway       Interface  Metric

         10.8.0.0    255.255.255.0         10.8.0.5         10.8.0.6    291

      10.187.20.0    255.255.255.0         10.8.0.5         10.8.0.6    291

Redirekcija kompletnog internet saobraćaja kroz VPN tunel (npr. zabrane vam FB na radnom mestu te ih prevarite tako što saobraćaj preusmerite preko vaše kućne internet konekcije ili nekog plaćenog VPN servisa

Network Destination        Netmask          Gateway       Interface  Metric

          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.6    291

          0.0.0.0        128.0.0.0         10.8.0.5         10.8.0.6    291

Ovo su samo neki od najjednostavnijih primera organizacije saobraćaja kroz VPN. Mogućnosti različitih konfiguracija su praktično neograničene i zavise od konkretnih potreba implementacije. VPN tunel ne mora nužno biti kreiran na računaru sa koje vršimo komunikaciju. VPN može biti uspostavljen na nekom uređaju unutar lokalne mreže te bi se onda posebnom dinamičkom rutom, saobraćaj usmeravao preko LAN interfejsa na GW koji je lokalna adresa uređaja koji kreira VPN tunel (192.168.1.10 u donjem slučaju)

Network Destination        Netmask          Gateway       Interface  Metric

          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.6    291

      10.187.20.0    255.255.255.0     192.168.1.10         10.8.0.6    291

Konkretne tehnike uspostavljanja ovih dinamičkih ruta na sistemu zavise od načina i softverskih /hardverskih korišćenih za uspostavljanje VPN tunela. O konkretnim rešenjima, neki drugi put.

1 Comments

    Leave a Reply

    XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>