j-- Skrevet 26. mars 2010 Skrevet 26. mars 2010 Har en headless server med to nettverkskort som skal fungere som en personlig brannmur og server under The Gathering, og har kommet frem til et regelsett som jeg tror vil fungere. Har ikke noe særlig erfaring med iptables, annet enn å ha brukt det for å dele nettet tidligere. # iptables executable $IPTABLES=/usr/sbin/iptables # enable ip_forward echo "1" > /proc/sys/net/ipv4/ip_forward # eth1: nettverkskortet som er koblet til internett/eksternt nettverk # eth0: nettverkskortet som er koblet til lokalnettverket # Porter som skal være åpne utenfra og inn på serveren: # 21 - ftp # 22 - ssh # 15151 - rtorrent # reset all rules $IPTABLES --flush $IPTABLES --delete-chain # blokkere alt inn til serveren $IPTABLES --table filter --append INPUT --in-interface eth1 --jump DROP # blokkere alt gjennom serveren $IPTABLES --table filter --append FORWARD --in-interface eth1 --jump DROP # slippe igjennom tjenester på serveren på portene under $IPTABLES --table filter --append INPUT --in-interface eth1 --protocol tcp --ports 21,22,15151 --jump ACCEPT # route gjennom serveren # riktig interface på --out-interface-paramteren? $IPTABLES --table nat --append POSTROUTING --out-interface eth1 -jump MASQUERADE Hvordan ser dette regelsettet ut? Forslag til forbedringer? Har ikke testet regelsettet enda, da det å blokkere ssh ved en feil vil gjøre at man ikke kommer inn på serveren.
kpolberg Skrevet 26. mars 2010 Skrevet 26. mars 2010 Opprerer ikke iptables slik at den tar første treffet? Du vil da i utgangspunktet aldri få trafikk gjennom siden du dropper alt.
j-- Skrevet 26. mars 2010 Forfatter Skrevet 26. mars 2010 (endret) Netfilter er bygget opp som tre tabeller, hver med sin tiltenkte funksjon. Disse tre heter «filter», «nat» og «mangle». Hver enkelt tabell har et sett med «kjeder». Hvert kjede inneholder et sett med brukerspesifiserte regler som pakkene blir sammenlignet med i rekkefølge. Dersom pakken samsvarer med regelen kan en operasjon som er gitt i samme regel utføres. I de fleste tilfeller betyr dette at pakken ikke vil sammenlignes med de reglene som kommer etterpå i kjedet. Stemmer fint det kpolberg. Takk Oppdatert regelsett: # iptables executable $IPTABLES=/usr/sbin/iptables # enable ip_forward echo "1" > /proc/sys/net/ipv4/ip_forward # eth1: nettverkskortet som er koblet til internett/eksternt nettverk # eth0: nettverkskortet som er koblet til lokalnettverket # Porter som skal være åpne utenfra og inn på serveren: # 21 - ftp # 22 - ssh # 15151 - rtorrent # reset all rules $IPTABLES --flush $IPTABLES --delete-chain # slippe igjennom tjenester på serveren på portene under $IPTABLES --table filter --append INPUT --in-interface eth1 --protocol tcp --ports 21,22,15151 --jump ACCEPT # blokkere alt inn til serveren om ingen av de tidligere reglene passet $IPTABLES --table filter --append INPUT --in-interface eth1 --jump DROP # blokkere forwarding fra det eksterne nettet og til det interne. Er denne nødvendig? $IPTABLES --table filter --append FORWARD --in-interface eth1 --jump DROP # route gjennom serveren # riktig interface på --out-interface-paramteren? $IPTABLES --table nat --append POSTROUTING --out-interface eth1 -jump MASQUERADE Ser dette bedre ut? Endret 26. mars 2010 av clvñ
kpolberg Skrevet 26. mars 2010 Skrevet 26. mars 2010 Du kan jo legge inn en regel som blokker trafikk mot ssh hvis man prøver å koble til oftere enn 4x innen 1 min. iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
j-- Skrevet 26. mars 2010 Forfatter Skrevet 26. mars 2010 Nydelig! Tenkte faktisk at noe sånt hadde vært bra å ha.
Sokkalf™ Skrevet 26. mars 2010 Skrevet 26. mars 2010 Er det ikke kjappere og enklere å bruke f.eks shorewall istedenfor iptables direkte?
kpolberg Skrevet 26. mars 2010 Skrevet 26. mars 2010 (endret) For min egen del misliker jeg sterkt resultatet av hva disse automatiske programmene klarer å spy ut. Endret 26. mars 2010 av kpolberg
Sokkalf™ Skrevet 26. mars 2010 Skrevet 26. mars 2010 Har ikke sett så nøye på resultatet selv - men det fungerer ihvertfall fint for min del, og tar meg noen minutter å sette opp.
j-- Skrevet 27. mars 2010 Forfatter Skrevet 27. mars 2010 # iptables executable $IPTABLES=/usr/sbin/iptables # enable ip_forward echo "1" > /proc/sys/net/ipv4/ip_forward # eth1: nettverkskortet som er koblet til internett/eksternt nettverk # eth0: nettverkskortet som er koblet til lokalnettverket $INTERNAL_INTERFACE=eth0 $EXTERNAL_INTERFACE=eth1 # Porter som skal være åpne utenfra og inn på serveren: # 21 - ftp # 22 - ssh # 15151 - rtorrent # reset all rules $IPTABLES --flush $IPTABLES --delete-chain # blokkerer så det ikke går ann å koble til nye forespørsler mot ssh mer enn 4 ganger i minuttet: $IPTABLES --table filter --insert INPUT -p tcp --dport 22 -i $EXTERNAL_INTERFACE -m state --state NEW -m recent --set $IPTABLES --table filter --insert INPUT -p tcp --dport 22 -i $EXTERNAL_INTERFACE -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP # slippe igjennom tjenester på serveren på portene under $IPTABLES --table filter --append INPUT --in-interface $EXTERNAL_INTERFACE --protocol tcp --ports 21,22,15151 --jump ACCEPT # blokkere alt inn til serveren om ingen av de tidligere reglene passet $IPTABLES --table filter --append INPUT --in-interface $EXTERNAL_INTERFACE --jump DROP # blokkere forwarding fra det eksterne nettet og til det interne. Er denne nødvendig? # $IPTABLES --table filter --append FORWARD --in-interface $EXTERNAL_INTERFACE --jump DROP # route gjennom serveren # riktig interface på --out-interface-paramteren? $IPTABLES --table nat --append POSTROUTING --out-interface $EXTERNAL_INTERFACE -jump MASQUERADE Ingen feil ved dette regelsettet her nå? Det vil ikke bli noe problem for maskinene på innsiden av firewallen å kommunisere fritt med maskiner på utsiden?, så lenge det er maskinen på innsiden som "tar kontakt" med utsiden? Takker for alle innspill
HawP Skrevet 28. mars 2010 Skrevet 28. mars 2010 Hvis jeg ikke husker helt feil (en stund siden jeg hadde iptables som router), så må du vel ha regler for å tillatte pakkene du ønsker å passere gjennom FORWARD (dvs. til/fra nat tabellen) ? Ser i mitt gamle script for å definere reglene at jeg hadde et par FORWARD regler for å tillate pakker utenfra å passere inn og motsatt (etter bestemte kriterier), uten at jeg helt husker hva som minimum er nødvendig...
j-- Skrevet 28. mars 2010 Forfatter Skrevet 28. mars 2010 HawP: Kunne du postet disse reglene som kan ha en innvirkning?
kpolberg Skrevet 28. mars 2010 Skrevet 28. mars 2010 Mener nå det er slik at så lenge trafikken er satt igang fra innsiden så vil den tillate trafikken.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå