xpenziuz Skrevet 23. desember 2010 Del Skrevet 23. desember 2010 (endret) Hei. jeg er i en fase hvor jeg vil prøve og kommer over fra ipfw til pf. mitt nettverk er som følger: internet ----|---------- ____em0_________ |--------------| |-----em1------| |__vlan1-vlan2_| ----|-----|---- --priv---guest IP: priv har 192.168.4.1 guest har 10.0.0.1 Problemet her er og få alle pakker fra guest (vlan2) til å gå direkte ut via em0 og ikke ha "låv" å gå til vlan1 osv. Slik det er nå kan jeg gå frem og tilbake på vlanene gjennom nat. Her er det jeg har i pf: nat on em0 from 10.0.0.0/24 to any -> (em0) pass on vlan2 from 10.0.0.0/24 to any keep state (er det ikke mulig og spesifisere hvor denne skal gå ut ? som ipfw's "out via" og "in via" Gjorde dette enkelt i ipfw med en regel som dette: $cmd 014 allow all from 10.0.0.0/24 to any out via vlan2 $cmd 016 allow all from 10.0.0.0/24 to any in via vlan2 takker for alle svar Endret 23. desember 2010 av xpenziuz Lenke til kommentar
pitrh Skrevet 23. desember 2010 Del Skrevet 23. desember 2010 Ikke uoverkommelig dette, men det lønner seg gjerne å bruke et par pf-triks for å få det til: priv = "192.168.4.1/24" guest = "10.0.0.1/24" ext_if = em0 priv_if=vlan1 guest_if=vlan2 block all pass in on $guest_if from $guest pass out on $ext_if from $guest # [ andre filtreringsregler ] Med 'block all' som første filtreringsregel må du eksplisitt tillate hver enkelt tjeneste, det gir som regel bedre oversikt, og på denne måten får du den separasjonen du vil ha. Med fare for å være for selvhevdende vil jeg anbefale å ta en titt på http://home.nuug.no/~peter/pf/, eventuelt skaffe et eks av http://nostarch.com/pf2.htm (elektronisk utgave leveres om jeg forstår det rett med en gang du har knappet inn kredittkortinfo ) - Peter Lenke til kommentar
xpenziuz Skrevet 23. desember 2010 Forfatter Del Skrevet 23. desember 2010 Ikke uoverkommelig dette, men det lønner seg gjerne å bruke et par pf-triks for å få det til: priv = "192.168.4.1/24" guest = "10.0.0.1/24" ext_if = em0 priv_if=vlan1 guest_if=vlan2 block all pass in on $guest_if from $guest pass out on $ext_if from $guest # [ andre filtreringsregler ] Med 'block all' som første filtreringsregel må du eksplisitt tillate hver enkelt tjeneste, det gir som regel bedre oversikt, og på denne måten får du den separasjonen du vil ha. Med fare for å være for selvhevdende vil jeg anbefale å ta en titt på http://home.nuug.no/~peter/pf/, eventuelt skaffe et eks av http://nostarch.com/pf2.htm (elektronisk utgave leveres om jeg forstår det rett med en gang du har knappet inn kredittkortinfo ) - Peter Hei. takk for svar, men det funket ikke. har allerede block all i pf.conf. prøvde å forenkle det litt for den som eventuelt svarte Så om det var på en måte mulig å lage en slags "tunnel" fra $vlanguestnet til ut i verden? Og som erfart med ipfw kunne dette gjøres med "out via $ext_if" her er det egentlige pf script: #"Macros" #User-defined variables may be defined and used later, simplifying #the configuration file. Macros must be defined before they are #referenced in pf.conf. #Interfaces: ext_if = "re1" int_if = "re0" #Virtual interfaces: vlanguest = "vlan30" vlanpriv = "vlan40" vlanprivnet = "vlan40:network" vlanguestnet = "vlan30:network" #Nat on interfaces: naton = "{ 192.168.4.0/24, 192.168.5.0/24 }" #Noroutes noroute = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }" #Mailserver mail-ip = "192.168.1.2" mail-ports = "{ smtp, https, pop, 8025 }" #"Tables" #Tables provide a mechanism for increasing the performance and flex- #ibility of rules with large numbers of source or destination #addresses. #table <private> const { 10/8, 172.16/12, 192.168/16 } table <badhosts> persist #"Options" #Options tune the behaviour of the packet filtering engine. #Traffic Normalization (e.g. scrub #Traffic normalization protects internal machines against inconsis- #tencies in Internet protocols and implementations. #"Queueing" #Queueing provides rule-based bandwidth control. #"Translation" (NAT) #Translation rules specify how addresses are to be mapped or redi- #rected to other addresses. nat on $ext_if from $naton to any -> ($ext_if) #nat on $ext_if from ! $vlanguestnet to any tag NAT -> ($ext_if) #"Packet Filtering" #Packet filtering provides rule-based blocking or passing of pack- #ets. #Block all by default block all #Block bad hosts block quick from <bad_hosts> #Rfc1918 (private ip ranges) #block in log quick on $ext_if from $noroute to any #block out log quick on $ext_if from any to $noroute #Pass traffic for local lan #pass on $vlanguest from $vlanguestnet to any keep state #Pass traffic from me to any pass in on $vlanguest from $vlanguestnet pass out on $ext_if from $vlanguest pass from $ext_if to any keep state #Allowed incoming connections to me pass in on $ext_if proto tcp to $ext_if port www keep state \ (max-src-conn-rate 100/10, overload <badhosts> flush global) pass in on $ext_if proto tcp to $ext_if port ssh keep state \ (max-src-conn-rate 100/10, overload <badhosts> flush global) pass in on $ext_if proto tcp to $ext_if port 10000 keep state Lenke til kommentar
pitrh Skrevet 23. desember 2010 Del Skrevet 23. desember 2010 (endret) pass in on $vlanguest from $vlanguestnet pass out on $ext_if from $vlanguest Her mener du antakelig pass out on $ext_if from $vlanguestnet du kan også leke med slikt som pass in on $vlanguest from $vlanguestnet to ! $vlanprivnet hvilken freebsd-versjon er dette, forresten? fra og med 7.1 skal 'keep state' uten ekstra argumenter ala state tracking være overflødig. og noe helt annet men beslektet - for å sjekke at reglene faktisk oppfører seg som du tror (spesielt makroer osv) kan det være smart å studere output fra pfctl -vnf /etc/pf.conf altså ikke laste reglene, men syntakssjekke og vise ferdigbehandlet regelsett slik som det faktisk blir lastet. Endret 23. desember 2010 av pitrh Lenke til kommentar
xpenziuz Skrevet 23. desember 2010 Forfatter Del Skrevet 23. desember 2010 Bruker freebsd 8.1, holder på å bytte server, så jeg driver bare litt testing før jeg setter freebsd 8.1 serveren på plass. Kan det eventuelt være en ide og og tillate alt og blokkere traffik mellom de etterpå?¨ eks: 73 pass on $vlanguest from $vlanguestnet to any keep state 74 block on $vlanguest from $vlanguestnet to $vlanprivnet 75 block on $vlanguest from $vlanprivnet to $vlanguestnet 76 block on $vlanpriv from $vlanprivnet to $vlanguestnet 77 block on $vlanpriv from $vlanguestnet to $vlanprivnet eller vil det åpne for å sette "en ip" og komme seg inn ved eks å ha 10.0.1.4 og dermed komme gjennom alikevel ? 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å