Onion router(TOR)

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Borna Farkaš, Matija Neđeral, Antonio Markoč, Mislav Šantek


Sadržaj

Anonimno pretraživanje Interneta

Anonimno pretraživanje Interneta se odnosi na korištenje mreže koje skriva identifikacijske informacije o korisniku od stranica koje korisnik posjećuje. Anonimno pretraživanje je moguće ostvariti pomoću proxy servera te ostalih programa anonimnosti kao što je Tor. Takvi programi šalju informacije preko niza usmjernika(routera) s ciljem skrivanja izvorišta i odredišta informacija. No, ne postoji potpuno jamstvo anonimnosti jer su ti programi podložni analizi prometa. Informacije sa proxy poslužitelja mogu tražiti vlasti pa ni na taj način ne ostvarujemo potpunu anonimnost. Ostale informacije poput kolačića ili dodataka za Internet preglednike(plugins) se mogu iskoristiti u svrhu otkrivanja identiteta korisnika bez obzira što je njegova IP adresa skrivena.

Pri pregledavanju internetske stranice, IP adresa i ostale informacije postaju poznate poslužitelju. Korisnikovu IP adresu je moguće prikriti uporabom proxy poslužitelja koji zahtjev šalju poslužitelju koji je konačni cilj te na taj način izvorni zahtjev ne putuje izravno na ciljani poslužitelj od korisnika. Rezultat toga je da ciljani poslužitelj nema IP adresu korisnika već samo informacije o proxy poslužitelju koji je njemu poslao zahtjev.

Mislav Šantek, Borna Farkaš

Anonimna mreža Tor

Tor(The Onion Router) je slobodni software koji omogućava anonimnost na Internetu i izbjegava cenzuru. Tor usmjerava mrežni promet preko volonterske mreže poslužitelja koju čini više od 500 poslužitelja s ciljem otežavanja otkrivanja lokacije korisnika.

Pojam Onion routing označava aplikacijske slojeve enkripcije, ugniježđene poput slojeva luka, koji omogućavaju anonimnu komunikaciju. Tor kriptira izvorne podatke uključujući i IP adresu odredišta. Promet šalje preko niza slučajno odabranih Tor poslužitelja. Svaki od tih poslužitelja dekriptira samo jedan sloj enkripcije kako bi saznao adresu sljedećeg poslužitelja te njemu poslao preostale kriptirane podatke. Zadnji poslužitelj u nizu dekriptira najdublji sloj enkripcije i šalje početne, izvorne podatke do traženog odredišta bez otkrivanja IP adrese izvorišta jer ni taj poslužitelj ne zna tu adresu. Sljedeća slika prikazuje opisani način rada.

Način rada.jpg

Prilikom bilo kakve vrste komunikacije na Internetu, informacija o poslužitelju i klijentu poznata je svim prijenosnim uređajima na putu između poslužitelja i klijenta, odnosno njihovim vlasnicima.

Kako je Internet nastao na ideji da se komunikacija ostvaruje putem paketa koji od polazišta do odredišta mogu putovati različitim putevima, tako se višestruko multipliciraju uređaji i njihovi vlasnici koji imaju informaciju o komunikaciji između klijenta i poslužitelja. Kako se ove informacije odnose na mrežni i transportni sloj, jednostavno je odrediti o kojoj se osobi radi.

Američka mornarica (US NAVY) razvila je 1998. Onion routing protokol koji štiti privatnost komunikacije između pošiljatelja i primatelja. Onion routing je protokol koji obavlja enkripciju i dekripciju paketa na svakom pojedinom prijenosnom uređaju čime se u potpunosti gubi informacija o primatelju, pošiljatelju i sadržaju samog paketa, tj. informacija je zaštićena i u potpunosti anonimna.

Tor.png

Gornja slika prikazuje kako se pojedini slojevi enkripcije "skidaju" pri prijenosu samog paketa.

Mislav Šantek, Borna Farkaš

Skriveni servisi

Tor pruža anonimnost internetskim stranicama i drugim poslužiteljima. Poslužitelji ugođeni za primanje podataka za ulazne konekcije samo preko Tor-a se nazivaju skriveni servisi(hidden services). Kako ne bi IP adresa poslužitelja bila otkrivena, a tako i područje ne kojem se poslužitelj nalazi, za pristup poslužitelju se koristi onion adresa. Tor mreža razumije tu vrstu adresa i može usmjeravati promet prema i od skrivenih servisa pa čak i za one servise iza vatrozida ili NAT-a te na taj način osigurava anonimnost oba dvije strane. Baza koja sadrži opise skrivenih servisa je centralizirana, ali Tor je decentralizirani prema dizajnu te ne postoji izravno čitljivi popis svih skrivenih servisa. Problem su servisi koji su dostupni kroz Tor mrežu i preko javnog Interneta istovremeno jer oni nisu potpuno skriveni. Skrivenim servisima je moguće pristupiti i kroz standardni Internet preglednik bez client-side konekcije na Tor mrežu pomoću servisa kao Tor2web.

Mislav Šantek, Borna Farkaš

Slabosti

Tor ne može ostvariti zaštitu od nadziranja prometa na rubu Tor mreže, tj. promet koji ulazi i izlazi iz mreže. Tor pruža zaštitu od analize prometa, no nije u mogućnosti spriječiti potvrđivanje prometa odnosno end-to-end correlation.

Bez obzira na ove poznate slabosti Tor je znatno fleksibilnija mreža od VPN jer će napadač koji pokušava analizirati veličinu i vremena slanja kriptiranih podataka imati puno većih problema pri analizi.

Ako se na oba dvije strane puta nalazi AS(Autonomous System), od klijenta do ulaznog čvora u Tor mrežu i od izlaznog čvora do odredišta, onda je moguće statistički povezati promet na ulazu i izlazu u cilju izračunavanja krajnjeg odredišta. LASTor je 2012. godine predložio način za predviđanje potencijalnih AS-ova na obje strane tijekom biranja putanje na klijentskoj strani u svrhu izbjegavanja ovog problema.

Mislav Šantek, Borna Farkaš

OpenWrt

OpenWrt je proširiv GNU / Linux distribucija za ugrađene uređaje (obični bežični usmjerivači). Za razliku od mnogih drugih distribucija za te routere, OpenWrt je izgrađen od temelja da bude potpuno opremljen, lako promjenjiv operativni sustav za vaš usmjerivač. U praksi, to znači da možete imati sve značajke koje su vam potrebne, pokreće ga Linux kernel koji je mlađi od većine drugih distribucija.

Matija Neđeral, Antonio Markoč

Povijest open WRT-a

OpenWrt, u obliku kakav je danas, plod je velikog truda uloženog od skupine Linux entuzijasta. Njegovi počeci sežu od početka 2004. godine kada je tvrtka Linksys predstavila uređaj pod nazivom WRT54G. Navedeni uređaj služio je kao centralna jedinica za dijeljenje konekcije između određenog broja računala. Nedugo nakon što je uređaj postao dostupan korisnicima, Andrew Miklas primijetio je da navedeni uređaj koristi modificiranu Linux jezgru kao operacijski sustav koji ga pokreće. Po General Public Licence (skr.GPL) licenci po kojoj je Linux jezgra dostupna u obliku slobodnog programskog koda, Linux jezgra ne smije se koristiti u komercijalne svrhe bez dijeljenja tog programskog koda potrošaču proizvoda na kojem se koristi. Nakon što je Andrew Miklas poslao apel Linksys kompaniji da se korišteni kod objavi te kako nije bilo nikakvih reakcija sa njihove strane, Andrew Miklas je incident prijavio na Linux grupu elektroničke pošte (engl. mailing list). Linksys tvrtka je uslijed pritiska Linux zajednice popustila te je u javnost izašla Linux jezgra korištena na uređaju. U tom trenutku započinju različiti projekti koji svoj programski kod baziraju na onom koji je objavila Linksys tvrtka. Jedni od popularnijih projekata su bili OpenWrt, DD-wrt, HyperWRT i projekt Sveasoft firme. Programski kod koji je izašao u javnost bila je uvelike modificirana Linux jezgra kao što se i pretpostavljalo, no nekoliko ljudi brzo je uvidjelo bespotrebnost većine programskog koda u njemu. Nakon čišćenja nepotrebnih dijelova koda te ostavljanja samo dijelova koji su najnužniji, veličina sustava pala je sa 30MB na oko 3MB te je ubrzo nakon toga, početkom 2004., napravljena i prva verzija sustava sa oznakom build 1 . (skr. B1) koja nije bila javno dostupna. Sa daljnjim razvojem OpenWrt distribuciji dodana je mogućnost pisanja po disku koja u to vrijeme nije bila dostupna na konkurentskim projektima. OpenWrt projekt je pod GPL licencom te je kao takav slobodni programski kod. Razvoj OpenWrt Linux distribucije potpomaže velika zajednica širom svijeta.

Antonio Markoč, Matija Neđeral

Što je OpenWrt?

Umjesto da pokušavate stvoriti jedan, statički firmware, OpenWrt pruža potpuno čitljiv datotečni sustav s dodatnim upravljanjem paketa. To vas oslobađa ograničenja u izboru aplikacija i konfiguracije od prodavatelja i omogućuje vam da koristite pakete da prilagodite ugrađen uređaj za različite namjene. Za programere, OpenWrt pruža okvir za izgradnju aplikacija bez potrebe za stvaranjem potpunog firmware-a. Za korisnike to znači slobodu za konfiguraciju uređaja, omogućujući korištenje uređaja na način koji prodavač ne može ni zamislili.

Projekt je u potpunosti besplatan i open-source, licenciran pod GPL.Projekt je namijenjen da uvijek bude domaćin na lako dostupnom web site-u, s lako dostupnim izvornim kodom i lak za izgraditi. Jednostavan i besplatan pristup.Projekt će uvijek biti otvoren za nove suradnike i imati nisku prepreku za sudjelovanje. Svatko će moći pridonijeti. OpenWrt je odavno uspostavljen kao najbolji firmware rješenje u svojoj klasi. On daleko premašuje druga ugradbena rješenja u performansama, stabilnosti, proširivosti, robusnosti i dizajnu. OpenWrt je prije svega okvir za inovativna rješenja.

Matija Neđeral, Antonio Markoč

Što OpenWrt nije?

OpenWrt nije namijenjen da bude distribucija koju možete učitati na ugrađenim uređajem i očekivati da će učiniti sve što želite. Umjesto toga, OpenWrt okvir omogućuje vam da prilagodite svoje ugrađen operativni sustav s vlastitim potrebama. Možete dodati značajke koje koje trebate instaliranjem programskih paketa, kao što je grafičko web sučelje koje omogućuje jednostavan pristup za početnike. Ugradnja takvih paketa je jednostavna za naučiti, te zahtijeva minimalno razumijevanje OpenWrt sustava i Linux vještina.

U usporedbi s drugim distribucijama, OpenWrt se također ne može smatrati samo kao "pravi firmware za krajnjeg korisnika". Mnogi korisnici traže visoku prilagodljivost koju OpenWrt pruža, ali postoje i druge distribucije (mnoge se temelje na OpenWrtu) koje nude potpunije značajke u glavnom paketu. Ove distribucije nude više od iskustva krajnjih korisnika. Ako želite potpuno proširiv Linux-temeljen operativni sustav za vaš uređaj, OpenWrt je savršen i lako ga je postaviti i naučiti se služiti njime.

Matija Neđeral, Antonio Markoč

Spajanje na ruter

Default ip adresa je 192.168.1.1, na nju se spajamo preko Telneta ako password nije postavljen. Ako je password postavljen onda se spajamo preko SSH.

Za spajanje na ruter najbolje je koristiti Putty. Inače password se može podesiti naredbom passwd, i nakon toga dva puta upišite zeljeni password. Warninge možete ignorirate jer ne utječu na postavljanje passworda.

Sli2.png

Ukoliko ne znamo ip adresu možemo koristiti failsafe kako bi se spojili na ruter. Failsafe je opisan niže na ovoj stranici. Ako ne želimo koristi failsafe možemo koristiti programe poput Angry-ip. Taj će program tražiti aktivne urađaje na rasponu adresa koje mi odredimo. Mana ovog programa je što ukoliko otprilike ne znamo svoju adresu, pretraživanje većeg raspona predugo traje. Još jedan program koji se često koriti je WireShark. Njega koristimo tako da "slušamo" vezu sa kojom se spajamo na ruter, npr. local area network. Nakon što odaberemo vezu, moramo gledati Broadcast poruke, te tako možemo vidjeti sa koje nam ih adrese ruter šalje.

Prije instalacije TOR-a moramo omogučiti ruteru pristup na Internet. Najjednostavniji način je spojiti se na WAN. Za slučaj da nam WAN iz nekog razloga ne radi, možemo konfigurirati lan sa statičkom IP adresom i gatewayom od rutera koji je spojen na ADSL, također koristimo DNS podatke od adsl rutera. Najjednostavnije je konfigurirati /etc/config/network pomoću WinScp, program je sličan Putty, ali ima gui.

Sli3.png

U našem slučaju gateway je bio na 192.168.1.254, to možete doznati spajajući se laptopom na adsl ruter(wireless ili ethernet) i pod Connection status->details vidjeti koji vam je gateway. Ako vam je mrsko raditi preko konzole, možete i instalirati GUI za openWRT. Prvo moramo dohvatiti listu instalacijskih paketa sa OpenWRT servera.

 opkg update

Nakon toga moramo instalirati Luci:

 opkg install luci

Luci koristi uhttpd servis pa ga moramo pokrenuti /etc/init.d/uhttpd start

Možemo postaviti i automatsko pokretanje servisa /etc/init.d/uhttpd enable

Ako je sve dobro prošlo, ovako bi trebao izgledati terminal

Sli4.png

I ovako broswer nakon što se spojite na 192.168.1.1, ili na kojoj vam je već adresi interface.

Sli5.png

Failsafe

U slučaju da ste krivo konfigurirali mrežne uređaje te se nemožete spojiti više na vaš ruter, najbolje je napraviti failsafe. Resetirajte ruter i prilikom resetiranja rutera prije nego što se ruter do kraja pokrene potrebno je pritisnuti reset gumb. Ruter će ući u failsafe mode te se na njega tada može spojiti pomoću Telneta na adresi 192.168.1.1.

Prvo napišemo(ukoliko to ne napišemo osim postavki, izbrisat će se i instalirani paketi)

  mount_root

A zatim

 firstboot

I na kraju

 reboot -f

Sve postavke će biti izbrisane

Failsafe.jpg

Instalacija i konfiguracija Tor-a na openWRT-u

Prvo moramo dohvatiti listu instalacijskih paketa sa OpenWRT servera.

 opkg update

Nakon toga moramo instalirati Tor:

 opkg install tor

Ako je sve prošlo dobro, trebalo bi izgledati ovako.

Sli1.png

Konfiguracija Prvo konfiguriramo wireless mrežu, ustvari redoslijed nije bitan jer update radimo na kraju.

cat << 'EOF' > /etc/config/wireless
config wifi-device  radio0
   option type     mac80211
   option channel  11
   option phy phy0
   option hwmode   11ng
   option htmode   HT20
   list ht_capab   SHORT-GI-40
   list ht_capab   DSSS_CCK-40
config wifi-iface
   option device    radio0
   option network   transtor
   option mode    ap
   option ssid    'Transparent Tor'
   option encryption none
   option macaddr 00:88:88:88:00:2A # see http://outflux.net/geoloc/?mac=00-88-88-88-00-2A+ for the location info associated with this mac addr
EOF

Postavimo Tor u bridge mod i namjestimo ostale postavke:

cat << 'EOF' > /etc/tor/torrc
User tor
RunAsDaemon 1
PidFile /var/run/tor.pid
DataDirectory /var/lib/tor
Nickname OpenWRTTorBridge
SocksPort 0
ORPort 443
BridgeRelay 1
Exitpolicy reject *:*
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.2.1
DNSPort 9053
DNSListenAddress 192.168.2.1
#Bandwith koji tor koristi
RelayBandwidthRate 100 KBytes
RelayBandwidthBurst 200 KBytes
EOF

Ovo gore je početna postavka, bilo bi dobro dodati i Log notice file /var/log/tor/notices.log Kako bi se lakše uočile eventualne pogreške, može se postaviti user na root tako da smanjimo moguće probleme Namještavnja tor interfejsa:

cat << 'EOF' >> /etc/config/network
config interface transtor
       option ifname   "wlan0"
       option proto    static
       option ipaddr 192.168.2.1
       option netmask 255.255.255.0
EOF

Postavljanje DHCP servera:

cat << 'EOF' >> /etc/config/dhcp
config 'dhcp' 'transtor'
   option 'interface' 'transtor'
   option 'start' '23'
   option 'limit' '250'
   option 'leasetime' '12h'
EOF
Editiranje firewalla: 
cat << 'EOF' >> /etc/config/firewall
config rule
       option src wan
       option proto tcp
       option dest_port 443
       option target ACCEPT
config zone
       option name     transtor
       option input    REJECT
       option output   ACCEPT
       option forward  REJECT
       option syn_flood 1
       option conntrack 1 #this setting is mandatory
config rule
       option src              transtor
       option proto            udp
       option dest_port        67
       option target           ACCEPT
config rule
       option src              transtor
       option proto            tcp
       option dest_port        9040
       option target           ACCEPT
config rule
       option src              transtor
       option proto            udp
       option dest_port        9053
       option target           ACCEPT
EOF

Podešavanje iptables:

cat << 'EOF' >> /etc/firewall.user
iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 9053
iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport ! 53 --syn -j REDIRECT --to-ports 9040
EOF

Pokrenimo wifi:

 wifi

Ponovno učitajmo mrežne postavke: /etc/init.d/network reload Resetiramo firewall:

 /etc/init.d/firewall reload

I pokrećemo TOR:

 /etc/init.d/tor start

Sa naredbom pidof TOR Možemo provjeriti da li je TOR stvarno pokrenut, ako nije onda samo u konzolu upišite tor, na taj način bi trebao ispisati koje greške se javljaju prilikom pokretanja. Također možete i u log-u(ako ste ga uključiti) provjeriti greške.

Ovako izgleda log kada se tor uspješno pokrene. Jan 14 13:06:22.000 [notice] Bootstrapped 100%: Done Jan 14 13:06:22.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.

USB storage

Za slučaj da vaš uređaj nema dovoljno memorije, možete ju dodati koristeći usb stick.

opkg update
opkg install kmod-usb-storage block-mount block-hotplug kmod-fs-ext4 kmod-fs-vfat kmod-nls-cp437 kmod-nls-iso8859-1
mkdir -p /mnt/usb
mount -t vfat /dev/sda1 /mnt/usb

Koristeći ove naredbe instalirat će se potpora za usb i vaš novi storage nalazit će se na lokaciji /mnt/usb. Važno: za ove pakete potreban je najnoviji firmware!

Firmware upgrade

Ukoliko je potrebno unaprijediti firmware to možete učiniti pomoću Luci. Otvorite Luci (default 192.168.1.1) i otiđite na System->Backup/Flash Firmaware. Ekran bi trebao izgledati ovako.

Firmware top upgrade.png

Kliknite skroz dolje na „Browse“ i odaberite firmware koji želite instalirati. Preporučam da maknete kvačicu sa Keep settings kako bi instalacija uklonila sve prijašnje postavke. Image možete pronaći ovdje http://wiki.openwrt.org/about/latest.


Bilješke

Pokretanje TOR-a nije do kraja uspjelo jer u našem slučaju ruter koji posjedujemo ima 64mb RAM-a, dok je za uspostavljanje TOR mreže potrebno min 256mb RAM-a. Kao zadnji pokušaj smo probali instalirati USB storage(i napravili firware upgrade) i prebaciti sve što TOR zapisuje na taj disk, to je uštedjelo 30-ak MB rama, ali ni to nije dovoljno da TOR ostane pokrenut. Preporučamo uređaj sa minimalno 256 MB rama kako bi sve prošlo glatko, a ne kao u našem slučaju.

Napomena

Praktični dio je u potpunosti rađen skupno, dakle sudjelovali su svi članovi tima u njegovoj izradi.

Poveznice

Anonymous_web_browsing

Anonymity_network

OpenWrt

TOR - zaštita komunikacije Internetom

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima