j-- Skrevet 26. mars 2010 Del 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. Lenke til kommentar
kpolberg Skrevet 26. mars 2010 Del 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. Lenke til kommentar
j-- Skrevet 26. mars 2010 Forfatter Del 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ñ Lenke til kommentar
kpolberg Skrevet 26. mars 2010 Del 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 Lenke til kommentar
j-- Skrevet 26. mars 2010 Forfatter Del Skrevet 26. mars 2010 Nydelig! Tenkte faktisk at noe sånt hadde vært bra å ha. Lenke til kommentar
Sokkalf™ Skrevet 26. mars 2010 Del Skrevet 26. mars 2010 Er det ikke kjappere og enklere å bruke f.eks shorewall istedenfor iptables direkte? Lenke til kommentar
kpolberg Skrevet 26. mars 2010 Del 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 Lenke til kommentar
Sokkalf™ Skrevet 26. mars 2010 Del 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. Lenke til kommentar
j-- Skrevet 27. mars 2010 Forfatter Del 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 Lenke til kommentar
HawP Skrevet 28. mars 2010 Del 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... Lenke til kommentar
j-- Skrevet 28. mars 2010 Forfatter Del Skrevet 28. mars 2010 HawP: Kunne du postet disse reglene som kan ha en innvirkning? Lenke til kommentar
kpolberg Skrevet 28. mars 2010 Del Skrevet 28. mars 2010 Mener nå det er slik at så lenge trafikken er satt igang fra innsiden så vil den tillate trafikken. Lenke til kommentar
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å