14. oktober 2007 - 14:00Der er
69 kommentarer og 1 løsning
Hjelp til utvikling av Linux brannmur
Hei !
Holder på å lage et nytt oppsett for Linux brannmur konfigurering.
Vil i første omgang lage det tesktbasert slik at man bruker et konfigureringsscript som man editerer ved hlep av en tekst editor.
I neste omgang så kan vil lage en web basert firewall script generator likt iptables.dk eller hva det het en gang i tiden.
Mener at det skal godt gjøres å forsvare å kjøre en dedikert PC som firewall i dag så jeg ser for meg at vi sikter mot to varianter:
1. Brannmur for Linux gateway server, der man har full og detaljert kontoll både i forhold til server og lan trafikk i en og begge trafikkretninger.
2. Brannmur for Linux gateway server med et akstra 3 segment som kan brukes som en sikker trådløs sone eller en dmz foe en invendig server.
Har revisjon 0 oppe og kjører og har også begynt å kladde på et par utgaver av en automatisk firewall script generator.
Behøver først og fremst hjelp til testing og diskusjon omkring hvordan tingene bør fungere. Er det noen som sitter på info om hvordan man for eksempel kan implementer slike ting som trafikk shaping/qos så er det bra (Har ikke dette nå.)
Man behøver ikke å ha noen basis kunnskaper om Linux i det hele tatt, men man kan også med fordel være en spesialist på Linux.
Det viktigste er det med testingen og det med å finne feil og stille krav om hvordan tingene bør fungere.
Forresten godt mulig vi kunne lage en server only variant i samme slengen. Det er mye enklere ettersom det bare er en eller to trafikkretninger å holde styr på.
Bruker selv SME server som "development platform" men man skulle kunne bruke alle typer linux inklusive dem som kan lastes fra USB pinne eller Compact Flash card.
Hvis man ønsker det så kan man laste ned SME serveren og ta utgangspunktet i denne.
Da vil man i så fall formodentligvis kunne ende opp med en Linux gateway som som har alle de vanlige server funksjonene for LAN og WAN pluss Asterisk iptelefoniserver pluss sikkerhetsfunksjoner og fleksibilitet i forhold til fireeallingen som den originale SME serveren ikke har. (Mitt prosjekt akkurat nå.)
Ellers så skulle brannmurdelen kunne fungere akkurat likt på Debian, Ubuntu, Fedora eller hva det måtte være. (Har også en Ubuntu boks stående.)
Fedora -> Det er jo også litt opp til dere å bestemme. Tenkte å starte opp med iptables scripting ja, og så der i fra kanskje å lage noen tools for å lage scriptingen automatisk.
(Hvis det er noen som har greie på det så kunne vi jo også se på muligheten for å lage en tool som lagrer scriptet et bestemt sted og eksekverer det automatisk også.)
Ellers, skal man noe "dypere" enn iptables så er det jo å gå inn i kjernen og eventuelt kompilere inn "spesialiteter". Stort sett så fungerer jo standardkjærenene bra som default i dag når det gjelder firewallingen.
Hvis det eventuelt skulle være interessant å sette et trådløst kort rett inn i gatewayen (i stedet for å bruke et vanlig kort og et trådløst accesspunkt) så kunne det jo kanskje/måske være interessamt å se på muligheten for en utvidet støtte for trådløse kort.
Mener at det er smart å kjøre i gang med noe som er så lett overskuelig og strukturert på en slik måte at man både rekker å sette seg inn i problemstillingen og få gjort noe med tingene i løpet av en 10 minutter ledig periode. (Tidsmangel er et ikke ukjent fenomen her også.)
Tror at det er smart å kjøre i gang med scripting og testing vha iptables først.
Det viktigste blir vel egentlig testingen og diskusjonen om hvordan det hele bør kjøre. Da er det jo sånn sett mest bare syntaks det øvrige.
Det er utmerket, for det har jeg nesten 0 forstand på.
Går det ann å lage et php script (eller noe slikt eventuelt "noe annet") på en slik måte at det plasserer en tekst fil på et bestemt sted, for eksempel der en konfigureringsfil skal være ?
(Eller så er jo alternativet å generere config filene på web og så bare legge dem in via "copy and paste". Et lokalt verktøy som kunne hente inn info fra en meny og plassere config filen der den skal være hadde kanskje vært mer elegant. Vi kunne eventuelt lage begge løsninger..)
>>langbein: php er dog ikke lige min kop te. dog har jeg langt mere erfaring med sproget Object Pascal, og det dertilhørende udviklingsmiljø Lazarus der er baseret på Free Pascal Compileren :)
Lazarus er nytt for meg, men den lager formodentlig programmer som kan kjøre Linux eller Windows. Hvis serveren bare har text mode, hvordan blir det ?
Man lager tingene på Windows og laster filene over på Linux, eller kan man lage dem på Linux ? Hvordan blir det med et grafisk interface hvis Linux serveren kun har Text mode ? Kan man på noen måte få Grafisk shell i Win til å spille mot en Linux back end, eller hvordan blir det ?
Det er nok ellers sånn for oss alle at vi må prioritere arbeide og skole først.
selve free pascal editoren kan compile programmet som TUI (Terminal User Interface) så det er bestemt muligt at lave et brugervenligt program til text-only linux.
lazarus er der i mod et grafisk udviklingsmiljø til at designe programmer der arbejder sammen og bruger GTK+ til det grafiske.
de programmer der laves med free pascal og lazarus er cross kombatible, så man behøver kun at vælghe hvilken platforme koden skal køre på. :)
Man kan sannsynligvis løse oppgaven på flere forskjellige måter, så vil kan vel også prøve ut litt forskjellig og se hva som fungerer.
Hvordan bør vi legge opp samarbeidet ?
PGA geografi og Skagerak så må det vel bli via Internett.
Skal vi lage et nytt nettsted for prosjektet ? Har en adresse som eventuelt kan benyttes: http://www.inetsecurity.org/ .. Eller bør vi nøye oss med en tråd eller to på eksperten ?
Kunne for eksempel legge inn Wikimedia som "front" og "phpbb" som diskusjonsforum. Foreslår at det kun er åpent for posting for de som er med i prosjektet, som alle får pålogging og publiseringsmulighet. Språk - engelsk eller interskandinavisk ? - Interskandinavisk ? (Dansk-Norsk ?)
Håper at det er tid og interesse for testing, men det kommer kanskje av seg selv når man først er i gang med "framstillingen".
Jeg synes det kunne være fint med et netsted, da man så på en eller anden måde kunne få lidt info om hvad projektet er. Angående sprog, så ville jeg nok vælge engelsk for at ikke at det begrænser til Scandinavien.
OK. Vil se på om jeg kan få lagt inn phpgroupware. (Kjenner ikke den fra før, men det ser ut som om den likner litt på phprojekt som jeg bruker fra før.)
God ide med engelsk, hvis det ikke er et problem, men vi kunne jo også kombinere engelsk med interskandinavisk (for eksempel etter login.) (For noen så går det kanskje hurtigere å skrive noe med dansk/norsk, I think.)
Spørsmål til de som er inne i programmering:
Vil det være praktisk gjennomførbart å programmere en modul som kan inspisere datastrømmen på et pakkenivå eller kombinasjoner av pakker også utenfor kjernen ?
(Grunn til spørsmål: Jeg har testet Alladin Hellgate og den fungerer faktisk slik. Hele datastrømmen ser ut til å kjøre inn i et "stort sort hull" som ikke er en tradisjonell proxy, som kan filtrere for nær sagt alt "on the fly" inklusive også virus. Ville tro det ville være alt for komplisert å lage eller teste ut neo slikt, men spør allikevell av nyskjerrighet. http://www.aladdin.com/esafe/hellgate.aspx )
Den hadde de normale tingene man forventer fra en Linux boks, med Squid etc og den kan også diverse ting som virus scan for http trafikk.
Aladdin sin boks var bygget helt annerledes. Her var det en Linux kjerne og ikke så veldig mye annet og så et ganske omfattende fitreringsprogram som fungerte helt annerledes enn noe annet jeg har sett.
Regnet ikke med at vi skulle filtrere med så mye annet enn Linux kernel/IPTABLE/NETFILTER (Men man kan jo allikevell undersøke og spørre litt.)
(Hos Windows så er det vel "Normalt" at firewallingen skjer gjennom programmer som kjører utenfor kernel (??)(tror jeg) mens den i Linux skjer inne i kernel. (Så sant man ikke har tatt vekk dette ved kompilering eller lat være å starte opp funksjonen.)
Det er ellers forholdsvis overkommelig å filtrere med Sqid også på et enkelt nivå, men ser i utgangspunktet egentlig helt den store hensikt i det. (Men alle ting er jo mulig hvis man ser noen grunn til å gjøre det.)
Jeg har meget nysgerrigt fulgt med, jeg har nok ikke selv tiden til at være med i projektet, men kunne meget godt tænke mig at være med fra sidelinien.
Det hadde vært meget bra om det er noen som i all enkelhet har tid til å installere og prøve ut tingene. Det viktigste vil sånn sett være de "dårliget tilbakemeldingene etter som det vil være et meget viktig poeng å finne feil eller uhensiktsmessig funksjon.
Når det gjelder hvordan konfigurerings toll blir laget så blir jo det litt opp til dem som lager disse tools hvordan man velger å lage disse. De kan jo i all enkelhet lages på den måten som den som lager dem synes best om.
Tools skal jo egentlig bare produsere en tekstfil (firewall konfigurasjon) ut i fra visse gitt spesifikasjoner og en gitt innebygget logikk. Enden dette skjer via et web basert grensesnitt, via et program som kjører på en Windows work station eller fra et tekst based shell på server, så kan sluttresultatet jo bli det samme.
Har tenkt på en mulig mulighet:
Hva med å lage et helt ordinært tekstbasert program i C, Paskal eller hva som helst som utvikleren måtte være bekvem med og så bare lage en meget enkel dialog, for eksempel kjørt fra Linux serveren selv:
<root> ./firewallconfig
Standallone eller server gateway (1/2): 2
Vil du aktivisere beskyttelse mot dos angrep (j/n) n
Vil du aktivisere beskyttelse mot ulike scannemetoder (tcp flag settings): (j/n) n
Skal gatewayen svare på ping utenfra. (j/n) n
Tast inn de portene som skal være tilgjengelig fra internett til gatewayserveren: 80, 53, 25, 110
Tast inn de porter og ip for forwarding til server på LAN: 5060, 10000:20000, 10.0.0.5
Vil du generere nytt firewall script (j/n): j
Noe i den stil.
Kunne dette være et alternativ ?
(Egentlig så kunne konfigurering av web server og mye annet kjørt på samme måte.)
(hvis et grafisk grensenitt vurderes å være bedre så kan det like godt være aktuelt.)
Satser ellers på å installere wikimedia + phpbb + phprojekt på webstedet i løpet av nærmeste framtid, ikke fordi det nødvendigvis er de baste programmene, men de er hurtige og ukomplisert å installere. Phpgropware ville sansynligvis ha vært bedre enn phproject, men kunne ikke finne ut av det sånn rent umiddelbart.
Totalt sett så dreier det seg vel hovedsakelig om 3 prosjektdeler:
* Å formulere de reglene som bestemmer de oppgaven som firewallen virkelig skalutføre.
* Å lage en eller flere tool som genererer eller utarbeider et konfigutreringsscript ut i fra disse spesifikasjonene.
* Å få testet ut om tingene virkelig fungerer slik som planlagt og om det er ting som heller kunne ha fungert på en annen og kanskje en bedre måte.
Den måde du beskriver hvordan man kunne lave det tool, virker i mine øjne en god måde at lave på. Det synes jeg fordi at linux servere gennerelt alle kører console, så jeg mener at toolet til linux 100% skal være til console.
Angående testing så vil det nok være bedst på en dedikeret computer, men tror du ikke at det kan lade sig gøre på en virtual server?
Skulle tro at når det dreier seg om en filtering til en server så brudte dette fungere bra. (Filtreringen gjøres jo av Linux kjærnen) .. Men på den annen side angivelse av nettvekskort blir vel annerledes .. er usikker på dette men ville tro at det fungerer for en server.
Når det der i mot gjelder en gateway eller en gateway server installasjon, vil ikke det bli komplisert på en Viruell server (eller skulle den virtuelle servern også kunne ha en virtuell klinet ?) Det høres ikke ut som enløsning der man får testet den reele sikkeheten men har vel stort sett ikke testet noe av det.
Kjører selv en modifiser SME server som gateway der den originale fireall er tatt vekk slik at jeg kan teste på denne.
Når det gjelder konfigureringsverktøy så er vel de aller fleste med en web interface eller det dreier seg om grafiske programmer på en workstation.
Kan ikke huske å a sett et konfigureringstool med tekstbasert grensenitt, men hvorfor ikke, slik at man kan kjøre det rett på serveren via Putty/ssh... ??
Nej ideen med konfiguration i console, skal man også tænke at man eliminerer chancen for at evt. bugs i webserveren bliver brugt. Men jeg tror sagtens også man kan lave det med grafisk interface ala en webløsning.
Jeg kender ikke selv noget til Shorewall, men jeg har arbejdet lidt med www.Smoothwall.org, der brugte jeg den til mit grundforløbs eksamen, og den fungerede udemærket. Men man kan altid se på de ideer vi får og så kigge på dem hen ad vejen.
hvad angår config tool, havde jeg tænkt på at lave det både med en TUI og en GUI i et og samme program.
hvordan:
hvis man kører programmet rent dvs uden nogle parametre i konsollen vil der blive benyttet en TUI men hvis man starter programmet med f.eks -G vil det starte op med en GUI i stedet, ang. GUI havde jeg tænkt på at benytte GTK2 :)
Jeg har ikke arbejdet det store i Object Pascal. Jeg hjalp nogle kammerater med et elektronik projekt, hvor de skulle styre en lyssignal. Men den havde et dejlig udført manual :) Men tror nok jeg holder mig til PHP og C++/C# :)
jeg kan tilføje at C# er en blanning af Object Pascal og blev udviklet af Anders Hejlsberg, ham der var med til at skabe Delphi udviklingsmiljøet der også benytter Object Pascal :)
Det er godt det er noen som har ideer og forslag til utvikling av konfigureringstool. Har selv ikke så mye forstand på selv programmeringsbiten.
Holder auurat på å kjøre gjennom en hurtig test med shorewall for å se hva som kan hentes av ideer fra dette prosjektet. http://www.shorewall.net/
Har bare så vidt rukket å installere shorewall, men den ser ut til å være en konfigureringstool litt i den samme gate som den vi diskuterer. De har en slogan: "iptables made easy" men dette toolet ser ut til å ha et brukergrensesnitt som er betydelig "mindre easy" enn de vi snakker om. Det vil sansynligvis være en del ideer å hente inn for firewall biten allikevell.
Hadde gentlig ikke tid til å teste shorewall akkurat nå. Skal forsøke å få i gang nettstedet i løpet av den (aller) nærmeste framtid.
Det er en hængelås. Jeg vil da sige sådan at det er 2 billeder sat sammen. Jeg er nemlig dårligt til at fremstille selv, men jeg prøver en del, men altid et ikke så pænt resultat :)
Det er også utmerket at vi har et logo som er forskjellig fra andre prosjekter :-) (Synes det ser veldig bra ut !)
Har begynt å lage litt struktur på forumet.
DEt er ellers sånn sett bare å starte opp med å bruke det.
Det er sånn sett valgfritt om man bruker engelsk eller dansk. Kan man finne ut av engelsken så er det ok, og hvis ikke, så går dansk helt fint.
*** Den som ønsker å registrere seg eller å ta tingene i bruk kan bare gjøre det. ***
Har lagt ut en rev 0 av et 2 port firewall script og vil følge opp med litt forklaring av virkemåte. Tar ellers i mot forslag til struktur, rubrikker mm.
Hey gutter. Projektet som Langbein omtalte hed: iptables-script.dk og er lukket, fordi jeg glemte at betale en faktura for domænet ;-) Projektet blev i sin tid rimeligt benyttet, bl.a. fordi det var 1: simpelt, 2: webbaseret. Det blev bl.a. portet til flere sprog, bl.a. brasiliansk.
Jeg har desværre ikke længere den store tid til at nørde med den slags ting længere, men jeg har da et par idéer. Jeg ville overveje at lave på fwbuilder som platform. de script som generer firewall reglerne læser så vidt jeg husker XML, og der er scripts til ipfiler, iptables, pix m.fl. så vidt jeg husker.
Jeg ville nok lave det på følgende måde
RAILS web app / PHP web app <> MySQL <> XML <> fwbuilder
Forstil jer dette. Man logger ind, opretter en profil, og kan herefter oprette og administrere sine firewall regler. Hvis man ønsker at generere en regel, omsættes dette til XML og scriptet genereres af fwbuilder.
Men... selvf. dette er kun en lille idé til jer. Jeg har ikke kigget på fwbuilder i lang tid, men mener bestemt at det ville kunne de ønskede ting som i skal bruge.
Har faktisk de originale scriptene fra iptables-script.dk liggende, tror jeg (pga at de har fulgt med via en automatisk backuprutine fra Linux server til Linux server.)
Tror jeg ville være noe skeptisk til fwbuilder, men det er ingen ting i veien for å teste ut det som måtte finnes, slik at man kan hente inn noen nye ideer.
Siste utgave av Linux Format (Noveber utgaven) inneholder en gjennomgang av noen av de firewall konfigureringstools som finnes og her kommer faktisk fwbuilder ut som testens laveste rangering med 3 av 10 oppnåelige poeng. Etter min mening også så har den blant annet et for komplisert og uoversiktelig brukergrensenitt.
Ellers så er KMyfirewall (8/10), FireHol (7/10), Garddog (6/10), Firestarter (6/10), Shorewall (8/10) og til sist også fwbuilder (3/10) testet.
Synes vi bør komme opp med noe som er hurtigere og mer brukervennlig og mere lett å sette opp, enn noen av disse. Noe i retning av den gamle iptables-script er en mulighet, men det bør i så fall skje en del endringer.
Tror også at en helt enkel løsning basert på et tekstbasert grensenitt a la 1980 faktisk kunne være noe.
(Men de som lager Tools kan da velge fritt hva de måtte ønske å benytte seg av.)
(Forsøkte å lage noe selv i php, fra bunnen av, men det liknet ikke på noen ting. Det virker men det ser forferdelig ut.)
Mener at det viktigse er at en tool er meget lett overskuelig slik at man mer eller mindre kan ha kontroll på hver eneste ip pakke.
ja, iptables-script.dk er ikke noget værd i disse dagene. Man skal huske på at det blev lavet for knap 5 år siden, og kan ikke bruges i dagens verden.
Pointen med fwbuilder, er overhovedet ikke at benytte deres interface. Pointen er benytte deres XML -> iptables/ipfilter rule generator.
fwbuilder virker på denne måde
fwbuilder -> XML -> fw rules
og så istedet gøre det således:
web application / console <> XML -> fw rules.
ideen vat at bortkaste den oprindelige fwbuilder GUI og kun benytte sin egen. Firehol kunne også bruges til denne metode.
Men som sagt, det var kun et forslag. Jeg kunne sagtens forstille mig at en web applikation kunne blive veldig populær, specielt hvis den også havde avancerede funktioner. Til dette formål vil det efter min overbevisning være "nemmere" at benytte eksisterende "translators".
Såfremt det skal være en simpel console applikation der bygger fw rules baseret på 20 brugerinput, vil dette dog være "overkill".
Det kan nok utføres og testes ut på forskjellige måter.
Det som var min ide i første omgang, det var å lage noe som er så enkelt at man kan overskue virkemåten i løpet av 5 minutter.
Altså - flere funksjoner og flere muligheten enn den gamle og samtidig lettere å revidere og å forstå.
På den annen side, man kan da sagtens lage mange forskjellige varianter av en slik firewall tool.
Når det gjelder innhold i filtrering etc så er det tatt utgangspunkt i den eksisterende SME server 7.2, som står og surrer og går hist og her, og så er (blir) det lagt inn litt mer fleksibilitet og muligheter i forhold til denne. (Kjenner ikke til noe tilfelle der den har blitt hacket, selv om det ikke er verdens nyeste konstruksjon.)
Har laget et utkast 0.0.0.0.1, basert på html og php, som jeg håper at noen tar fatt i og jobber videre med:
Det vil ellers være fritt fram å gå i gang med alle mulige andre løsninger også, slik at det kan finnes flere alternativer.
Ellers, er det noen som ser svakheter ved selve firewallingen (med utgangspunkt i det noenlunde ferdige scriptet som det også er linket til) så hører jeg gjerne om det.
Håper det er noen som setter i gang med "noe" og det er sånn sett ikke noe i veien for at vi kan ha flere samtidige løsninger.
Når man først får opp hovedsiden så kan det først komme opp en hovedside som orienterer om hva det hele handler om.
I venstre kollonne så kan det finnes noen linker med forskjellige alternativer, for eksempel:
1. Firewall for server only installasjon kun med kontroll av inngående traffikk. 2. Firewall for server only med kontroll av inngående og utgående traffikk. 3. Firewall for server gateway med kun kontroll av inngående traffikk. 4. Firewall for server gateway med kontroll av inngående og utgående traffikk. 5. Firewall for 3 kort løsning med trådløst access punkt i egen sikkehetssone. 6. Firewall for 3 kort løsning der det tredje kort er en dmz for servere. 7. Firewall for 4 kort løsning med WAN, LAN, DMZ og trådløs zone.
Når man så har gjort et første valg ut i fra menyen til venstre så vil man kunne velge de detaljparametere man måtte ønske inne i hovedmenyen inne i det største skjermfeltet. Man vil ellers kunne jobbe med valgalternativ no 3 eller 4 som et selvstendig prosjekt, slik at det hele blir ganke overskuelig. Når det ene vald er gjort ferdig så kan man begynne på det neste osv.
Bare et par ideer rundt det hele "to get started".
(Har ikke fått begynt på menyen til venstre eller det riktige startop bildet.)
Andre løsninger er også velkommene dersom der er none som har tid/mulighet å demonstrere, utvikle eller legge fram disse.
DEt hadde vært fantastisk bra om det hadde vært noen som har tid eller interesse av å dra tingene litt videre med hensyn til php/html/design (og løsninger basert på forskjellige andre programmeringsspråk.)
Hei, efter at have tænkt lidt over det, er jeg personligt nok kommet til den konklusion, at projektet ikke er amtibiøst nok til at det ville kunne fastholde min interesse. Men jeg håber da aligevel i får det på benene, og det kommer til at blive godt ;-)
Det var ellers ukjent for meg at det var noen form for packet firewalling vi ikke skulle dekke.
Det var/er vel bare snakk om å ta et steg ad gangen ettersom tiden strekker til.
Hvis vi nå dekker inn de alminnelig kjente firewalling teknikker som finnes, for Linux kernel, inklusive for eksempel bridge mode firewalling (litt senere), hva er det da som står til bake ?
Dersom det er ting vi skulle mangle (som har en praktisk og nødvendig anvendelse), så legg gjerne en link til det.
Hvordan kan ellers et prosjekt som dette ellers bli amisiøst nok, hvis man skal få til noe som faktisk fungerer ? Eksempel ?
Det som kan gjøres med en packet firewall det begrenses vel førts og fremst av innholdet i haeder og øvrig del av tcp og udp packets. Det som packets tillater filtrering av, det kan man filtrere.
På den annen side så finnes det jo også en prosjektmodul å fortsette videre på for den som måtte føle seg kallet til det.
Real time virus scanning i forhold til web content slik som denne, det er jo noe man kan ta seg til:
Har faktisk sett beskrivelse på webb av en application level firewall av denne type (men ikke lik) basert på standard Linux programvare.
Denne delen kan jo være noe å sette i gang med for den som synes at packet inspection ikke kan være abisiøst nok.
De to løsningene basert på packet inspection og realtime virus scan av web content skulle sånn sett kunne kombineres og kjøres på den samme gateway.
Det skulle sånn sett bare være å gå i gang med å legge til en slik prosjektmodul for den som ønsker det eller hvis man søker det litt abisiøse. (Tenkte faktisk litt på å forsøke det litt denere uansett.)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.