En PF-conf som faktiskt blockerar något internt, finns det?

Permalänk
Medlem

En PF-conf som faktiskt blockerar något internt, finns det?

Det var ett tag sen man skrev nåt här på swec, men nu börjar intresset komma tillbaks.

Orkar ni inte läsa allt kan ni hoppa ner till slutet och läsa den sista raden ("så: ..."), men jag tycker om att överförklara, så att alla ska fatta och förstå, samt komma med förslag.

Efter att ha fått två abusemail från telia så kände jag att det var dags att ta tag i problemet. De säger att jag gör "obehöriga anrop" till nån nisses dator ute i den stora världen. Möjligt. Har inte riktigt hållt koll. Därför har jag nu installerat om min gw/fw som kör OpenBSD med pf, och tänkte konfa den lite bättre. Eftersom jag inte brytt mig om det speciellt mycket det senaste året ungefär, och jag inte visste mycket om det innan så tänkte jag lära mig det ordentligt den här gången. Jag har ett jättefint upplägg, tycker jag, som passar mig och borde hindra att liknande saker händer igen:

Jag har fyra datorer:
Dator 1: min gw/fw, agerar endast gw/fw, inga services.
Dator 2: Min webserver, kör även ett par eggdrops och annan skit, troligtvis den som blivit haxxad och kör "obehöriga anrop".
Dator 3: Min workstation. Surfa, tanka och spela på den, inga services.
Dator 4: Min laptop, workstation 2 i princip.

Jag vill ha följande setup:
Dator 1 ska inte kommas åt från nätet. Ingen ssh, inga services. Inga problem där, det kan jag göra.
Dator 2 har web och ssh öppet(ssh på en annan port än standard), om man haxxar den ska man inte se dator 3 och dator 4, helst inte dator 1 heller om det går. Dessutom vill jag inte att den ska få göra vad som helst utåt mot internet, förutom att skicka tillbaka websidorna som folk requestar. Just nu antar jag att någon haxxat sig in på någons konto och kör något fult, eftersom jag inte blockerar något inifrån. Kommer man in i det interna nätverket kan man göra allt ut mot internet. Det vill jag förhindra.
Dator 3 och dator 4 får köra BT, DC och skicka/ta emot via MSN samt surfa och komma åt FTP:s.

Det är säkert jätterörigt för er, men i mitt huvud låter det jättebra.

Mitt problem: jag hittar inga howtos, exempel eller liknande som går igenom hur man ska göra detta. Alla howtos jag hittar har en "utifrån får man inte göra så mycket, men inifrån så litar vi på våra användare, de får göra vad de vill". Och det gillar jag inte.

Så: finns det någon howto som visar hur man gör med openbsd:s pf(och några andra verktyg?) för att begränsa vad folk får göra i det interna nätverket, och även utifrån, såklart?

Visa signatur

Äntligen har jag fått svar på om vandrande pinnar kan gäspa. Det kan de inte. Ett av världens stora mysterier är löst.

Permalänk
Medlem

En hackad dator i det interna nätverket är ett rätt stort problem, och därför antas man fixa det med ominstallation hellre än med filtrering. Antagligen därför som de flesta howtos ser ut på det sättet.

Men angående ditt problem så kan du skapa en DMZ till Dator 2 mha ett tredje NIC i routern och på så vis öka säkerheten. Resten är inte så svår att lura ut om du har läst PF-FAQen väl?

Permalänk
Medlem

Nej, det klart.. hm.

Ett tredje NIC och DMZ känner jag iofs till, men då jag inte har något tredje NIC och inte har planerat att köpa ett heller så vore det fint att veta om det fanns något annat alternativ. Och läst PF FAQ:n har jag gjort. Flera gånger. Om och om igen. Och ändå förstår jag lika lite nu som innan. Men jag får väl jobba vidare med det och försöka lösa det på nåt vänster.

Visa signatur

Äntligen har jag fått svar på om vandrande pinnar kan gäspa. Det kan de inte. Ett av världens stora mysterier är löst.

Permalänk
Medlem

Du kan köra Vlan trunkar om dina klienter förstår 802.1Q paket...

Eller virtuella interface på olika IP nät...

Visa signatur

We live in the age o stupidity || SparcStation 20,384mb RAM,1gb disk,2*125mhz, Solaris8
--------------------------------------------------------------------------------------------
Every suicide is a solution to a problem. -- Jean Baechler

Permalänk
Medlem

Du kan ju göra om Dator 1 till en brygga och sen köra serial console på den. Då blir den icke nå bar utifrån och innefrån. Sen kan du ju sätta ett IP spann som bara får ansluta mot ssh och ta bort root inloggningen så att om du behöver root så får du su/sudo.

Sen så borde det väl gå att använda block satser även på det interna nätet.

Jag är rätt mycket nybörjare på OpenBSD och PF men jag sitter just nu och spånar så det jag skrev kan bara vara junk men slänger upp mina tankar endå.

Mvh Dax

Visa signatur

En trött jäkel.

Permalänk
Inaktiv

Re: En PF-conf som faktiskt blockerar något internt, finns det?

Citat:

Ursprungligen inskrivet av filigran
Det var ett tag sen man skrev nåt här på swec, men nu börjar intresset komma tillbaks.

Jag vill ha följande setup:
Dator 1 ska inte kommas åt från nätet. Ingen ssh, inga services. Inga problem där, det kan jag göra.
Dator 2 har web och ssh öppet(ssh på en annan port än standard), om man haxxar den ska man inte se dator 3 och dator 4, helst inte dator 1 heller om det går. Dessutom vill jag inte att den ska få göra vad som helst utåt mot internet, förutom att skicka tillbaka websidorna som folk requestar. Just nu antar jag att någon haxxat sig in på någons konto och kör något fult, eftersom jag inte blockerar något inifrån. Kommer man in i det interna nätverket kan man göra allt ut mot internet. Det vill jag förhindra.
Dator 3 och dator 4 får köra BT, DC och skicka/ta emot via MSN samt surfa och komma åt FTP:s.

Så: finns det någon howto som visar hur man gör med openbsd:s pf(och några andra verktyg?) för att begränsa vad folk får göra i det interna nätverket, och även utifrån, såklart?

Jag tror det finns på www.openbsd.org.

Annars skulle en DMZ vara bra för dig. Om din publika server av någon anledning blir hackad har du en brandvägg mellan DMZ och dina övriga datorer som kan förhindra att förövaren tar över hela ditt nät. Du bör nog också stänga av portforwarding i SSH-servern. Köp en billig switch(om du inte har en nu med VLAN) + ett nätverkskort till och släng in det i brandväggen.

Internet -> FW (Tillåt HTTP, SSH, gör så att FW sparar sessionerna som då tillåter serverna att svara) -> DMZ Internet -> FW (Blockera allt) -> Privat LAN DMZ -> FW (Blockera allt) -> Internet DMZ -> FW (Blockera allt) -> Privat LAN Privat LAN -> FW (Tillåt de protokoll du behöver, spara sessioner) -> Internet Privat LAN -> FW (Tillåt HTTP, SSH, spara sessioner) -> DMZ

På ett ungefär.
Själv är jag riktigt sugen på att köpa ett soekris-kort och köra som brandvägg. Den använder CF-kort för lagring och NetBSD har stöd för VLAN i drivrutinerna till nätverkskorten (3st), offtopic kanske...

Permalänk
Medlem

Min OpenBSD blockerar allt åt bägge håll. Jag har bara öppnat för det jag tycker verkar bra, lite mek emellanåt men det funkar. FTP är lite tras emellanåt dock.

Varför skulle pf inte kunna blocka på insidan ?

Visa signatur

We live in the age o stupidity || SparcStation 20,384mb RAM,1gb disk,2*125mhz, Solaris8
--------------------------------------------------------------------------------------------
Every suicide is a solution to a problem. -- Jean Baechler

Permalänk
Medlem

Jag har inte sagt att pf inte kan blockera på insidan, jag har bara inte hittat nåt exempel som gör det. Allt jag hittar låter folk på insidan göra vad de vill.

Jag har försökt fixa nån slags conf som låter mina workstations göra vad de vill(bara jag som använder dem, och inga services utåt från dem), men jag lyckas inte. Hur jag än gör så får de fortfarande inte göra nåt. Blockera allt åt båda håll, sen öppna upp, men icke. Det går bara inte. Får helt enkelt köra helt öppet från insidan tills jag förstår pf mer.

Mickeus: Detta kräver väl mer än två nätverkskort? Tyvärr har jag ju inte det.

Dax: En brygga kräver väl oxo tre nätverkskort, har jag fattat det som iaf?

Visa signatur

Äntligen har jag fått svar på om vandrande pinnar kan gäspa. Det kan de inte. Ett av världens stora mysterier är löst.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av filigran
Jag har försökt fixa nån slags conf som låter mina workstations göra vad de vill(bara jag som använder dem, och inga services utåt från dem), men jag lyckas inte. Hur jag än gör så får de fortfarande inte göra nåt. Blockera allt åt båda håll, sen öppna upp, men icke. Det går bara inte. Får helt enkelt köra helt öppet från insidan tills jag förstår pf mer.

Du kan köra med pftop för att se vad som händer med dina pf-regler och på det sättet lösa problemet.

Kan även tipsa om openbsd.se-forumet.

Permalänk
Medlem

Jag skulle också rekommendera att du köper ett till nätverkskort och stoppar in i brandväggen (och kör webbservern i ett DMZ på det "interface:et").

Men eftersom jag fick en känsla av att det inte kommer hända inom de närmaste timmarna så kastade jag ihop detta:

ext_if="fxp0" int_if="fxp1" external_addr="1.2.3.4" # påhittad IP-adress dator2="10.0.0.2" # Webbservern, påhittad IP-adress rdr on $ext_if inet proto tcp from any to $external_addr/32 port 22 -> $dator2 port 22 rdr on $ext_if inet proto tcp from any to $external_addr/32 port 80 -> $dator2 port 80 pass in quick on $ext_if inet proto tcp from any to $dator2/32 port 22 keep state pass in quick on $ext_if inet proto tcp from any to $dator2/32 port 80 keep state block out log quick on $ext_if from $dator2 to any block in log quick on $int_if from $dator2 to any

Detta är på inget sätt något komplett (ifall någon skulle få för sig det), men det behandlar iallafall en del av önskemålen för webbservern. Pass-reglerna med sina "keep state" ser till så att webbservern kan svara på ssh och http. Den första block-regeln ser till så att webbservern inte kan skicka paket (utöver ssh- och http-svar) till någon på utsidan av brandväggen. Den andra block-regeln nekar webbservern access till brandväggens interna "interface" (utöver ssh- och http-svar).

Jag har inte testat dessa regler så det finns ju risk att tryckfelsnisse har tittat fram någonstans. Block-reglerna går att "merge:a" till "block log quick from $dator2 to any" med samma resultat.

Mitt tips är att du "paste:ar" in dessa regler på lämpliga ställen i din nuvarande pf.conf. Dessa regler ska ligga typ först i pf.conf. Det viktiga är att det inte finns några generella pass-regler före dessa regler.

Edit: Kan ju påpeka att jag inte lagt ner tid på att lösa alla dina problem i detta inlägg. Jag angrep det problem som verkade mest kritiskt. Titta i loggarna lite då och då ifall något suspekt fastnat i block-reglerna.

Tilläggas kan ju att det är svårt att begränsa dator 2 (webbservern) från att kommunicera med dator 3 och 4 då de ligger på samma subnät. För att begränsa något sådan krävs brandväggar på dator 3 och 4. (Därav DMZ-rekommendationen.)

Visa signatur

"...trying is the first step towards failure." - Homer Simpson

Permalänk
Medlem

Läs PF FAQ:n, där står det mesta som man behöver veta om PF. Använd den tillsammans med nått färdigt script så lär du dig fort hur saker å ting fungerar i PF.
Tar inte alls länge så har du lärt dig grunderna för att skriva din egen brandvägg med dina egna regler. Det är oftast rätt svårt att hitta en brandvägg som redan är skriven och möter sina egna krav.

Permalänk
Medlem

Det finns en snygg pf FAQ på www.openbsd.org, den duger fint tycker jag. Annars kan jag rekommendera boke 'Building OpenBSD and Linux firewalls'. Det är ett tag sedan handlade den, men den va bra då och ajg antar att dom kommit med någon uppdatering

Visa signatur

We live in the age o stupidity || SparcStation 20,384mb RAM,1gb disk,2*125mhz, Solaris8
--------------------------------------------------------------------------------------------
Every suicide is a solution to a problem. -- Jean Baechler

Permalänk
Medlem

rm100: ska kollas upp, tackar.

Saihtam: Jodå, jag skriver mina egna scripts. Jag har bara inte lärt mig exakt hur jag ska skriva för att det ska funka som jag vill, så ett exempel att utgå ifrån underlättar, som jag kan bygga vidare på. Läser FAQ:n gör jag oxo. Just nu använder jag det exemplet som finns i just den FAQ:n för att säkra upp något medans jag lär mig, dock säkrar ju inte heller den något utåt.

gluffis: Jepp, den jag läser från (FAQ:n). Dock förstår jag inte allt ännu (och kommer säkert aldrig att göra), men jag börjar komma in i det.

Visa signatur

Äntligen har jag fått svar på om vandrande pinnar kan gäspa. Det kan de inte. Ett av världens stora mysterier är löst.