Installer og konfigurer pfBlockerNg for DNS Black Listing i pfSense Firewall


I en tidligere artikkel ble installasjonen av en kraftig FreeBSD-basert brannmurløsning kjent som pfSense diskutert. pfSense, som nevnt i den tidligere artikkelen, er en veldig kraftig og fleksibel brannmurløsning som kan gjøre bruk av en gammel datamaskin som kanskje ligger rundt og ikke gjør så mye.

Denne artikkelen skal snakke om en fantastisk tilleggspakke for pfsense kalt pfBlockerNG.

pfBlockerNG er en pakke som kan installeres i pfSense for å gi brannmuradministratoren muligheten til å utvide brannmurens muligheter utover den tradisjonelle stateful L2/L3/L4 brannmuren.

Ettersom evnene til angripere og nettkriminelle fortsetter å utvikle seg, må også forsvaret som settes på plass for å hindre innsatsen deres. Som med alt i dataverdenen, er det ikke én løsning som fikser alle produkter der ute.

pfBlockerNG gir pfSense muligheten for brannmuren til å tillate/avslå beslutningsbaserte elementer som geolokalisering av en IP-adresse, domenenavnet til en ressurs eller Alexa-vurderingene til bestemte nettsteder.

Muligheten til å begrense elementer som domenenavn er svært fordelaktig ettersom den lar administratorer hindre forsøk fra interne maskiner som prøver å koble seg ut til kjente dårlige domener (med andre ord domener som kan være kjent for å ha skadelig programvare, ulovlig innhold eller annet lumske datastykker).

Denne veiledningen vil gå gjennom konfigurering av en pfSense-brannmurenhet for å bruke pfBlockerNG-pakken, samt noen grunnleggende eksempler på domeneblokkeringslister som kan legges til/konfigureres i pfBlockerNG-verktøyet.

Krav

Denne artikkelen vil gjøre et par antagelser og vil bygge på den tidligere installasjonsartikkelen om pfSense. Forutsetningene vil være som følger:

  • pfSense er allerede installert og har ingen regler konfigurert for øyeblikket (ren tavle).
  • Brannmuren har kun en WAN- og en LAN-port (2 porter).
  • IP-skjemaet som brukes på LAN-siden er 192.168.0.0/24.

Det skal bemerkes at pfBlockerNG kan konfigureres på en allerede kjørende/konfigurert pfSense-brannmur. Årsaken til disse antakelsene her er ganske enkelt for fornuftens skyld, og mange av oppgavene som vil bli fullført, kan fortsatt gjøres på en ikke-ren pfSense-boks.

Lab Diagram

Bildet nedenfor er laboratoriediagrammet for pfSense-miljøet som vil bli brukt i denne artikkelen.

Installer pfBlockerNG for pfSense

Med laboratoriet klar til å gå, er det på tide å begynne! Det første trinnet er å koble til nettgrensesnittet for pfSense-brannmuren. Igjen bruker dette laboratoriemiljøet 192.168.0.0/24-nettverket med brannmuren som gateway med adressen 192.168.0.1. Ved å bruke en nettleser og navigere til «https://192.168.0.1» vises pfSense-påloggingssiden.

Noen nettlesere kan klage på SSL-sertifikatet, dette er normalt siden sertifikatet er selvsignert av pfSense-brannmuren. Du kan trygt godta advarselsmeldingen, og om ønskelig kan et gyldig sertifikat signert av en legitim CA installeres, men er utenfor rammen av denne artikkelen.

Etter å ha klikket «Avansert» og deretter «Legg til unntak...» klikker du for å bekrefte sikkerhetsunntaket. PfSense-påloggingssiden vil da vises og tillate administratoren å logge på brannmuren.

Når du er logget på pfSense-hovedsiden, klikker du på «System»-rullegardinmenyen og velger «Package Manager».

Ved å klikke på denne koblingen endres det til pakkebehandlingsvinduet. Den første siden som skal lastes vil være alle de installerte pakkene og vil være tom (igjen forutsetter denne veiledningen en ren pfSense-installasjon). Klikk på teksten «Tilgjengelige pakker» for å få en liste over installerbare pakker for pfSense.

Når siden «Tilgjengelige pakker» er lastet inn, skriver du «pfblocker» i «Søkeord»-boksen og klikker på «Søk<'. Den første varen som returneres skal være pfBlockerNG. Finn «Installer»-knappen til høyre for pfBlockerNG-beskrivelsen og klikk på ‘+’ for å installere pakken.

Siden vil lastes inn på nytt og be administratoren bekrefte installasjonen ved å klikke «Bekreft».

Når det er bekreftet, vil pfSense begynne å installere pfBlockerNG. Ikke naviger bort fra installasjonssiden! Vent til siden viser vellykket installasjon.

Når installasjonen er fullført, kan pfBlockerNG-konfigurasjonen begynne. Den første oppgaven som må fullføres er imidlertid noen forklaringer på hva som kommer til å skje når pfBlockerNG er riktig konfigurert.

Når pfBlockerNG er konfigurert, bør DNS-forespørsler for nettsteder fanges opp av pfSense-brannmuren som kjører pfBlockerNG-programvaren. pfBlockerNG vil da ha oppdaterte lister over kjente dårlige domener som er tilordnet en dårlig IP-adresse.

pfSense-brannmuren må avskjære DNS-forespørsler for å kunne filtrere ut dårlige domener og vil bruke en lokal DNS-løser kjent som UnBound. Dette betyr at klienter på LAN-grensesnittet må bruke pfSense-brannmuren som DNS-løser.

Hvis klienten ber om et domene som er på pfBlockerNGs blokkeringslister, vil pfBlockerNG returnere en falsk ip-adresse for domenet. La oss starte prosessen!

pfBlockerNG-konfigurasjon for pfSense

Det første trinnet er å aktivere UnBound DNS-resolveren på pfSense-brannmuren. For å gjøre dette, klikk på «Tjenester»-rullegardinmenyen og velg «DNS Resolver».

Når siden lastes inn på nytt, vil de generelle innstillingene for DNS-løser være konfigurerbare. Dette første alternativet som må konfigureres er avmerkingsboksen for «Aktiver DNS-løser».

De neste innstillingene er å angi DNS-lytteporten (normalt port 53), angi nettverksgrensesnittene som DNS-resolveren skal lytte på (i denne konfigurasjonen skal det være LAN-porten og Localhost), og deretter sette utgangsporten (skal være WAN i denne konfigurasjonen).

Når valgene er gjort, sørg for å klikke «Lagre» nederst på siden og deretter klikke på «Bruk endringer»-knappen som vises øverst i siden.

Det neste trinnet er det første trinnet i konfigurasjonen av pfBlockerNG spesifikt. Naviger til pfBlockerNG-konfigurasjonssiden under «Brannmur»-menyen og klikk deretter på «pfBlockerNG».

Når pfBlockerNG har lastet inn, klikker du på «DNSBL»-fanen først for å begynne å sette opp DNS-listene før du aktiverer pfBlockerNG.

Når «DNSBL»-siden laster, vil det være et nytt sett med menyer under pfBlockerNG-menyene (uthevet i grønt nedenfor). Det første elementet som må adresseres er «Aktiver DNSBL»-avmerkingsboksen (uthevet i grønt nedenfor).

Denne avmerkingsboksen krever at UnBound DNS-resolveren brukes på pfSense-boksen for å inspisere dns-forespørsler fra LAN-klienter. Ikke bekymre deg UnBound ble konfigurert tidligere, men denne boksen må merkes av! Det andre elementet som må fylles ut på denne skjermen er «DNSBL Virtual IP».

Denne IP-en må være innenfor det private nettverksområdet og ikke en gyldig IP på nettverket der pfSense brukes. Et LAN-nettverk på 192.168.0.0/24 kan for eksempel bruke en IP på 10.0.0.1 siden det er en privat IP og ikke er en del av LAN-nettverket.

Denne IP-en vil bli brukt til å samle statistikk samt overvåke domener som blir avvist av pfBlockerNG.

Når du ruller nedover siden, er det noen flere innstillinger som er verdt å nevne. Den første er 'DNSBL Listening Interface'. For dette oppsettet, og de fleste oppsett, bør denne innstillingen settes til «LAN».

Den andre innstillingen er «Listehandling» under «DNSBL IP-brannmurinnstillinger». Denne innstillingen bestemmer hva som skal skje når en DNSBL-feed gir IP-adresser.

pfBlockerNG-reglene kan settes opp til å utføre et hvilket som helst antall handlinger, men mest sannsynlig vil «Nekt begge» være det ønskede alternativet. Dette vil forhindre inngående og utgående tilkoblinger til IP/domenet på DNSBL-feeden.

Når elementene er valgt, blar du til bunnen av siden og klikker på «Lagre»-knappen. Når siden er lastet inn på nytt, er det på tide å konfigurere DNS-blokkeringslistene som skal brukes.

pfBlockerNG gir administratoren to alternativer som kan konfigureres uavhengig eller sammen avhengig av administratorens preferanser. De to alternativene er manuelle feeds fra andre nettsider eller EasyLists.

For å lese mer om de forskjellige EasyLists, vennligst besøk prosjektets hjemmeside: https://easylist.to/

Konfigurer pfBlockerNG EasyList

La oss diskutere og konfigurere EasyLists først. De fleste hjemmebrukere vil oppleve at disse listene er tilstrekkelige, så vel som de minst administrativt tyngende.

De to EasyLists som er tilgjengelige i pfBlockerNG er ‘EasyList w/o Element Hiding’ og ‘EasyPrivacy’. For å bruke en av disse listene, klikk først på «DNSBL EasyList» øverst på siden.

Når siden er lastet inn på nytt, vil EasyList-konfigurasjonsdelen gjøres tilgjengelig. Følgende innstillinger må konfigureres:

  • DNS-gruppenavn – brukerens valg, men ingen spesialtegn
  • Beskrivelse – Brukerens valg, spesialtegn tillatt
  • EasyList Feeds State – Hvorvidt den konfigurerte listen brukes
  • EasyList Feed – Hvilken liste som skal brukes (EasyList eller EasyPrivacy) kan begge legges til
  • Overskrift/etikett – Brukervalg, men ingen spesialtegn

Den neste delen brukes til å bestemme hvilke deler av listene som skal blokkeres. Igjen er disse alle brukerpreferanser og flere kan velges om ønskelig. De viktige innstillingene i «DNSBL – EasyList Settings» er som følger:

  • Kategorier – Brukerpreferanser og flere kan velges
  • Listehandling – Må settes til «Ubundet» for å inspisere DNS-forespørsler
  • Oppdateringsfrekvens – Hvor ofte pfSense oppdaterer listen over dårlige nettsteder

Når EasyList-innstillingene er konfigurert til brukerens preferanser, sørg for å bla til bunnen av siden og klikk på «Lagre»-knappen. Når siden er lastet inn på nytt, bla til toppen av siden og klikk på «Oppdater»-fanen.

Når du er på oppdateringsfanen, kontrollerer du alternativknappen for «Last inn på nytt» og merker deretter alternativknappen for «Alle». Dette vil kjøre gjennom en rekke nettnedlastinger for å få tak i blokkeringslistene valgt på EasyList-konfigurasjonssiden tidligere.

Dette må gjøres manuelt, ellers vil ikke lister bli lastet ned før den planlagte cron-oppgaven. Når som helst endringer gjøres (lister lagt til eller fjernet), sørg for å kjøre dette trinnet.

Se loggvinduet nedenfor for eventuelle feil. Hvis alt gikk etter planen, skulle klientmaskiner på LAN-siden av brannmuren kunne spørre pfSense-brannmuren etter kjente dårlige nettsteder og motta dårlige ip-adresser i retur. Igjen må klientmaskinene settes til å bruke pfsense-boksen som deres DNS-løser!

Legg merke til i nslookup ovenfor at url returnerer den falske IP-en som er konfigurert tidligere i pfBlockerNG-konfigurasjonene. Dette er ønsket resultat. Dette vil føre til at enhver forespørsel til nettadressen «100pour.com» blir sendt til den falske IP-adressen 10.0.0.1.

Konfigurer DNSBL-feeder for pfSense

I motsetning til AdBlock EasyLists, er det også muligheten til å bruke andre DNS-svartelister i pfBlockerNG. Det er hundrevis av lister som brukes til å spore malware kommando og kontroll, spyware, adware, tor-noder og alle slags andre nyttige lister.

Disse listene kan ofte trekkes inn i pfBlockerNG og også brukes som ytterligere DNS-svartelister. Det er ganske mange ressurser som gir nyttige lister:

  • https://forum.pfsense.org/index.php?topic=114499.0
  • https://forum.pfsense.org/index.php?topic=102470.0
  • https://forum.pfsense.org/index.php?topic=86212.0

Linkene ovenfor gir tråder på pfSenses forum hvor medlemmer har lagt ut en stor samling av listene de bruker. Noen av forfatterens favorittlister inkluderer følgende:

  • http://adaway.org/hosts.txt
  • http://www.malwaredomainlist.com/hostslist/hosts.txt
  • http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&mimetype=plaintext
  • https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist
  • https://gist.githubusercontent.com/BBcan177/4a8bf37c131be4803cb2/raw

Igjen er det tonnevis av andre lister og forfatteren oppfordrer sterkt til at enkeltpersoner oppsøker flere/andre lister. La oss imidlertid fortsette med konfigurasjonsoppgavene.

Det første trinnet er å gå inn i pfBlockerNGs konfigurasjonsmeny igjen gjennom 'Brannmur' -> 'pfBlockerNG' -> 'DSNBL'.

Når du er på DNSBL-konfigurasjonssiden igjen, klikker du på «DNSBL-feeds»-teksten og klikker på «Legg til»-knappen når siden oppdateres.

Legg til-knappen lar administratoren legge til flere lister over dårlige IP-adresser eller DNS-navn til pfBlockerNG-programvaren (de to elementene som allerede er på listen er forfatterens fra testing). Legg til-knappen bringer administratoren til en side hvor DNSBL-lister kan legges til brannmuren.

De viktige innstillingene i denne utgangen er følgende:

  • DNS-gruppenavn – Bruker valgt
  • Beskrivelse – Nyttig for å holde grupper organisert
  • DNSBL-innstillinger – Dette er de faktiske listene
    • State – Hvorvidt den kilden brukes eller ikke, og hvordan den er oppnådd
    • Kilde – koblingen/kilden til DNS-svartelisten
    • Overskrift/etikett – brukervalg; ingen spesialtegn
  • Listehandling – Sett til Ubundet
  • Oppdateringsfrekvens – Hvor ofte listen bør oppdateres

Når disse innstillingene er angitt, klikker du på lagre-knappen nederst på siden. Som med alle endringer i pfBlockerNG, vil endringene tre i kraft ved neste planlagte cron-intervall, eller administratoren kan manuelt tvinge en ny innlasting ved å gå til Oppdater-fanen, klikk på Last inn på nytt<'-alternativknappen, og klikk deretter på 'Alle'-alternativknappen. Når disse er valgt, klikker du på «Kjør»-knappen.

Se loggvinduet nedenfor for eventuelle feil. Hvis alt gikk etter planen, test at listene fungerer ved ganske enkelt å prøve å gjøre en nslookup fra en klient på lan-siden til et av domenene som er oppført i en av tekstfilene som brukes i DNSBL-konfigurasjonen.

Som du kan se i utgangen ovenfor, returnerer pfSense-enheten den virtuelle IP-adressen som ble konfigurert i pfBlockerNG som den dårlige IP-en for svartelistedomenene.

På dette tidspunktet kan administratoren fortsette å justere listene ved å legge til flere lister eller opprette egendefinerte domene-/IP-lister. pfBlockerNG vil fortsette å omdirigere disse begrensede domenene til en falsk IP-adresse.

Takk for at du leste denne artikkelen om pfBlockerNG. Vennligst vis din takknemlighet eller støtte for pfSense-programvaren så vel som pfBlockerNG ved å bidra på alle mulige måter til den fortsatte utviklingen av begge disse fantastiske produktene. Som alltid vennligst kommenter nedenfor med forslag eller spørsmål!