Iodine

From ICO wiki

Autor

Rait Haavel [AK31]
Viimati muudetud: 10.06.2015

Kirjeldus

Iodine abil on võimalik luua IPv4 tunnelit kasutades DNS päringuid. Kui võrgus on kasutuses tulemüür mis plokeerib ära enamus tunneli loomise võimalustest, siis üldjuhul on DNS päringud lubatud ning Iodine võimaldab just seda ära kasutada IPv4 tunneli loomiseks.

Keskkonna nõuded

Toetatud OP süsteemid: iodine töötab nii linux , mac kuid ka windows operatsioonisüsteemidel.

Et luua iodine IPv4 tunnelit, siis peavad olema tagatud vastavad eeltingimused:
1. Komponendid
1.1 Klient masin (windows, linux) - See tööjaam, millega soovitakse tunneli teenust kasutama hakata.
1.2 DNS server - DNS server (NT: asutuse sisene DNS), mis teenindab iodine serverit ning kuhu tuleb luua IPv4 tunneli tarvis alamdomeeni NS kirje ning iodine serveri A kirje.
1.3 Iodine Server - Server kuhu paigaldatakse iodine teenus, mis töötleb alamdomeenile suunatud DNS päringuid.
2. Üldised nõuded
2.1 Kui soovite kasutada iodine teenust üle interneti, siis peab lahendama väline teenusepakkuja (väline DNS server) teie sisemist domeeni nimi.

Seadistus

NB! Antud seadistuste näited sobivad ubuntu laadset linux-t kasutades.

iodine seadistus - DNS server

DNS serveris (iodine serverit teenindav) tuleb lisada tsoonifaili NS kirje alamdomeenile. Lisaks tehakse A kirje iodine teenuse serverile.
Tsoonifaili kirjed on näevad välja sellised:

tunnel      IN    NS  iodine.domeen.zz.
iodine      IN    A   IP_aadress

tunnel = see on alamdomeen tunnel.domeen.zz
iodine.domeen.zz = A kirje serverile kus on iodine teenus, mis kuulab DNS päringuid.
IP_aadress = iodine serveri IP aadress (sisevõrgu IP).
[1]

iodine seadistus - server

Nüüd kui on alamdomeeni kirje tehtud, tuleb seadistada iodine server, mis hakkab DNS päringuid kuulama ning tekitab IPv4 tunneli.
Paigaldus
1. Uuenda oma repositoorium.

sudo apt-get update

2. Installeeri iodine

sudo apt-get install iodine

3. loo IPv4 tunnel ning anna tunnelile virtuaalne IP aadress.

sudo iodined 10.0.10.1 tunnel.domeen.zz

10.0.10.1 = tunneli virtuaalne IP aadress.
tunnel.domeen.zz = tunneli jaoks loodud alamdomeen.
[2]

iodine seadistus - klient

Kui iodine server on seadistatud kuulama alamdomeeni DNS päringuid, siis nüüd saab paigaldada kliendi tööjaama iodine teenuse ning teenuse tekitama IPv4 tunnelit üle DNS-i. Paigaldus
1. Uuenda oma repositoorium.

sudo apt-get update

2. Installeeri iodine

sudo apt-get install iodine

3. Seadista iodine looma IPv4 tunnelit eelseadistatud aladomeeni pihta.

sudo iodine tunnel.domeen.zz

tunnel.domeen.zz = On eelseadistatud alamdomeeni nimi, kuhu iodine hakakb DNS päringuid saatma.
4. Nüüd võid kasutada IPv4 tunnelit. Näiteks proovi pingida kliendi arvutist serverit.

ping tunnel.domeen.zz

[3]

Atribuudid

Iodine on küll lihte ülesse seada, kuid võimalusi seda seadistada on mitmeid. Toon välja võimalused nii serveri pool kui ka kliendi poole seadistamiseks.
Klient

-r
Ei kasuta raw UDP reziimi. Vaikimisi iodine saadab liikluse otse serverisse, mitte ei kasutada DNS relay-d.

-m fragsize
Seab maksimaalse kasutatava allalaadimis fragmendi suuruse. Vaikimise kasutaba iodine kõige suuremat võimalikku allalaadimis fragmendi suurust.

-M namelen
Maksimaalse üleslaadimise serveri hostinime pikkuse määramiseks. Vaikeväärtus on 255, kuid selle abil saab määrata vahemikku 100-255.

-T dnstype
Saab määrata DSN päringu tüübi. Võimalikud tüübid on: NULL, TXT, SRV, MX, CNAME and A (returning CNAME)

-O downenc
Saab määrata kodeerimiseks. Kui vaike seade ei toimi, siis peab muutme kodeeringut kuna on võimalik, et see on nõutud. Võimalused on : Base32, base64, base128, base64u.
Base32 on kõge madalam koodek ning see toimib alati.

-L 0|1
Lazy-mode  reziim. Selle abil on võimalik tõsta jõudlust ning vähendadada võrgu viidet.

-I interval
Maksimaalne DNS päringu intervall. Kasutada selleks, et piirata DNS päringute liiasust võrgus. Maksimaalne väärtus on 59 kuna 60 peal juba iodine ise lõpetab ühenduse kliendiga.

[4]
Server

-c
Ei küsi iga päringu peale kliendi IP aadressi. Kui kasutatakse DNS serverite klustreid, siis võib esineda probleeme.

-s
Ei ürite konfigureerida IP aadressi või MTU-d. Kasuta kui on juba seadistatud millist seadet kasutada.

-D
Saab suurendada debug taset. Tase 1 väljastab kõik RX/TX paketid.

-l listen_ip
Saab piirata sissetulevat liiklust IP põhiselt. Vaikimisi on lubatud liiklus kõikidelt IP-delt.

-p port
Saab määrata pordi, mida teenus kuulab. Ka DNS peab saatma päringud sinna porti!

-n external_ip
Saab määrata IP aadressi kuhu suunatakse NS päringud edasi. 

-b dnsport
Kui see port on määratud, siis kõik sissetulevad päringud va tunneli domeeni omad, suunatakse edasi sinna määratud porti et kasutada päris DNS serverit.

[5]

Kokkuvõte

Iodine on väga hea vahend kui sul on vaja mööda saada tulemüüri keelavatest reeglitest, et saada ligi tulemüüri taga asuvasse serverisse.
Iodine on võimalik kasutada ainult siis kui sul endal on võimalik lisada DNS kirjeid DNS serverile, mis haldab sinu serveri kirjet ning kui sinu serveri domeen on avalikus DNS-s.
Selle teenusega on võimalik ka ligi saada lihtsalt oma kodusele arvutile, serverile kaugelt. Isegi ebaturvalistest internetiühendustest (lennujaamad, lahtine WIFI) on võimalik luua DNS tunnelit üldjuhul isegi siis kui ei saa internetigi kuna DNS päringud on alati lahti.

Kasutatud kirjandus

[1] https://github.com/yarrick/iodine
[2],[3] https://grahamedgecombe.com/blog/ip-over-dns-with-iodine
[4],[5] http://linux.die.net/man/8/iodine