Kirjoittaja Aihe: [Mini howto] netfilter/iptables -palomuuri  (Luettu 65997 kertaa)

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
[Mini howto] netfilter/iptables -palomuuri
« : 11.07.06 - klo:12.58 »
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.fi


Firestarter 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.asp

Jos 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.
Koodia: [Valitse]
# 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.asp
Tasaisen 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ää:
Koodia: [Valitse]
#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 RIVINUMERO
Jossa XXX on joko INPUT, FORWARD, tai OUTPUT
Katso rivinumerot aina komennolla sudo iptables -L --line-numbers

Muokkaaminen 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
Koodia: [Valitse]
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/interfaces
lisää 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]).
Koodia: [Valitse]
pre-up iptables-restore < /etc/palomuuri
Eli näin:
Koodia: [Valitse]
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:
------------------------------------------------------------
Koodia: [Valitse]
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 -L

Alkutilanteeseen pääset koska vain komennolla:
Koodia: [Valitse]
sudo iptables-restore < ~/.palomuuri_backup

Voit kätevästi tallettaa erilaisia asetuksia:
sudo iptables-save > ~/.palomuuri1
ja ottaa tarvittaessa käyttöön halutun tallennuksen:
sudo iptables-restore < ~/.palomuuri1


Ubuntun oletusasetusten palautus:
Koodia: [Valitse]
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables --flush


Komennot:
Koodia: [Valitse]
#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.asp
http://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.html
http://en.wikipedia.org/wiki/Netfilter

edit: hyvä porttilista löytyy tiedostosta:
/etc/services
Jos 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-numbers

Firestarter Howto: http://forum.ubuntu-fi.org/index.php?threadid=1984

---
PS. komentteja / parannusehdotuksia saa antaa.

Ohjeen lisenssi : Public domain

« Viimeksi muokattu: 02.08.09 - klo:19.53 kirjoittanut raimo »
So long and thanks for all the fish!

eliasj

  • Käyttäjä
  • Viestejä: 4073
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #1 : 11.07.06 - klo:13.04 »
Tämä oli hyvä howto. Toimiiko muuten BitTorrent tms. tämän jälkeen?
alias vililikku

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #2 : 11.07.06 - klo:13.33 »
Tämä oli hyvä howto. Toimiiko muuten BitTorrent tms. tämän jälkeen?
hmm, periaatteessa kaikki minkä itse käynnistät toimii sekä sisään että ulos, joten pitäisi toimia.
Varmaksi en tuota sano, kun itse en ole BitTorrentia koskaan käyttänyt.
Mutta periaatteessa mikään muu, kuin jokin serveri johon tulee ulkopuolisia pyyntöjä
(www, FTP yms), ei tarvi toimiakseen erillistä sääntöä.
Mutta voi tuosta olla poikkeuksiakin, ja silloin kannattaa vaikkapa googlella katsella mitä
portteja ko. hommalle pitää avata.

edit:
samma på engelska: http://dash.atspace.org/firewall.html
« Viimeksi muokattu: 11.07.06 - klo:21.51 kirjoittanut raimo »
So long and thanks for all the fish!

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #3 : 12.07.06 - klo:16.34 »
Törmäsin nyt sitten itse pienoiseen ongelmaan tuon kanssa.
FTP-aktiivimoodi ei toimi tuolla iptables -virityksellä välttämättä.
Tuo ei sinänsä FTP siirtoon tarkoitettuja oikeita ohjelmia haitanne, osaavat vaihtaa / ovat jo passive-modessa...

Mutta kun minä haluan hakea Perlillä ja LWP::Simple get:llä säätietoja NOAA anonyymi-FTP -palvelimelta niin tämäpä muuri ei päästäkkään läpi. Hmm, jos käyttäisin  Net::FTP palikkaan niin voisin vaihtaa passive moden päälle, sitten se toimisi. Mutta miten sen vaihdat tuollaisessa get/ftp hässäkässä (ei mitenkään).

Jonkun aikaa piti tuumailla, mutta lopulta ratkaisin tilanteen näinkin helposti:
Koodia: [Valitse]
#sallitaan aktiivinen FTP, mutta vain tietyltä halutulta serveriltä
sudo iptables -A INPUT -p tcp -s 205.156.51.200 --sport 20 -j ACCEPT
eli INPUT:iin sallimussääntö: halutusta  IP osoitteesta päästetään lähdeportista 20 (ftp-data) tuleva juttu sisään.
Ja taas toimii säätietojen imutus ja portit on avoinna vain luotetulle taholle jos ko. taho lähestyy portistaan 20.


Lisää säätelyä, osa 0.2 ;)
Estetään tuhman IP:n pääseminen www-serverille, ja koska portille 80 on olemassa ACCEPT-sääntö niin
katso ensin komennolla sudo iptables -L --line-numbers millä rivillä lukee tcp dpt:www ja ACCEPT

Esto(t) pitää saada ko rivin yläpuolelle, leikitään että tcp dpt:www rivi on 4, ja kun lisäät eston samalle riville (4) se menee oikeaan paikkaan (vrt.  -I = insert)
Koodia: [Valitse]
sudo iptables -I INPUT 4 -p tcp -s XX.XX.XX.XX --dport 80 -j DROP
jossa XX.XX.XX.XX on estettävä IP

Tuota(kin) voit testata vaikkapa tällä palvelulla (ei vaadi kirjautumista tms ainakaan nyt):
http://www.the-cloak.com/login.html tuolla anonyymipalvelulla saat oman IP osoitteen "vaihdetuksi" toiseksi, eli pääset testaamaan itse serveriäsi ikäänkuin vieraana "ulkoa päin".
Katso ensin IP serverisi lokista ja sitten estät sen ja kokeilet sitten ladata sivuasi uudelleen.

0.3 samba?
Joku jolla samba on voisi kokeilla toimiiko se tällä säädöllä jos INPUT on asennossa DROP, kiitos?
Koodia: [Valitse]
#HUOM laita vieras IP(t) ensin tuohon LÄHDE.IP(t).TÄHÄN tilalle,
#jos haluat koko maailman sambaavan kanssasi (älä halua!) poista -s LÄHDE.IP(t).TÄHÄN osuus riveistä
sudo iptables -A INPUT -p tcp  -s LÄHDE.IP(t).TÄHÄN -m multiport --dports 135,139,445 -j ACCEPT
sudo iptables -A INPUT -p udp -s LÄHDE.IP(t).TÄHÄN -m multiport --dports 137,138 -j ACCEPT

« Viimeksi muokattu: 15.07.06 - klo:18.56 kirjoittanut raimo »
So long and thanks for all the fish!

Crowmoor

  • Käyttäjä
  • Viestejä: 54
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #4 : 17.07.06 - klo:13.15 »
Tosi hyvä howto. Mutta kun tein tämän niin en pääse enään xboxiini ftp:llä. Mitenkäs se saatais taas kulkemaan?

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #5 : 17.07.06 - klo:15.20 »
Hmmm? paha sanoa mitään, siis tuntematta ko. vehjettä mitenkään. :)

Epäilempä kuitenkin että voisi johtuu juuri tuosta aktiivisen FTP:n "toimintatavasta",
joten kokeile ensin:
Koodia: [Valitse]
sudo iptables -A INPUT -p tcp -s XBOX.IP.TÄHÄN --sport 20 -j ACCEPT

jos ei auta, niin sitten ainakin tällä pitäisi lähteä toimimaan:
Koodia: [Valitse]
sudo iptables -A INPUT -p tcp -s XBOX.IP.TÄHÄN -j ACCEPT
jolloin kaikki TCP portit pääsevät Xlootan IP:stä sisään, mutta muualta ei.

Ja jollei tuollakaan lähde, niin sama homma kokkeeksi OUTPUT:lle
Koodia: [Valitse]
sudo iptables -A OUTPUT -p tcp -d XBOX.IP.TÄHÄN -j ACCEPT
Huomaa -d valitsin koska nyt boxi on "destination"

Vai onko siinä poksissa joku DHCP systeemi tms? kun en tiedä siitä värkistä yhtään mitään.  ::)
Tuolta varmaan löytyy vinkkiä jos ei lähde toimimaan:
http://forums.afterdawn.com/thread_view.cfm/228294
So long and thanks for all the fish!

Crowmoor

  • Käyttäjä
  • Viestejä: 54
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #6 : 17.07.06 - klo:16.20 »
Hmmm? paha sanoa mitään, siis tuntematta ko. vehjettä mitenkään. :)

Epäilempä kuitenkin että voisi johtuu juuri tuosta aktiivisen FTP:n "toimintatavasta",
joten kokeile ensin:
Koodia: [Valitse]
sudo iptables -A INPUT -p tcp -s XBOX.IP.TÄHÄN --sport 20 -j ACCEPT

jos ei auta, niin sitten ainakin tällä pitäisi lähteä toimimaan:
Koodia: [Valitse]
sudo iptables -A INPUT -p tcp -s XBOX.IP.TÄHÄN -j ACCEPT
jolloin kaikki TCP portit pääsevät Xlootan IP:stä sisään, mutta muualta ei.

Ja jollei tuollakaan lähde, niin sama homma kokkeeksi OUTPUT:lle
Koodia: [Valitse]
sudo iptables -A OUTPUT -p tcp -d XBOX.IP.TÄHÄN -j ACCEPT
Huomaa -d valitsin koska nyt boxi on "destination"

Vai onko siinä poksissa joku DHCP systeemi tms? kun en tiedä siitä värkistä yhtään mitään.  ::)
Tuolta varmaan löytyy vinkkiä jos ei lähde toimimaan:
http://forums.afterdawn.com/thread_view.cfm/228294


Tuolla ensimmäisellä lähti toimimaan. kiitoksia vain :)
Xboxissa on lähiverkon ip sekä dhcp hakee sille julkisen.
Tuota yhtä kohtaa en ymmärrä tossa ekassa esimerkissä. Siinä on "--sport 20" kohta joka ilmeisesti viittaa porttiin? Miksi se on 20 eikä 21?

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #7 : 17.07.06 - klo:19.54 »
20 on FTP-DATA -portti, ja -sport 20 on vastaanottopään portti 20 (siis sen FTP-serverin portista on kyse),
eli sallitaan kaikki portit jos kutsu tulee sallitun FTP-vastapelurin portista 20
(sport = source port ts. lähdeportti (ei sentään tähtiportti)). :)

Tämä tuolta http://slacksite.com/other/ftp.html lainaamani kaavio selventänee
Koodia: [Valitse]
Active FTP :
     command : client >1023 -> server 21
     data    : client >1023 <- server 20

 Passive FTP :
     command : client >1023 -> server 21
     data    : client >1023 -> server >1023
En minä nyt tiedä onko tuosta kaaviosta mitään iloa, mutta siis kuitenkin:
portit pitää avata silloin kun FTP-serverin (tms boxin) source-portista 20 tulee älämölöä jotta aktiivinen FTP toimii.
Mukavempaa olisi tietenkin sallia vain tietyt portit, vaan mistäpä sen tietää etukäteen mikä se pitäisi olla.
Joten siis päästetään kaikista omista porteista, mutta vain ko. IP:lle ja vain jos se vikisee portistaan 20.

edit: se portti 21 aukeaa siis sillä INPUTin "itseaiheutussäännöllä", mutta tämä portista 20 tuleva paluuliikenne ei ole itseaiheutettua netfilterin mielestä  koska kutsu tulee ulkoa (eikä se tule porttiin 21 eikä 20, vaan "johonkin" porttiin) joten se ei päästä sitä sisään ilman erillistä käskyä, vaikka FTP-yhteys sinänsä kyllä syntyykin. (koskee siis VAIN aktiivista FTP-yhteyttä, passiivinen toimii ilmankin).



 
« Viimeksi muokattu: 17.07.06 - klo:20.06 kirjoittanut raimo »
So long and thanks for all the fish!

Crowmoor

  • Käyttäjä
  • Viestejä: 54
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #8 : 17.07.06 - klo:22.07 »
Tuo selvensi asiaa. En tiennytkään tuosta DATA portista.
Hieman asian vierestä, miten voi vaihtaa lähiverkon ip:n? Kde käytössä. Kokeilin System settings/Verkko-asetukset vaihtaa ja vaihtukin mutta kun laitan dhcp:n takasi päälle, vaihtuu se lähiverkon ip ennalleen.

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #9 : 18.07.06 - klo:13.54 »
Tuo selvensi asiaa. En tiennytkään tuosta DATA portista.
Hieman asian vierestä, miten voi vaihtaa lähiverkon ip:n? Kde käytössä. Kokeilin System settings/Verkko-asetukset vaihtaa ja vaihtukin mutta kun laitan dhcp:n takasi päälle, vaihtuu se lähiverkon ip ennalleen.
Perustetaan "virtuaaliverkkokortti", ilmaus ei liene virallinen, mutta se on kuvaava.
Jos verkkokortti on eth0 ja halutaan olla pysyvästi vaikkapa 192.168.1.13 niin eth0:1 virtuaalikortti lähtee päälle näin:
Koodia: [Valitse]
sudo ifconfig eth0:1 192.168.1.13 netmask 255.255.255.0 up
No kas, nyt se toimiikin jo.
 
Vaikkapa selaimella http://192.168.1.13/ voi sen testata jos www-serveri on käynnissä.
Mokoman saa käynnistyksessä käyntiin monellakin tavalla, mutta tehdään nyt näin:

Editoi /etc/network/interfaces tiedostoa (eth0 määritysten alapuolelle nämä)
Koodia: [Valitse]
auto eth0:1
iface eth0:1 inet static
address 192.168.1.13
netmask 255.255.255.0
#gateway 192.168.1.1

Ja sitten käynnistetään verkotus uudelleen.
Koodia: [Valitse]
sudo /etc/init.d/networking restart
Jos virheitä ei näy, soon siinä ja pysyynee vaikka mikä dhcp pomppisi, koska on static:kiksi määrätty.
Tuon gatewayn kommentoin tuohon, koska toiminee ilmankin? (ellei, ota # pois edestä ?? en tiedä kun en oo verkkokurko) :)

Ps.
Ko. virtuaalikortin IP-osoitetta voi lennossa vaihtaa näppärästi näin:
Koodia: [Valitse]
sudo ifconfig eth0:1 192.168.1.21 netmask 255.255.255.0 up
Nyt .13 lakkasi toimimasta, ja .21 alkoi toimimaan.

Alas/Ylös luonnollisesti näin:
Koodia: [Valitse]
sudo ifdown eth0:1
sudo ifup eth0:1
Ylösnousu noin toimii vain jos asetukset on määritetty interfaces -tiedostossa, jos ei ole niin sitten ifconfig:lla kuten yllä.

Niin ja /etc/hosts tiedostoon rivi
Koodia: [Valitse]
192.168.1.13 teletappilandia
Jolloin http://teletappilandia/ toimii. ;D
« Viimeksi muokattu: 18.07.06 - klo:14.36 kirjoittanut raimo »
So long and thanks for all the fish!

Crowmoor

  • Käyttäjä
  • Viestejä: 54
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #10 : 20.07.06 - klo:10.24 »
Kiitos ja kumarrus  :)

ealho

  • Vieras
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #11 : 24.07.06 - klo:11.45 »
Firestarterin käynnistys näyttää pistävän em. asetukset uusiksi... vai olenko erehtynyt?

rIlmeisesti jatkossa "palomuurin" säädöt tuleekin tehdä juuri how-to:n antaman mallin mukaan eikä Firestarterilla?

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #12 : 24.07.06 - klo:15.39 »
Firestarterin käynnistys näyttää pistävän em. asetukset uusiksi... vai olenko erehtynyt?

rIlmeisesti jatkossa "palomuurin" säädöt tuleekin tehdä juuri how-to:n antaman mallin mukaan eikä Firestarterilla?
Joo, riippuen ainakin osin siitä minkälaisia asetuksia Firestarterilla asettaa.

Firestarterin jäljiltä pääsee palautumaan milloin tahansa tähän systeemiin näin:
sudo iptables-restore < /etc/palomuuri
sikäli mikäli nämä asetukset on tallennettu /etc/palomuuri -tiedostoon.

Ja tietenkin sitten Firestarter service pitää olla pois käynnistä (sysv-rc-conf ohjelmalla on helppo säätää se) jos haluaa tämän muurin pitää käytössä koneen käynnistyksen jälkeen.

En kylläkään ole testannut mitä se FS tekee, koska en asenna sitä, koska en halua! :)
(pitäisi kyllä haluta niin sitten tietäisi)

So long and thanks for all the fish!

GoRDoN

  • Käyttäjä
  • Viestejä: 62
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #13 : 29.07.06 - klo:13.58 »
Kiitoksia hyvästä ohjeesta. Aiemmin olen palomuuria säädellyt Firestarterin avulla, kun en ole hyvää iptables-ohjetta vielä löytänyt, mutta näiden ohjeiden avulla säätö onnistui kivuitta. Firestarterista jäin kuitenkin vielä kaipaamaan logeja, eli mistä niitä pystyisi katselemaan/ minne logit tallennetaan, ja mistä pystyy säätelemään, mitä niihin tallennetaan?

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #14 : 29.07.06 - klo:21.40 »
Firestarterista jäin kuitenkin vielä kaipaamaan logeja, eli mistä niitä pystyisi katselemaan/ minne logit tallennetaan, ja mistä pystyy säätelemään, mitä niihin tallennetaan?

/var/log/messages ja /var/log/syslog (/var/log/kern.log ?) tiedostoihin taitavat mennä oletuksena.
Mutta niihin menee paljon muutakin.

Yksinkertaisimmillaan lokitusta voisi käsipelissä säätää vaikka näin, sysklogd ja klogd servicet pitää olla käynnissä.
Säädä ne halutuille runleveleille sysv-rc-conf työkalulla jotta lähtee buutissa lokittamaan.
Oletuksena nuo varmaan onkin käynnissä?

Tehdään lokitiedosto:
Koodia: [Valitse]
sudo touch /var/log/palomuuri

Lisää /etc/syslog.conf tiedoston alkuosaan (HUOM! ennen *.=debug;\ riviä!),
Tai vaikka ihan ensimäiseksikin tämä:
Koodia: [Valitse]
kern.=debug     /var/log/palomuuri

Sitten lokituksen uudelleenkäynnistys:
Koodia: [Valitse]
sudo /etc/init.d/sysklogd restart

Iptables säädöt, voisi (pitäisi) tehdä niin että oma lohkonsa
jonne sitten lokitettavat ohjataan, mutta aluksi nyt näin (vaihda eth0 oikeaksi jos verkkokorttisi on jokin muu)
Koodia: [Valitse]
# INPUT lokitus
sudo iptables -A INPUT -i eth0 -m limit --limit 30/s -j LOG --log-level 7 --log-prefix "iptables INP: "

# OUTPUT lokitus
sudo iptables -A OUTPUT -o eth0 -m limit --limit 30/s -j LOG --log-level 7 --log-prefix "iptables OUT: "

eli hypätään LOG sääntöön, jolloin kerneli käskee lisäämään tekstiä lokitiedostoon.
--log-level 7  on olennainen, se ohjaa jutun /var/log/palomuuri -tiedostoon (7 = debug)

Se kehittyneempi ja tulevaisuuden kannalta parempi/monipuolisempi vaihtoehto olisi sitten tämmöinen:
lisätään oma LOKI-lohko ja ohjataan siihen tulevat asiat -> LOG
Koodia: [Valitse]
sudo iptables -N LOKI
sudo iptables -A LOKI -m limit --limit 30/s -j LOG --log-level 7 --log-prefix "iptables: "
sudo iptables -A LOKI -j DROP

#ohjataan halutut asiat LOKI-lohkoon
sudo iptables -A INPUT -i eth0 -m state --state INVALID -j LOKI
sudo iptables -A INPUT -i eth0 -p icmp -j LOKI
sudo iptables -A OUTPUT -o eth0 -m state --state INVALID -j LOKI

#vaihtoehtoisesti ohjataan kaikki asiat LOKI-lohkoon (käytä tätä aluksi)
sudo iptables -A INPUT -i eth0  -j LOKI
sudo iptables -A OUTPUT -o eth0 -j LOKI

Esimerkiksi jotenkin noin, jolloin vain invalidisoituneet paketit ja icmp lokittuu.

Aluksi kannattaa käyttää kahta alimmaista jotta näkee että systeemi toimii.
Kovin kauheasti en nyt tuota testannut mutta toimii se. ;)

--limit -aikaa ja --limit-burst X voi säätää haluamakseen.
(--limit 30/s --limit-burst X = X täpahtumaa, jos --limit-burst ei mainita se on 5)

Muistin virkistykseksi:
sudo iptables -N NIMI           # luo uuden NIMI nimisen "lohkon" (chain)
sudo iptables -L --line-numbers # listaus rivinumeroilla.
sudo iptables -D LOKI 2         # poista LOKI-lohkon rivi 2

Ko. LOKI-lohkon voi poistaa vain jos kaikki viittaukset
siihen on ensin poistettu = (0 references), ja se itsekin on tyhjä.
Sitten se poistuu näin: sudo iptables -X LOKI

Jos jostakin syystä poistat /var/log/palomuuri -tiedoston,
sysklogd saattaa seota, sen uudelleenkäynnistys auttaa:
sudo /etc/init.d/sysklogd restart



edit: ARGH! klogd pitää olla käynnissä myös (sysv-rc-conf sekin päälle jos on pois)
uudelleenkäynnistelyyn: sudo /etc/init.d/klogd restart


edit2: lokiin tunkee riviä IP:llä 192.168.1.1, no sehän on kai jotakin ADSL-mölinää vain :)
häivytin sen lokista näin:
Koodia: [Valitse]
sudo iptables -A INPUT -i eth0  -s ! 192.168.1.1 -j LOKI
! merkki aiheuttaa sen että jos sourceosoite on 192.168.1.1 ei lokia kasvateta, muuten kyllä.


edit3: tämä ei paljon selityksiä kaivanne (ainakaan lapsiperheissä?)
Koodia: [Valitse]
sudo iptables -I OUTPUT 1 -d habbo.fi -j LOKI
selitykseksi riittänee että habbo on mennyt ilmeisesti rikki, kun se ei enää toimi.  ;D
I OUTPUT 1 siksi että kielto saadaan sallivan säännön yläpuolelle.

eeh:
Väkersin portinmetsästystyökalun (etsii /etc/services tiedostosta, sekä IANA listalta, ja jopa Googlellakin):
http://dash.atspace.org/kvaak/ports.txt
Lokisuodatin on tulossa sekin, jotta saa lokin ihmisen luettavaan muotoon .. :)

« Viimeksi muokattu: 01.08.06 - klo:17.16 kirjoittanut raimo »
So long and thanks for all the fish!

jounas

  • Vieras
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #15 : 30.07.06 - klo:12.44 »
Hyvät ja selkeät ohjeet olivat!
Mutta mutta... olen laittanut palvelimeni (LAMP-asennus) pystyyn, tein ohjeittesi mukaan iptables-säädöt ja siirsin sivuni WINscp:llä palvelimelleni. Kattelin tässä Apachen error.log -tiedostoa ja sinne nyt näyttäs paukkuvan sekunnin välein ilmoitus [warn] (101)Network is unreachable: connect to listener on [::]:80
eli portti 80:ssä mättää jokin... mitenkäs tämä korjataan?
ymmärsin, että tuo error.log kasvaa aina silloin kun sivuillani käydään, koska tilanne rauhoittuu aina aika ajoin kuitenkin.
« Viimeksi muokattu: 30.07.06 - klo:12.47 kirjoittanut jounas »

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #16 : 30.07.06 - klo:13.10 »
Hyvät ja selkeät ohjeet olivat!
Mutta mutta... olen laittanut palvelimeni (LAMP-asennus) pystyyn, tein ohjeittesi mukaan iptables-säädöt ja siirsin sivuni WINscp:llä palvelimelleni. Kattelin tässä Apachen error.log -tiedostoa ja sinne nyt näyttäs paukkuvan sekunnin välein ilmoitus [warn] (101)Network is unreachable: connect to listener on [::]:80
eli portti 80:ssä mättää jokin... mitenkäs tämä korjataan?
ymmärsin, että tuo error.log kasvaa aina silloin kun sivuillani käydään, koska tilanne rauhoittuu aina aika ajoin kuitenkin.
Hmm, mikäs siinä nyt voisi mättää jos portti 80 on ACCEPT, no kokeile säätää sitä sääntöä "jotenkin"?
Vaikka näin:
Koodia: [Valitse]
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
(poista alkuperäinen rivi ensin)

Jollei tokene, muuta INPUT sallituksi -> sudo iptables -P INPUT ACCEPT
ja tarkkaile tilannetta, jos jatkuu muuta FORWARD ja OUTPUT samalla tavalla jotta nähdään
mistä se warninki nyt tulee.

Tarkista myös mitä lukee Apache:n ports.conf tiedostossa. (Listen 80 pitäisi lukea)

Toisaalta mokomasta pääsenee eroon jos muutat Apachen LogLevel:in hiukan tiukemmaksi
Eli  LogLevel error kun se nyt lienee LogLevel warn
« Viimeksi muokattu: 30.07.06 - klo:13.16 kirjoittanut raimo »
So long and thanks for all the fish!

jounas

  • Vieras
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #17 : 30.07.06 - klo:13.21 »
Äh. Sain korjattua jo tilanteen... oli unohtunu sivujen siirron yhteydessä chmodata tilastointia tekevät .php ja .txt tiedostot ... ainakaan enää ei mokomia erroreita pauku lokiin.
Tällaista sattuu vain kun unohtelee asioita :-X
Anteeksi sekaannus

jsr

  • Käyttäjä
  • Viestejä: 7
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #18 : 08.09.06 - klo:21.29 »
Kiitos tarpeellisesta ja hyvästä ohjeesta, mutta

Lainaus
Muokataan käynnistyskäsky tiedostoon /etc/network/interfaces
lisää 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]).

miten muokkaan /etc/network/interfaces tiedostoa? Kun yritän muokata sitä, en pysty tallentamaan sitä, koska se on
vain luku tiedosto. Minulla oli ylläpito-oikeudet päällä, mutta ei toimi. Ubuntun olen asentanut tänään ja se on ensimmäinen
kerta, kun olen tekemisissä Linuxin kanssa, joten olen aivan kuutamolla Linux jutuissa.

raimo

  • Käyttäjä
  • Viestejä: 3238
    • Profiili
Re: [Mini howto] netfilter/iptables -palomuuri
« Vastaus #19 : 08.09.06 - klo:22.17 »
miten muokkaan /etc/network/interfaces tiedostoa? Kun yritän muokata sitä, en pysty tallentamaan sitä, koska se on
vain luku tiedosto. Minulla oli ylläpito-oikeudet päällä, mutta ei toimi. Ubuntun olen asentanut tänään ja se on ensimmäinen
kerta, kun olen tekemisissä Linuxin kanssa, joten olen aivan kuutamolla Linux jutuissa.
Komentojen edessä pitää olla sudo jos komennolla on tarkoitus tallentaa jonekin muualle kuin käyttäjän kotihakemistoon. Ja lisäksi pitää käyttää jotakin editoria että tiedostoa saa muokattua (vrt. notepad)

Avaa menusta Pääte (eng. Terminal) tai paina Alt+F2 -> x-terminal-emulator -> Enter
ja syötä ko. päätteeseen komento:
sudo gedit /etc/network/interfaces nyt voit muokata sitä, mutta älä muokkaa! :)

0. Perusasiat pitäisi olla ensin opittu, ennen tälläisiä monimutkaisempia juttuja.

1. lue Ubuntu tutuksi oheistus kokonaan kaikessa rauhassa ihan aluksi,
 http://fi.wikibooks.org/wiki/Ubuntu_tutuksi/ tutustu myös http://linux.fi tarjontaan.

2. Ubuntun palomuuria ei tarvitse säätää jos mitään portteja kuuntelevia palveluita ei erikseen oteta käyttöön.
Joten voit rauhassa opetella perusasiat ilman mitään muureja.

3. Asenna Firestarter, se antaa mielenrauhaa "windows-pöpömaailmaan" tottuneelle.
   Siitä ohjetta tällä samalla alueella (linkki on tämän ohjeen alussa).


« Viimeksi muokattu: 08.09.06 - klo:22.23 kirjoittanut raimo »
So long and thanks for all the fish!