Tulemüür (informaatika)

Tulemüür (inglise firewall) on tarkvara või seade, mis turvakaalutlustel piirab ja reguleerib võrguliiklust arvutivõrgus või võrkude vahel vastavalt määratud reeglitele. 

Tavaliselt kasutatakse tulemüüri interneti ja kohaliku kohtvõrgu vahel. Tulemüüri esmane otstarve on väljastpoolt juurdepääsu takistamine ressurssidele, millele pole sellist juurdepääsu ette nähtud. On ka tulemüüre mis piiravad väljuvat liiklust. Tarkvaraline tulemüür on integreeritud ka Windowsi operatsioonisüsteemidesse alates Windows XP-st.

Tulemüüri saab rakendada nii tarkvaraliselt, riistvaraliselt kui ka mõlema kombinatsioonina. Tavaliselt kasutatakse tulemüüri, et ennetada volitamata Interneti kasutajate juurdepääsu privaatvõrkudele, eriti kohtvõrkudele. Kõik saabunud ja saadetud teated läbivad tulemüüri, mis uurib igat teadet ja blokeerib need, mis ei vasta varem määratud turvanõuetele.

Tulemüür võib töötada mitmel viisil:
 Paketifiltrid – paketifiltreerimisel põhinevad tulemüürid uurivad võrguliikluses iga paketti eraldi ning vastavalt kasutaja kehtestatud reeglitele lubab need läbi või tõrjub eemale. Kuigi keeruline seadistada, on see üsna efektiivne ja arvutikasutajale oma olemuselt arusaadav. Vastuvõtlik IP spuufimisele.
 Rakenduskihi tulemüür – kehtestab turvanõuded teatud rakendustele nagu FTP- ja Telneti serveritele. Selline lähenemine on väga efektiivne turvakaalutlustest lähtudes, kuid võib vähendada üldist jõudlust.
 Olekuteadlik tulemüür – kehtestab turvanõuded kui TCP- või UDP-ühendusele. Kui ühendus on loodud, võivad paketid liikuda ilma edasise kontrollita.
 Proksi – püüab kinni kõik teated, mis saabuvad või mida saadetakse läbi võrgu. Proksiserver varjab efektiivselt tegelikku võrguaadressi.

Ajalugu 
Termin "tulemüür" tähendab tulekindlat seina tule või potentsiaalse tulekahju edasipääsu tõkestamiseks hoonetes. Morrise ussviirus oli üks esimesi, mis levis arvutist arvutisse, kasutades ära tolleaegsete arvutite haavatavust. Kuigi see polnud oma eesmärgi poolest pahatahtlik, oli see esimene ulatuslik rünnak Internetti ühendatud arvutite turvalisuse vastu. Interneti kogukond ei osanud sellist rünnakut oodata ega olnud ka sellega tegelemiseks valmis.

Esimene põlvkond – paketifiltrid 
Esimene artikkel tulemüüri tehnoloogia kohta avaldati aastal 1988, kui insenerid Digital Equipment Corporationist arendasid filtersüsteeme, mida teatakse praegu paketifiltreerimistehnoloogiana. See võrdlemisi lihtne süsteem oli esimene teerajaja edasises kaugele arenenud ning tehnilises interneti turvalisuse maailmas. Bill Cheswick ja Steven M. Bellovin Bells Labsist jätkasid nende uurimist ja arendasid selle põhjal oma firma jaoks esimese töötava mudeli.

Seda tüüpi pakettide filtreerimine ei pööra mingit tähelepanu sellele, kas pakett on osake olemasolevast ühendusest või mitte (st mingit informatsiooni ühenduse oleku kohta ei salvestata). Selle asemel filtreeritakse pakette ainult pakettides sisalduva informatsiooni põhjal, kasutades selleks enamasti kombinatsiooni paketi lähte- ja sihtaadressist, protokollist ning TCP ja UDP puhul pordi numbrist.

TCP- ja UDP-protokollid moodustavad suurema osa suhtlusest Interneti kaudu ning kuna TCP- ja UDP-liiklus traditsiooniliselt kasutab teada-tuntud porte teatud tüüpi liikluse jaoks, siis ühenduse olekust mitte midagi teadev filter saab eristada ja kontrollida seda tüüpi liiklust (nagu veebi sirvimine, kaugprintimine, e-kirja saatmine, faili ülekandmine), kui just arvutid kummalgi pool paketifiltrit ei kasuta mittestandardseid porte.

Pakette filtreerivad tulemüürid töötavad peamiselt OSI-mudeli kolmel esimesel kihil, mis tähendab, et suurem osa tööd tehakse ära võrgu ja füüsiliste kihtide vahel ning ainult natuke piiludes transpordikihti, et aru saada lähte- ja sihtkoha pordinumbritest. Kui pakett pärineb saatjalt ja jõuab tulemüürini, siis seade kontrollib, kas pakett vastab filtreerimisreeglitele, ja vastavalt sellele kas laseb paketi läbi või tõrjub eemale. Kui pakett läbib tulemüüri, siis filtreerimine toimub protokolli/pordinumbri baasil. Näiteks, kui eksisteerib reegel tulemüüri seadetes, mis keelab juurdepääsu läbi Telneti, siis tulemüür blokib IP-protokollid, milles kasutatakse pordinumbrit 23.

Teine põlvkond – rakenduskihi tulemüür 

Peamine kasu rakenduskihi tulemüürist/rakenduskihi filtreerimisest on, et see saab aru teatud rakendustest ja protokollidest (nagu File Transfer Protocol, DNS või veebi sirvimine), ja see võimaldab avastada, kui mittesoovitud protokoll proovib siseneda mittestandardse pordi kaudu või kui protokolli ahistatakse mingil muul kahjulikul viisil.

Rakenduskihi tulemüür on palju turvalisem ja usaldusväärsem võrreldes paketifiltri tulemüüriga, kuna see töötab kõigil seitsmel OSI mudeli kihil, rakendusest kuni füüsilise kihini. See on küll sarnane pakette filtreeriva tulemüüriga, aga siin on võimalik informatsiooni filtreerida lisaks ka sisust lähtudes. Parim näide rakenduskihi tulemüürist on ISA (Internet Security and Acceleration) server. Rakenduskihi tulemüür suudab filtreerida kõrgema kihi protokolle nagu FTP, Telnet, DNS, DHCP, HTTP, TCP, UDP ja TFTP (GSS). Näiteks, kui organisatsioon tahab blokeerida kogu informatsiooni, mis on seotud sõnaga "foo", siis saab käivitada sisu filtreerimise tulemüüris, et see sõna edaspidi blokeeritakse. Tarkvaral põhinevad tulemüürid on seega aeglasemad kui olekuteadlikud tulemüürid. Kui mõni saatjapoolne pakett blokeeritakse tulemüüri poolt, siis saatjat sellest üldiselt ei teavitata. Põhimõtteliselt suudavad rakenduskihi tulemüürid peatada kogu soovimatu välise juurdepääsu kaitstud arvutitesse. Põhjalikult uurides iga paketi sisu saavad tulemüürid ennetada võrguusside või Trooja hobuste pääsemist võrku ühendatud arvutisse. Igasugused lisakriteeriumid, mida pakettide läbivaatamisel arvestatakse, lisavad teatava ajakulu pakettide toimetamisele sihtkohta.

Kolmas põlvkond – olekuteadlikud tulemüürid 

Aastatel 1989–1990 töötasid kolm kolleegi Bell Labsist – Dave Presetto, Janardan Sharma ja Kshitij Nigam – välja kolmanda põlvkonna tulemüüre, kutsudes neid riistvarataseme tulemüürideks.

Kolmanda generatsiooni tulemüürid, lisaks esimese ja teise põlvkonna tulemüüridele vaatab ka iga paketi asetust paketiseeria sees. Üldiselt viidataks sellele tehnoloogiale kui olekuteadlikule pakettide inspekteerimisele, kuna säilitatakse teave kõigist ühendustest, mis tulemüüri läbivad, ning on võimelised määrama, kas konkreetne pakett kujutab endast uue ühenduse algust, on osa praegusest ühendusest või on hoopis vigane pakett. Kuigi selles tulemüüris on ikka hulk staatilisi reegleid, ühenduse olek võib ise olla üheks kriteeriumiks, mis ütleb, millised kindlad reeglid kehtestada. Seda tüüpi tulemüüre on võimelised ära kasutama Denial-of-service'i rünnakud, mis võivad täita ühendustabeleid ebaseaduslike ühendustega.

Järgmised edasiarendused 
1992. aastal viimistlesid Bob Braden ja Annette DeSchon USA Lõuna-California Ülikoolist tulemüüri kontseptsiooni. Toode Visas oli esimene süsteem, millesse oli integreeritud visuaalne liides koos värvide ja ikoonidega ning mida oli kerge juurutada ja juurde pääseda arvuti operatsioonisüsteemist, nagu Microsoft Windows või Apple MacOS. Aastal 1994 Iisraeli firma Check Point Software Technologies ehitas selle vabalt kättesaadavaks tarvkaraks, mida teatakse FireWall-1 nime all.

Tänapäevaste tulemüüride pakettide sügavuti läbiuurimise (deep packet inspection) funktsiooni saab ühendada sissetungimist ennetavate süsteemidega.

Praegu töötab Middlebox Communication töörühm organisatsioonist Internet Engineering Task Force (IETF) protokollide standardimise kallal, mis võimaldaks tulemüüride paremat haldamist.

Areng toimub ka selles suunas, et integreerida kasutaja identiteet tulemüüri reeglitesse. Paljud tulemüürid kätkevad endas omadust, et kasutaja seotakse mingi konkreetse IP- või MAC-aadressiga, mis on väga üldine ja millest on kerge mööda saada. NuFW tulemüür pakub tõelist identifitseerimisel põhinevat tulemüüri, mis nõuab iga ühenduse jaoks kasutajalt signatuuri. authpf BSD süsteemidel laadib tulemüüri seaded automaatselt iga kasutaja jaoks pärast autentimist läbi SSH.

Proksi 

Proksi, mis töötab selleks määratud serveris või üldotstarbelises arvutis, võib käituda justkui tulemüür, reageerides sissetulevatele pakettidele (näiteks ühenduse loomise taotlustele) ning on võimeline ka teatud liiklust blokeerima.

Proksiserverid teevad sisesüsteemiga jändamise välisest võrgust raskemaks ja ühe sisesüsteemi väärkasutus ei põhjusta tingimata turvaauku, mida saaks ära kasutada väljastpoolt tulemüüri (vähemalt nii kaua, kui proksi püsib tervena ja õigesti seadistatuna). Vastupidi, sissetungijad võivad kaaperdada mõne avalikult kättesaadava süsteemi ja kasutada seda kui puhverserverit omadel eesmärkidel. Kuigi siseaadressiruumi kasutamine suurendab turvalisust, võivad häkkerid ikkagi kasutada meetodeid nagu IP spuufimine, et saata pakette sihtvõrkudesse.

Võrguaadresside teisendus 

Tulemüürid kasutavad tihtipeale võrguaadresside teisenduse funktsiooni ning arvutid, mis jäävad kaitsva tulemüüri taha, üldiselt omavad aadressi privaatseks kasutamiseks mõeldud aadressiruumis. Tulemüüridel on sageli olemas funktsionaalsus, mis peidab tulemüüriga kaitstud arvuti tegeliku võrguaadressi. Algselt oli selline võrguaadresside teisendus mõeldud adresseerimaks piiratud ressurssidega IPv4 marsruuditavaid aadresse, mida võiksid kasutada nii asutused kui ka eraisikud ning et vähendada avalike aadresside hulka ja seega ka maksumust iga võrku ühendatud arvuti jaoks. Võrguaadresside varjamine kaitstud arvutites on saanud oluliseks kaitsevahendiks võrguluure vastu.

Vaata ka 
 Demilitariseeritud tsoon
 OpenBSD
 Puhverserver
 Pääsuloend

Viited

Välislingid 

 Interneti tulemüürid: Korduma kippuvad küsimused. Koostajad Matt Curtin, Marcus Ranum ja Paul Robertson.
Tulemüüri tööstuse areng – vaadatakse arhitektuure ja nende erinevusi, kuidas toimub pakettide töötlus ning tähtsamad ajalised verstapostid
 Tulemüüre puudutav ülevaade – annab ülevaate tulemüürist eri ISO tasanditel
 Tarkvaralised tulemüürid: osa 1 ja Tarkvaralised tulemüürid: osa 2 – vaadatakse tarkvaralise tulemüüri toimimist ja potentsiaalseid kitsaskohti

Arvutivõrgud
Serverid
Turvalisus