Tämä ohje ei sovellu aloittelijalle. Opiskele Ubuntun perusasiat ennen tämän ohjeen noudattamista.
Tutustu ensin näihin ohjeisiin: http://fi.wikibooks.org/wiki/Ubuntu_tutuksi ja http://linux.fiFirestarter on olemassa, ja hyvä niin, mutta entäpä jos sitä ei halua käyttää?
Tässä yksi vaihtoehto rakentaa
netfilter/iptables -palomuuri,
ja ehkä hiukan erilainen lähestymistapa kuin yleensä -- me nimittäin mennään nyt piiloon!
Testaa ensin nykyinen systeemisi vaikkapa tällä testerillä:
(kts. alta
Ubuntun oletusasetusten palautus jos haluat testata asiaa oletusasetuksin)
http://probe.hackerwatch.org/probe/probe.aspJos iptables asetukset ovat Ubuntun oletukset (kaikki ACCEPT), kaikki testerin
testaamat portit ovat keltaisena. Tilanne ei sinänsä ole vaaraallinen koska
mitään palveluita ei ole käynnissä portteja kuuntelemassa (oletuksena).
Mutta me kuitenkin näymme selkeästi internettiin.
Piilossa olisi jotenkin mukavampi olla, ja vihreä on kauniimpi värikin kuin keltainen?
Joten säädetään iptables-asetuksia hiukan, tai oikeastaan aika raskaallakin kädellä.
Periaate on että ensin pudotetaan kaikki pois, ja sitten sallitaan vain tarpeellinen.
Käytetään ainoastaan DROP -sääntöä, koska silloin sisäänpyrkijä ei havaitse meitä ollenkaan.
HUOM, asetukset tulevat käyttöön heti kun ne lisätään.
# tarkastele tilannetta aina halutessasi:
sudo iptables -L
#tallennetaan nykyinen tilanne, ihan vain varulta
sudo iptables-save > ~/.palomuuri_backup
#poistetaan käytöstä kaikki olemassa olevat säännöt
sudo iptables --flush
#sallitaan lo, tämä on TÄRKEÄ rivi, koska kaikki INPUT pudotetaan kohta
#suorita siis EHDOTTOMASTI TÄMÄ komento NYT:
sudo iptables -I INPUT 1 -i lo -p all -j ACCEPT
#pudotetaan kaikki sisääntuleva
sudo iptables -P INPUT DROP
#pudotetaan kaikki forward
sudo iptables -P FORWARD DROP
#pudotetaan kaikki ulospyrkivä
sudo iptables -P OUTPUT DROP
# nyt mikään ei toimi, ei sisään eikä ulos, joten:
#sallitaan ainoastaan itseaiheutettu INPUT (selaimet yms.)
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#sallitaan ainoastaan itseaiheutettu OUTPUT
sudo iptables -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#katsellaan lopputulosta:
sudo iptables -L --line-numbers
Kokeillaan taas testerillä:
http://probe.hackerwatch.org/probe/probe.aspTasaisen kauniin vihreää kaikkialla, olemme piilossa, NAM!
Selaimet kuitenkin toimivat ja kaikki muukin itseaiheutettu liikenne.
Tilanne muuttui ratkaisevasti (paremmaksi) noilla muutamalla muutoksella.
Tässä olisi minusta se piste jossa Ubuntun(kin) palomuuri voisi aivan hyvin olla oletuksena.
Jos käytät/lisäät palveluita tms. pitää niiden käyttämille porteille asettaa ACCEPT erikseen.
Joten jos käytössä on vaikkapa www-serveri, säädetään hiukan lisää:
#sallitaan www-serveri portissa 80, lisää tämä vain jos käytät www-serveriä
sudo iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 80 --syn -j ACCEPT
#sallitaan sisääntuleva (vieras) FTP, lisää tämä vain jos FTP serveri tms. on käytössä
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#sallitaan SSH, lisää tämä vain jos käytät SSH:ta
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#katsellaan taas lopputulosta:
sudo iptables -L --line-numbers
Voit poistaa sääntöjä (rivejä) komennolla
sudo iptables -D XXX RIVINUMEROJossa XXX on joko INPUT, FORWARD, tai OUTPUT
Katso rivinumerot aina komennolla
sudo iptables -L --line-numbersMuokkaaminen tapahtuu helpoiten poistamalla rivi (-D valitsin) ja luomalla uusi,
tai korvaamalla olemassa oleva rivi uudella (-R valitsin, kts. lisää alta)
Tallennetaan asetukset jotta saadaan ne käyttöön heti koneen käynnistyksessä,
sudo komento ei toimi tässä (jostakin kumman syystä), joten sudoudu kokonaan komennolla sudo su
sudo su
iptables-save > /etc/palomuuri
exit
Tarkista syntynyt tallennus:
cat /etc/palomuuri(älä muokkaa tiedostoa käsin)
Muokataan käynnistyskäsky tiedostoon
/etc/network/interfaceslisää tämä rivi siten että se on juuri ennen internet yhteyttä hoitavan verkkokortin asetusrivejä
(siis auto ethX rivin yläpuolelle, jossa X = verkkokorttisi jolla olet yhteydessä internettiin [auto eth0]).
pre-up iptables-restore < /etc/palomuuri
Eli näin:
auto lo
iface lo inet loopback
pre-up iptables-restore < /etc/palomuuri
auto eth0
iface eth0 inet dhcp
(muitakin tapoja varmasti on käynnistää ko. juttu, mutta näin se ainakin lähtee ajoissa)
edit: voit testata tuon asetusrivin näin:
------------------------------------------------------------
sudo /etc/init.d/networking restart
jos netti toimii tuon jälkeen, kaikki on hyvin. Jos netti ei toimi, poista ko. rivi ja aja
sudo /etc/init.d/networking restart uudelleen jolloin netti taas toimii, huuda sitten apua!
------------------------------------------------------------
Homma on valmis, ja se on jo käytössäkin, mutta myös koneen käynnistyksessä
palomuuri säätyy näille asetuksille automaattisesti.
Tarkista asetusten latautuminen 1. buutin jälkeen komennolla:
sudo iptables -LAlkutilanteeseen pääset koska vain komennolla:
sudo iptables-restore < ~/.palomuuri_backup
Voit kätevästi tallettaa erilaisia asetuksia:
sudo iptables-save > ~/.palomuuri1ja ottaa tarvittaessa käyttöön halutun tallennuksen:
sudo iptables-restore < ~/.palomuuri1Ubuntun oletusasetusten palautus:sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables --flush
Komennot:#pikaohje
iptables -h
#ohje
man iptables
#listaus
sudo iptables -L
#listaus rivinumeroilla
sudo iptables -L --line-numbers
# tallenna nykyinen tilanne
sudo iptables-save > /polku/tiedostonimi
# ota tallennettu tilanne käyttöön
sudo iptables-restore < /polku/tiedostonimi
# poista kaikki säännöt
sudo iptables --flush
# vaihda INPUT lohkon oletussääntöä
sudo iptables -P INPUT ACCEPT
# lisää uusi rivi viimeiseksi
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
# lisää uusi rivi valittuun kohtaan (X = rivinumero)
sudo iptables -I INPUT X -p udp --dport 137 -s 0/0 -j DROP
# korvaa valittu rivi uudella (X = rivinumero)
sudo iptables -R INPUT X -p udp --dport 139 -s 0/0 -j DROP
# poista rivi (X = rivinumero)
sudo iptables -D INPUT X
Testerit:http://probe.hackerwatch.org/probe/probe.asphttp://www.grc.com/default.htm valitse ShieldsUp! -> Proceed -> All Service Ports
http://www.dslreports.com/scan (vaatii Javan)
https://whacker4.hackerwhacker.com/quickscan.php Linkit:http://www.netfilter.org/http://iptables-tutorial.frozentux.net/iptables-tutorial.htmlhttp://en.wikipedia.org/wiki/Netfilteredit: hyvä porttilista löytyy tiedostosta:
/etc/servicesJos on tarvetta niin sieltä voi katsoa mitä portteja pitää päästää sisään millekin asialle.
tai sitten ihan IANAn porttilistasta:
http://www.iana.org/assignments/port-numbersFirestarter Howto:
http://forum.ubuntu-fi.org/index.php?threadid=1984---
PS. komentteja / parannusehdotuksia saa antaa.
Ohjeen lisenssi : Public domain