Tulemüür - iptables
NB! käesolev praktikumijuhend on valmis iseseisvaks läbimiseks. Küsimuste/kommentaaride korral pöörduge julgelt aine õppejõudude poole.
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.
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. 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 muudke ära kloonis
hostname kujule perenimi-kloon
ja muutke ära hostinimi ja 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). Eelmises kirjapilids /24
näitab võrgumaski, mis pikalt välja kirjutatult on 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
.
Installeeriga 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 eelis on see, et seda saab kasutada teiste arvutite skänneerimiseks. 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 ütleb, 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 skripti fail 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 see aitab meil taastada esialgne olukord. 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 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 reegeli. 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 ping
ida 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 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: "Eesnimi Perenimi - NAABRITELT LUBATUD PAKETID"
, kus siis "Eesnimi Perenimi" on asendatud teie nimega.
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.
Praktikumi ülesanded
- 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 terminaliaken | Parem terminaliaken |
---|---|
Andmeturve Linux Mint | kloon 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 skänneerida 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 skänneerida 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:
"Eesnimi Perenimi - NAABRITELT LUBATUD PAKETID"
, kus siis "Eesnimi Perenimi" on asendatud teie nimega. - 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!
Lahendusi võtame vastu järgmistes failiformaatides: .txt, .sh, .pdf, .zip.
10. Praktikum 10 - TulemüürTagasiside
Praktikumi lõpus palume anda tagasisidet, sest see võimaldab meil antud praktikumi ja ka järgmisi praktikume paremaks muuta. Tagasiside on anonüümne ja tagasiside vormi leiate järgneva lingi abil: tagasiside ankeet.
Kodune ülesanne
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.
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:
Pärast videode vaatamist vasta interneti abiga järgmistele küsimustele:
- Millised 3 uut rünnakut teeb IPv6 tehnoloogia võimalikuks võrreldes "IPv4 only" võrguga? (0.3p)
- 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) - IPv6 ei kasuta ARP tehnoloogiat IP-aadressite 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)
- 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äärvne 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.
25. Kodune ülesanne 10 - IPv6Vabatahtlik 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