Institute of Computer Science
  1. Courses
  2. 2020/21 spring
  3. Computer Security (LTAT.06.002)
ET
Log in

Computer Security 2020/21 spring

  • Pealeht
  • Loengud
  • Praktikumid
  • Referaat
  • Kirjandus
  • Turvauudised
  • Lingid

Tulemüür - iptables, nmap, IPv6

Tulemüüri abil on võimalik filtreerida võrguliidese kaudu liikuvaid pakette. See võimaldab lubada või keelata teatud portide, protokollide või teenuste kasutamist. Antud praktikumis vaatame, kuidas on võimalik iptables abil Linuxi kernelisse sisseehitatud tulemüüri seadistada. Tulemüürid teemal on meil ka olemas Meelis Roos videoloengud: video1, video2. Videoloengute vaatamine ei ole kohustuslik edukaks sooritamiseks, kuid on siiski abiks teemast ja juhendist arusaamisel.

Ettevalmistus

Selle nädala praktikum toimub Linux Mint virtuaalmasinas. Hoolitsege selle eest, et virtuaalmasin oleks lokaalses võrgus näiteks: 192.168.10.1/24), selleks seadistage võrguadapteri tüübiks Bridged Adapter. Järgnevalt paigaldame praktikumis vajaminevad programmid.

Uuendage pakettide nimistut käsuga sudo apt update. Juhul kui uuendamine jääb 0% juures seisma, siis veenduge, et teil on internetiühendus ning eemaldage faili /etc/gai.conf rea precedence ::ffff:0:0/96 100 eest kommentaari tähistav sümbol (#).

sudo apt update
sudo apt install nmap netcat iptables conntrack telnet telnetd postfix ssh

Valige paigaldamisel vaikeväärtused.

Lülitage virtuaalmasin kloonimiseks välja (shutdown)

Väljaspool arvutiklassi praktikumi sooritamiseks on teil vaja kloonida enda virtuaalmasinaid, et saaksime paremini tulemüüri seadistamist testida. Need kellel on olemas eelnevast praktikumist virtuaalmasin ei pea uut klooni looma ja võib kasutada olemasolevat. VirtualBoxis valige parem klahviga Andmeturve virtuaalmasinal clone -> Linked Clone ja Generate new MAC addresses for all network adapters -> Clone ).

Kui teie füüsilises arvutis on piiratud koguses muutmälu RAM (4 GB või vähem), andke Linux Mint virtuaalmasinale vähem mälu näiteks 1 GB ja sulgege füüsilises arvutis kõik üleliigsed programmid. Nüüd käivitage mõlemad Andmeturve virtuaalmasinad edaspidi viidatud kui Andmeturve virtuaalmasin või põhi masin ja Andmeturve kloon või lihtsalt kloon.

Selleks, et tegevused arusaadavamad oleks muutke ära kloonis hostname kujule perenimi-kloon ja muutke ära hosti nimi ja samuti hosts failis.

sudo hostnamectl set-hostname perenimi-kloon
sudo nano /etc/hosts

Samuti pange enda virtuaalmasinates Apache uuesti tööle, et kuulavaid porte oleks rohkem. Apache taaskäivitamisel küsitakse sertifikaadi parooli (vaikimisi oli selleks: "serveriparool")

sudo service apache2 restart
sudo service apache2 status

Selgitage välja (ja jätke meelde) oma arvuti IP-aadress (peaksite olema lokaalses võrgus: 192.168.10.1/24). /24 on lühikujul kirjutatud võrgumask, mis on pikal kujul 255.255.255.0.

ip addr ls

Tulemüüri testimine

Käsu 'netstat' abil on võimalik uurida, millised TCP/UDP pordid on avatud ja millised võrguühendused on hetkel aktiivsed. Uuri järgmise kahe käsu väljundit.

sudo netstat -tua
sudo netstat -tulpn

Teine programm, millega saab leida avatud porte on võrguskänner nmap. Installeerige nmap

sudo apt install nmap

Kasutage seda oma virtuaalmasina IP-aadressi peal:

sudo nmap -sV localhost
sudo nmap -sV oma_masina_ip

PS! Pange tähele kuidas localhost käsu vastuses on rohkem avatud porte kui teie välist IP-d kontrollides (teie enda masinast).

Nmap on mõeldud eelkõige teiste masinate skaneerimiseks. Proovige nmap käsku Andmeturve kloon virtuaalmasinast teie põhi virtuaalmasina IP peal.

sudo nmap -sV oma_põhivirtuaalmasina_ip

Võrrelge saadud vastust põhi-virtuaalmasinas tehtud nmap käsu väljundiga, kas leidsite mingi erinevuse? Näidisvastus kloon masinast kontrollides oma põhimasina porte.

Järgnevalt katsetame nmap käsu erinevaid parameetreid. Võrdle iseseisvalt erinevate käskude väljundeid ja loe man nmap käsu abil mida vastavad võtmed muudavad nmap töös:

sudo nmap oma_põhivirtuaalmasina_ip
sudo nmap -v -O oma_põhivirtuaalmasina_ip
sudo nmap -v -A oma_põhivirtuaalmasina_ip

Iptables

Iptables on tööriist, mis võimaldab kasutajal manipuleerida Linuxi kernelisse ehitatud pakettide filtreerimise mehhanismiga. Meie kasutame seda lihtsa personaalse tulemüüri ehitamiseks.

Nii nagu iptables nimi vihjab, toimub filtreerimine tabelite põhiselt. Vaikimisi kasutatakse tabelit filter, mis on mõeldud tavaliste tulemüüriga seotud filtreerimiste jaoks. Tabelid omakorda koosnevad ahelatest, mida mööda paketid liiguvad ja kus neid filtreeritakse. Meil huvitavad vaikimisi kasutatavad ahelad: INPUT, OUTPUT ja FORWARD.

Väga lihtsustatult (tegelikult on iptables palju keerulisem) võime ette kujutada, et arvutis on kaks ahelat, mida paketid läbivad: INPUT sisse tulevate pakettide jaoks ja OUTPUT väljuvate pakettide jaoks.

Ahelaid on võimalik ka juurde luua ning pakette erinevate ahelate vahel suunata. Iga ahelaga saame seostada pakettide filtreerimise reegleid. Reegli juures kirjeldame, milliste pakettide kohta see reegel kehtib ja mida paketiga teha, kui see vastab sellele reeglile. Tuleb aru saada, et reeglite järjekord on oluline ning sellest sõltub, kunas pakett välja filtreeritakse.

Tulemüüri toime sõltub sellest, kuidas ahelad ja reeglid on seadistatud. Kui sissetulev pakett suunatakse INPUT ahelasse, siis hakatakse sellele järjest reegleid rakendama (vastavalt reeglite järjestusele) ning kui reegel ütleb, et pakett on keelatud, siis visatakse see minema ning järgmiste reegliteni see pakett enam ei jõua (see on välja filtreeritud).

Iptables filtreerimiskäsu näide:

See reegel on seotud INPUT ahelaga (sissetulevad paketid), kehtib ainult pakettide kohta, mis tulevad eth0 võrguliidesesse ning määrab, et need paketid lükatakse tagasi. Teisisõnu blokeerib antud reegel kogu sissetuleva võrguliikluse eth0 võrguliidesel.

Tulemüüri skripti loomine

Selle praktikumi ülesandeks on kirjutada käsurea skript, mis sisaldab kõiki vajalikke käske iptables tulemüüri seadistamiseks. Iga kord, kui me soovime tulemüüri ümber seadistada, saame me muudatused kirjutada skripti ning siis selle uuesti käivitada.

Alustuseks looge uus skriptifail nimega skript.sh (lihtne tekstifail) ning kirjutage selle skripti algusesse järgmised read:

#!/bin/sh
iptables -F 

#!/bin/sh ütleb järgnevale skriptile millist shelli kasutada (siinkohal system shell). Käsu iptables -F tulemusena eemaldatakse kõik olemasolevad reeglid ning taastab esialgse olukorra. Kõik iptables reeglite muutmise käsud peab edaspidi kirjutama sellese skripti. Iga kord kui soovite tulemüüri ümber seadistada, tuleb see skript käivitada nii:

sudo sh skript.sh

Selleks, et aru saada iptables käsu parameetritest uurige vastavat man lehte: man iptables. Järgmiseks lisage logimisreeglid:

iptables -A INPUT -j LOG  --log-prefix="input "
iptables -A OUTPUT -j LOG --log-prefix="output "

Nende reeglite põhjal kirjutatakse iga vastuvõetud paketi kohta kirje /var/log/kern.log failis asuvasse logisse.

Iptables'i kasutamise juures on filtreerimise käskude järjekord väga tähtis! Kui te soovite näha juba lisatud filtreerimise reegleid, siis saate selleks kasutada järgmist käsku:

sudo iptables -L -nv --line-numbers

Kasutage seda käsku edaspidi, et kontrollida kas tulemüür on seadistatud korrektselt.

Proovige kloon virtuaalmasinast enda põhi-virtuaalmasinasse sisse logida kasutades ssh'd, ning otsige iptables logist ssh'ga seotud pakette:

sudo tail -f /var/log/kern.log 

Eelmise käsu saab katkestada CTRL+C klahvikombinatsiooniga. Katkestage SSH-seanss klooni virtuaalmasinas exit käsuga.

Juhul kui SSH-ga ühendamine ei õnnestu, siis kontrollige kas virtuaalmasina SSH-teenus töötab (sudo service ssh status). Kui see ei aita, siis kontrollige, et te pole iptables abil enda ühendusi ära blokeerinud ja vajadusel tehke iptables -F.

Nüüd eemaldage praegused logimisreeglid ning keelake skriptis väljastpoolt masinasse uute ühenduste loomine kasutades järgmist nelja filtreerimise käsku:

1. Esimene reegel lubab kõik paketid, mis liiguvad läbi lo ehk loopback liidese. See on võrguliides, mida arvuti kasutab iseendale (localhost'le) pakettide saatmiseks.

iptables -A INPUT -i lo -j ACCEPT

2.Teine reegel lubab kõik paketid, mis on seotud juba varasemalt lubatud ühendustega ehk aktiivsete seanssidega. Antud reegel lubab meil vältida varasemalt lubatud seanssidega seotud pakettide filtreerimist. Sellest on oluline aru saada ning teil läheb seda reeglit vaja ka hiljem skripti koostamiseks!

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

3. Kolmas reegel logib kõik ülejäänud paketid. Varasemate reeglite põhjal juba lubatud või keelatud pakettide kohta midagi logisse enam ei kirjutata.

iptables -A INPUT -j LOG --log-prefix "input-reject "

4. Neljas reegel keelab kõik ülejäänud paketid.

iptables -A INPUT -j REJECT 

Aktiveerige muudatused (käivitage skript) ja pärast seda uurige iptables seadistust sudo iptables -L -nv --line-numbers. Samuti uurige hetkel tulemüürile teada olevate seansside tabeli conntrack -L sisu ja proovige sellest aru saada (tehke seda ka hiljem) - küsige, kui aru ei saa. Vihjeks niipalju, et see on seotud eelmise punkti 2. reegliga. Rohkem infot conntrack kohta leiab siit: http://www.faqs.org/docs/iptables/theconntrackentries.html.

Veenduge, et pärast seda ei saa enam kõrvalmasinast teie masinasse logida.

Proovige muuta ühenduste keelamise viisi ja üritage aru saada kuidas need üksteisest erinevad. Ühenduse keelamise viisi asendamiseks / täpsustamiseks muutke viimast keelamisrida, nii et -j REJECT asemel kasutataks -j DROP (pärast muudatust skriptifailis käivitage skript ja proovige kloon-masinast põhiarvutisse SSH abil sisse logida):

iptables -A INPUT -j DROP

Lugege iptables manuaali ja vaadake, missuguseid teisi valikuid saab kasutada koos - j REJECT --reject-with parameetriga.

Proovige erinevate keelamisviiside mõju nmap'i väljundile. (vajalik -Pn, kuna ping on meie reeglite järgi keelatud)

Nüüd modifitseerige skripti ning lubage ssh porti (22) saabuvad paketid. Lisame ka sisenevate ssh ühenduste logimiseks eraldi reegli. Pange järgnevad kahks reeglit skriptis iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT rea järgi.

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j LOG --log-prefix "ssh yhendused: "
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT

Salvestage ja käivitage skript. Veenduge, et üle ssh ühenduse loomine ja logimine töötab kloon-arvutist põhivirtuaalmasinasse.

Tekitage reegel ping (ICMP echo) lubamiseks ja lisage SSH reeglite ette skriptis:

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT

Täiendage ssh ja icmp reegleid nii, et nad lubaksid ühendusi ainult kindla IP-aadressi pealt IP-aadressi põhjal filtreerimiseks saab kasutada iptables käsu --source või -s lippu.

iptables -A INPUT -s 192.168.1.210,192.168.1.211 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -s 192.168.1.210,192.168.1.211 -m state --state NEW -p tcp --dport 22 -j LOG --log-prefix "ssh yhendused: "
iptables -A INPUT -s 192.168.1.210,192.168.1.211 -m state --state NEW -p tcp --dport 22 -j ACCEPT

NB! Testige, et lubatud õige arvutist saab teie masinat pingida ning ssh kaudu sisse logida, aga teistest arvutitest seda teha ei saa (muutke varasemalt lubatud arvuti IP skriptist valeks ja proovige uuesti).

Lisage veel juurde ka HTTP port 80, HTTPS ja SMTP serveri portide lubamine naaberarvutitest. Selleks peame teadma levinud teenuste kokkuleppelisi vaikimisi kasutatavaid pordinumbreid, mida on mugav meelde tuletada näiteks Wikipedia vastavast tabelist https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers . Õppejõu skripti näidiskood, mis ei sisalda HTTPS ja SMTP tulemüüri reegleid ja võiksite iseseisvalt lisada modifitseerides olemasolevaid näiteid.

#!/bin/sh
iptables -F

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -s 192.168.1.210,192.168.1.211 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -s 192.168.1.210,192.168.1.211 -m state --state NEW -p tcp --dport 22 -j LOG --log-prefix "ssh yhendused: "
iptables -A INPUT -s 192.168.1.210,192.168.1.211 -m state --state NEW -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 80  -j ACCEPT
iptables -A INPUT -j LOG --log-prefix "input-reject "
iptables -A INPUT -j REJECT

Käivitage skript ja tutvuge iptables olekuga kasutades käsku sudo iptables -L -nv --line-numbers.

NB! Enne järgmise ülesande juurde minemist võiks teha koopia praegusest skriptist, et teil oleks võimalik praegust olukorda taastada, kui hiljem kogemata skripti ära lõhute.

Uute ahelate loomine

Sellisel viisil IP-põhiste reeglite lisamine on tihti vajalik, aga mis juhtub, kui naabreid on väga palju? Suure arvu lubatud IP-aadresside ja protokollide korral kasvab iptables reeglite arv väga kiiresti. Kümne protokolli ja pordi avamine 10 naabri jaoks nõuaks meilt 100 filtreerimise reeglit.

Selliste olukordade lihtsustamiseks saab kasutada uusi filtreerimise ahelaid. Kasutaja poolt defineeritud iptables ahelaid võib käsitleda sarnaselt funktsioonide või meetodite kasutamisele programmeerimises. Nendesse saab kokku koguda kõik teatud olukorras vajalikud reeglid ning selle olukorra tekkimisel saab paketid sinna ahelasse suunata, kus neid reegleid siis rakendatakse. Iptables ahelate kohta saate lugeda iptables manuaalist või näiteks viidatud blogipostitusest.

Meie soovime teatud hulgale naabriarvutitele lubada SSH, ICMP, HTTP, HTTPS ja SMTP protokolle. Selleks saame me luua uue NAABRID ahela ning sinna panna kõik nende protokollidega seotud filtreerimise reeglid. Edaspidi, kui pakett tuli naabri IP-aadressilt, saame selle paketi lihtsalt suunata sinna ahelasse (sarnaselt funktsiooni välja kutsumisega programmeerimises).

Modifitseerige iptables skripti nii, et koondada naabrite jaoks mõeldud reeglid eraldi ühisesse NAABRID ahelasse, ning suunake kõik naabrite IP-aadressilt saabuvad paketid sinna ahelasse.

Järgmine reegel loob uue naabrite ahela (paigutage see skripti algusesse peale iptables -F rida):

iptables -N naabrid

Lisage skripti algusesse peale iptables -F rida ja enne eelnevat uuesti loomist ka reegel, mis eemaldab süsteemist naabrid ahela, et teie skript saaks selle uuesti luua. See on vajalik, sest iptables -F ei eemalda süsteemist naabrite ahelat ja kui teie skript üritaks seda uuesti luua siis saaksite igakord käivitamsiel veateate (nüüd ainult skripti esimesel käivitamisel, et naabrid nimeline ahel ei eksisteeri).

iptables -X naabrid

Liigutage kõik naabritele kehtivad reeglid (SSH, ICMP, HTTP, HTTPS ja SMTP) NAARBID ahelasse ning lisage ahela lõppu reegel, mis suunab paketid tagasi eelmisesse ahelasse (-j RETURN abil):

iptables -A naabrid ...
iptables -A naabrid ...
iptables -A naabrid ...
iptables -A naabrid ...
iptables -A naabrid -j RETURN

Seejärel lisage INPUT ahelasse filtreerimise reeglid naabrite arvutitest pärit (IP järgi) pakettide suunamiseks NAABRID ahelasse:

iptables -A INPUT -s 192.168.XX.ZZZ,192.168.YY.XYZ -j naabrid 

Lisage logimise reegel, mis logib kõik naabrite ahelasse saabunud paketid nii, et logimise teade oleks kujul: "Perenimi-NAABRID-ahel", kus siis "Perenimi" on asendatud teie nimega. NB! maksimaalne lubatud --log-prefix parameetri väärtus on kuni 29 tähemärki, seega kui teil on väga pikk perenimi lühendage nime või sõnumit.

Tulemus võiks iptables väljundis välja näha näiteks selline (ei pea olema täpselt sama, see on näidis vihjeteks ja enesekontrolliks).

NB! Testige kindlasti üle, et loodud skript töötab korrektselt. Ärge unustage, et iptables kontrollib reegleid järjestikku, seega reeglite järjekord skriptis on väga oluline. Kontrollige, et lubatud arvuti IP-lt saab teie masinat pingida ning SSH kaudu sisse logida ja "valelt" IP-lt ei saa (modifitseerige varasemalt lubatud arvuti IP skriptis "valeks" ja proovige uuesti). Testimiseks kasutage kloon virtuaalmasinat.

Iseseisev ülesanne

  • Praktikumist arvestuse saamiseks esitage:

Arvestus 1: Tehke ekraanitõmmis nii, et kahes kõrvutiolevas terminaliaknas oleks näha tegevused nii nagu need on järgnevas tabelis kirjeldatud.

Vasak terminaliakenParem terminaliaken
Andmeturve Linux Mintkloon virtuaalmasin
teie IP-aadress käsuga ip -o addr | grep "inet 192.168." 
käsk, mis eemaldab olemasolevad iptables reeglid sudo iptables -F 
uurige millised pordid on kuulamas teie masinas sudo nmap -sV -O localhost 
käivitage enda iptables skript sudo sh skript.sh 
  tehke ssh ühendus naabri ahelas olevasse IP-ga kloon virtuaalmasinasse X ssh kasutaja@kloon-VM-IP
  kasutage nmap-i, et skaneerida arvutist X enda IP-ga seotud porte sudo nmap enda-ip-aadress
  logige naabri ahela arvutist välja exit
Modifitseerige nano skript.sh käsuga tulemüüri seadistust nii, et klooni IP ei oleks naabrite ahelas 
käivitage enda iptables skript sudo sh skript.sh uuesti 
Kirjuta terminali käsureale enda eesnimi ja perenimi käsuga echo "Eesnimi Perenimi" 
  tehke ssh ühendus kloon virtuaalmasinasse, mis seekord pole naabrite ahelas ssh kasutaja@kloon-VM-IP
  kasutage nmap-i, et skaneerida kloonist enda IP-ga seotud porte sudo nmap enda-ip-aadres
  logige kloonist välja exit

Ekraanipilt väiks välja näha midagi sellist:

Arvestus 2: Esitage oma skript.sh tekstilisel kujul, mis sisaldab naabrite jaoks ühise ahela kasutamist.

  • INPUT ahel peab sisaldama lokaalsete ühenduste (-i lo) ning varasemalt juba lubatud ühenduste (-state ESTABLISHED,RELATED) reegleid.
  • INPUT ahelas peavad olema reeglid naabrite ahelasse IP'de järgi suunamiseks.
  • Naabrite ahelas peavad olema reeglid ICMP, SSH, HTTP, HTTPS ja SMTP lubamise kohta.
  • Skriptis peab olema logimise reegel, mis logib kõik naabrite ahelasse saabunud paketid nii, et logimise teade oleks kujul: @@"Perenimi-NAABRID-ahel", kus siis "Perenimi" on asendatud teie nimega. NB! maksimaalne lubatud --log-prefix parameetri väärtus on kuni 29 tähemärki, seega kui teil on väga pikk perenimi lühendage nime või sõnumit.
  • Kõik teised ühendused/paketid peavad olema keelatud.
  • NB! Testige kindlasti, et skript töötab. Selgelt vigase ja testimata skripti esitamise eest on tulemuseks 0 punkti!

IPv6 ja turvalisus

Käesolevas ja varasemates praktikumides oleme keskendunud peamiselt IPv4 võrguühenduse näidetele ja turvalisusele. Samas IPv6 on juba aastaid kasutusel ja enamik kaasaegseid operatsioonisüsteeme toetab IPv6. Enda valmisolekut IPv6 kasutamiseks saad mugavalt testida lehel http://test-ipv6.com . Õppejõul näiteks Windows põhiarvuti toetas kenasti IPv6 ühendust ja ühendusi, kuid Virtualbox virtuaalmasinas ei olnud IPv6 töökorras, sest vaikimisi Virtualbox veel IPv6 ühendusi ei toeta. Kuigi IPv6 on iga päevaga järjest populaarsem on IPv6 veel siiski "uus" asi paljude jaoks ja isegi internetiavarustest oli suhteliselt raske leida head kvaliteetset IPv6 turvalisust tutvustavat video. Samas väga paljud pahalased kasutavad viimastel aastatel just inimeste (k.a. IT spetsialistide) vähest teadlikkust IPv6-st rünneteks ära.

Esimene video tutvustab pfsense (vabavaraline tulemüüri ja ruuteri tarkvara) näitel kuidas IPv6 kodustes tingimustes testida saab:

Teine video keskendub juba täpsemalt IPv6 turvanüannsidele, kuid eeldab osalejatelt varasemaid teadmisi IPv6 võrgundusest:

Lisalugemine: IPv6 Security Guide: Do you Have a Blindspot? https://www.varonis.com/blog/ipv6-security/ Teadusartikkel: IPV4/IPV6 security and threat comparisons https://www.sciencedirect.com/science/article/pii/S187704281000902X

Pärast videode ja materjalidega tutvumist vasta interneti abiga järgmistele küsimustele:

  1. Millised 3 uut rünnakut teeb IPv6 tehnoloogia võimalikuks võrreldes "IPv4 only" võrguga? (0.3p)
  2. Kas praktikum10 kasutatud skript.sh failis olev tulemüüri skript kaitseb ka IPv6 ühenduste vastu, kui meie Linux Mint virtuaalmasin omaks avalikku IPv6 aadressi? põhjenda paari lausega. (0.2p)
  3. IPv6 ei kasuta ARP tehnoloogiat IP-aadresside jagamiseks, seega ei saa teha ka ARP spoof rünnet (praktikum8). Mis nime kannab teie arvates ARP spoofile sarnane rünne IPv6 aadressiruumis? põhjenda paari lausega (lisa viide millisele veebilehele/videole pärineb sinu vastus). (0.2p)
  4. Linux ja MacOS tulevad vaikimisi "avatud" või mitteaktiivse tulemüüriga võrreldes Microsoft Windows'iga, kus tulemüür on vaikimisi seadistatud "sissetulevatele ühendustele" (Enabled on incoming traffing). Leidke internetist usaldusväärne viide ja kirjutage enda sõnadega paari lausega eesti keeles: Miks Linux ja MacOS on otsustanud vaikimisi tulemüüri mitte aktiviseerida sissetulevatele ühendustele võrreldes Windowsiga, kus tulemüür on vaikimisi aktiivne sissetulevatele ühendustele? (viide 0.1p, paarilauseline põhjendus 0.2p)

Boonus: Kui leiate internetist vabalt kättesaadava (tasuta ja ei vaja sisselogimist) video või iseseisva lugemise IPv6 turvalisuse kohta, mida teie arvates võiks ülesande kirjelduses kasutada meie näidete asemele saatke link ja lühike kirjeldus materjali sisu kohta alo.peets@ut.ee ja võite teenida boonuspunkte.

Esitada Praktikum10:

Praktikumi ülesande lahendamine annab neli punkti ja esitamiseks on umbes kaks nädalat alates praktikumi toimumisajast ( kuni 28. aprill tähtajani).

  • Ülesanne 1: Tehke ekraanitõmmis nii, et kahes kõrvutiolevas terminaliaknas oleks näha tegevused nii nagu need on juhendis kirjeldatud (vt näidispilti ja kirjeldust). - 2p
  • Ülesanne 2: Esitage oma skript.sh tekstilisel kujul, mis sisaldab naabrite jaoks ühise ahela kasutamist. - 1p
  • Ülesanne 3: Õppevideode (või muu interneti materjali) põhjal vasta järgmistele kontrollküsimustele IPv6 ja tulemüüri kohta. - 1p
10. Praktikum 10 - Tulemüür
Solutions for this task can no longer be submitted.

Vabatahtlik lisaülesanne - Väljuvate ühenduste piiramine

Kui te soovite piirata mingi kindla arvuti kasutaja pakette, siis saab kasutada sellist reeglit:

iptables -A OUTPUT -m state --state NEW -m owner --uid-owner=kasutaja -j DROP

Tekitage reeglid, et "kasutaja" saaks ainult veebi sirvida. (Millised erinevad võimalused selleks on? Nende puudused?)

NB! Veebisirvimise jaoks on vajalik ka nimelahenduse (DNS) lubamine - UDP port 53. Vaadake erinevate teenuste pordinumbreid failist /etc/services

Praktiline lisainfo - Tulemüüri seadistamine üle võrgu.

Praktikas tuleb tihti tulemüüri konfigureerida üle võrgu. Et vältida sellises olukorras kogemata enda süsteemist väljalukustamist (nagu ülevalolev käsk teeb), on mõistlik enne sellise reegli sisestamist paika panna varuvariant, mis eelneva olukorra automaatselt taastab.
Näiteks võib tekitada endale käivitatava skripti, sisuga iptables -F, mis kõik olemas olevad iptables reeglid kustutab ning siis käivitada see viitega:

# at -f /täis/tee/skriptini.sh now+10 minutes

Sel juhul kui te ennast kogemata süsteemist välja lukustate, taastatakse esialgne olukord automaatselt 10 minuti möödudes. Praktikumi masinates käsku at ei ole, aga vastava paketi võib sinna paigaldada:

sudo apt install at

Viited

  • Youtube õppevideo "Mastering IPTables": Part I, Part II, Final
  • iptables diagramm
  • Institute of Computer Science
  • Faculty of Science and Technology
  • University of Tartu
In case of technical problems or questions write to:

Contact the course organizers with the organizational and course content questions.
The proprietary copyrights of educational materials belong to the University of Tartu. The use of educational materials is permitted for the purposes and under the conditions provided for in the copyright law for the free use of a work. When using educational materials, the user is obligated to give credit to the author of the educational materials.
The use of educational materials for other purposes is allowed only with the prior written consent of the University of Tartu.
Terms of use for the Courses environment