Installer og konfigurer pfBlockerNg til DNS Black Listing i pfSense Firewall


I en tidligere artikel blev installationen af en kraftfuld FreeBSD-baseret firewall-løsning kendt som pfSense diskuteret. pfSense, som nævnt i den tidligere artikel, er en meget kraftig og fleksibel firewall-løsning, der kan gøre brug af en gammel computer, der måske ligger rundt og ikke gør meget.

Denne artikel vil tale om en vidunderlig tilføjelsespakke til pfsense kaldet pfBlockerNG.

pfBlockerNG er en pakke, der kan installeres i pfSense for at give firewalladministratoren muligheden for at udvide firewallens muligheder ud over den traditionelle statefulde L2/L3/L4 firewall.

I takt med at angribers og cyberkriminelle fortsætter med at udvikle sig, skal forsvaret, der er på plads, også forhindre deres indsats. Som med noget i databehandlingen er der ikke en løsning, der løser alt produkt derude.

pfBlockerNG giver pfSense muligheden for, at firewallen kan tillade/nægte beslutningsbaserede emner såsom geolokalisering af en IP-adresse, domænenavnet på en ressource eller Alexa-klassificering af bestemte websteder.

Evnen til at begrænse elementer som domænenavne er meget fordelagtigt, da det giver administratorer mulighed for at modarbejde forsøg på interne maskiner, der forsøger at oprette forbindelse til kendte dårlige domæner (med andre ord domæner, der kan være kendt for at have malware, ulovligt indhold eller andet snigende stykker data).

Denne vejledning gennemgår konfiguration af en pfSense-firewall-enhed til brug af pfBlockerNG-pakken samt nogle grundlæggende eksempler på domæne-blokeringslister, der kan tilføjes/konfigureres i pfBlockerNG-værktøjet.

Denne artikel kommer med et par antagelser og bygger videre på den tidligere installationsartikel om pfSense. Antagelserne vil være som følger:

  • pfSense is already installed and has no rules currently configured (clean slate).
  • The firewall only has a WAN and a LAN port (2 ports).
  • The IP scheme being used on the LAN side is 192.168.0.0/24.

Det skal bemærkes, at pfBlockerNG kan konfigureres på en allerede kørende/konfigureret pfSense-firewall. Årsagen til disse antagelser her er simpelthen for sundheds skyld, og mange af de opgaver, der vil blive afsluttet, kan stadig udføres på en ikke-ren skifer pfSense-boks.

Billedet nedenfor er laboratoriediagrammet til pfSense-miljøet, der vil blive brugt i denne artikel.

Installer pfBlockerNG til pfSense

Med laboratoriet klar til at gå, er det tid til at begynde! Det første trin er at oprette forbindelse til webgrænsefladen til pfSense-firewallen. Igen bruger dette laboratoriemiljø 192.168.0.0/24-netværket, hvor firewallen fungerer som gateway med adressen 192.168.0.1. Brug af en webbrowser og navigering til 'https://192.168.0.1' viser pfSense-login-siden.

Nogle browsere klager muligvis over SSL-certifikatet, dette er normalt, da certifikatet selv er underskrevet af pfSense-firewallen. Du kan med sikkerhed acceptere advarselsmeddelelsen, og hvis det ønskes, kan et gyldigt certifikat underskrevet af en legitim CA installeres, men er uden for denne artikels anvendelsesområde.

Efter vellykket at klikke på 'Avanceret' og derefter 'Tilføj undtagelse ...' skal du klikke for at bekræfte sikkerhedsundtagelsen. PfSense-login-siden vises derefter og giver administratoren mulighed for at logge ind på firewall-apparatet.

Når du er logget ind på den primære pfSense-side, skal du klikke på rullemenuen 'System' og derefter vælge 'Pakkehåndtering'.

Ved at klikke på dette link skiftes til pakkehåndteringsvinduet. Den første side, der skal indlæses, er alle de aktuelt installerede pakker og vil være blanke (denne guide antager igen en ren pfSense-installation). Klik på teksten 'Tilgængelige pakker' for at få en liste over installerbare pakker til pfSense.

Når siden 'Tilgængelige pakker' er indlæst, skal du skrive 'pfblocker' i feltet 'Søgeudtryk' og klikke på 'Søg'. Den første vare, der returneres, skal være pfBlockerNG. Find knappen 'Install' til højre for beskrivelsen af pfBlockerNG, og klik på '+' for at installere pakken.

Siden indlæses igen og anmoder administratoren om at bekræfte installationen ved at klikke på 'Bekræft'.

Når det er bekræftet, begynder pfSense at installere pfBlockerNG. Naviger ikke væk fra installationssiden! Vent, indtil siden viser en vellykket installation.

Når installationen er afsluttet, kan pfBlockerNG-konfigurationen begynde. Den første opgave, der skal gennemføres, er dog nogle forklaringer på, hvad der skal ske, når pfBlockerNG er konfigureret korrekt.

Når pfBlockerNG er konfigureret, skal DNS-anmodninger til websteder opfanges af pfSense-firewall, der kører pfBlockerNG-softwaren. pfBlockerNG vil derefter have opdaterede lister over kendte dårlige domæner, der er kortlagt til en dårlig IP-adresse.

PfSense-firewallen skal opfange DNS-anmodninger for at kunne filtrere dårlige domæner og vil bruge en lokal DNS-resolver kendt som UnBound. Dette betyder, at klienter på LAN-grænsefladen skal bruge pfSense-firewallen som DNS-opløseren.

Hvis klienten anmoder om et domæne, der er på pfBlockerNGs blokeringslister, returnerer pfBlockerNG en falsk ip-adresse til domænet. Lad os begynde processen!

pfBlockerNG-konfiguration til pfSense

Det første trin er at aktivere UnBound DNS-opløseren på pfSense-firewallen. For at gøre dette skal du klikke på rullemenuen 'Services' og derefter vælge 'DNS Resolver'.

Når siden genindlæses, kan DNS-resolverens generelle indstillinger konfigureres. Denne første mulighed, der skal konfigureres, er afkrydsningsfeltet for 'Enable DNS Resolver'.

De næste indstillinger er at indstille DNS-lytteporten (normalt port 53), indstille netværksgrænsefladerne, som DNS-opløseren skal lytte til (i denne konfiguration skal det være LAN-porten og Localhost) og derefter indstille udgangsporten (skal være WAN i denne konfiguration).

Når valgene er foretaget, skal du sørge for at klikke på 'Gem' nederst på siden og derefter klikke på knappen 'Anvend ændringer', der vises øverst på siden.

Det næste trin er det første trin i konfiguration af pfBlockerNG specifikt. Naviger til pfBlockerNG-konfigurationssiden under menuen 'Firewall', og klik derefter på 'pfBlockerNG'.

Når pfBlockerNG er indlæst, skal du først klikke på fanen ‘DNSBL’ for at begynde at opsætte DNS-listerne, før du aktiverer pfBlockerNG.

Når siden 'DNSBL' indlæses, vil der være et nyt sæt menuer under pfBlockerNG-menuerne (fremhævet med grønt nedenfor). Det første element, der skal adresseres, er afkrydsningsfeltet 'Aktivér DNSBL' (fremhævet med grønt nedenfor).

Dette afkrydsningsfelt kræver, at UnBound DNS-opløseren bruges i boksen pfSense for at inspicere dns-anmodninger fra LAN-klienter. Bare rolig, UnBound blev konfigureret tidligere, men dette felt skal markeres! Det andet element, der skal udfyldes på denne skærm, er 'DNSBL Virtual IP'.

Denne IP skal være i det private netværksinterval og ikke en gyldig IP på det netværk, hvor pfSense bruges. For eksempel kan et LAN-netværk på 192.168.0.0/24 bruge en IP på 10.0.0.1, da det er en privat IP og ikke er en del af LAN-netværket.

Denne IP vil blive brugt til at indsamle statistikker samt overvåge domæner, der afvises af pfBlockerNG.

Rul ned på siden, der er et par flere indstillinger, der er værd at nævne. Den første er 'DNSBL Listening Interface'. For denne opsætning og for de fleste opsætninger skal denne indstilling indstilles til 'LAN'.

Den anden indstilling er 'List Action' under 'DNSBL IP Firewall Settings'. Denne indstilling bestemmer, hvad der skal ske, når et DNSBL-feed giver IP-adresser.

Reglerne for pfBlockerNG kan indstilles til at udføre et vilkårligt antal handlinger, men sandsynligvis er 'Afvis begge dele' den ønskede mulighed. Dette forhindrer indgående og udgående forbindelser til IP/domænet på DNSBL-feedet.

Når elementerne er valgt, skal du rulle til bunden af siden og klikke på knappen 'Gem'. Når siden er genindlæst, er det tid til at konfigurere de DNS-blokeringslister, der skal bruges.

pfBlockerNG giver administratoren to muligheder, der kan konfigureres uafhængigt eller sammen afhængigt af administratorens præference. De to muligheder er manuelle feeds fra andre websider eller EasyLists.

For at læse mere om de forskellige EasyLists, besøg projektets startside: https://easylist.to/

Konfigurer pfBlockerNG EasyList

Lad os diskutere og konfigurere EasyLists først. De fleste hjemmebrugere finder, at disse lister er tilstrækkelige såvel som de mindst administrativt besværlige.

De to EasyLists, der er tilgængelige i pfBlockerNG, er 'EasyList uden elementhiding' og 'EasyPrivacy'. For at bruge en af disse lister skal du først klikke på 'DNSBL EasyList' øverst på siden.

Når siden er genindlæst, bliver EasyList-konfigurationsafsnittet gjort tilgængeligt. Følgende indstillinger skal konfigureres:

  • DNS Group Name – User’s choice but no special characters
  • Description – User’s choice, special characters allowed
  • EasyList Feeds State – Whether the configured list is used
  • EasyList Feed – Which list to use (EasyList or EasyPrivacy) both can be added
  • Header/Label – User choice but no special characters

Det næste afsnit bruges til at bestemme, hvilke dele af listerne der skal blokeres. Igen er disse alle brugerpræferencer, og flere kan vælges, hvis det ønskes. De vigtige indstillinger i 'DNSBL - EasyList Settings' er som følger:

  • Categories – User preference and multiple can be selected
  • List Action – Needs to be set to ‘Unbound’ in order to inspect DNS requests
  • Update Frequency – How often pfSense will update the list of bad sites

Når EasyList-indstillingerne er konfigureret til brugerens præferencer, skal du sørge for at rulle til bunden af siden og klikke på knappen 'Gem'. Når siden er genindlæst, skal du rulle til toppen af siden og klikke på fanen 'Opdater'.

Når du er på fanen opdatering, skal du kontrollere alternativknappen for 'Genindlæs' og derefter kontrollere alternativknappen for 'Alle'. Dette kører gennem en række webdownloads for at få de blokeringslister, der er valgt på EasyList-konfigurationssiden tidligere.

Dette skal gøres manuelt, ellers downloades lister ikke før den planlagte cron-opgave. Der foretages ændringer hver gang (lister tilføjes eller fjernes) Sørg for at køre dette trin.

Se logvinduet nedenfor for eventuelle fejl. Hvis alt gik som planlagt, skulle klientmaskiner på LAN-siden af firewallen være i stand til at forespørge pfSense-firewallen om kendte dårlige websteder og modtage dårlige ip-adresser til gengæld. Igen skal klientmaskinerne indstilles til at bruge pfsense-boksen som deres DNS-resolver!

Bemærk i nslookup ovenfor, at url'en returnerer den falske IP, der er konfigureret tidligere i pfBlockerNG-konfigurationerne. Dette er det ønskede resultat. Dette vil resultere i, at enhver anmodning til URL'et '100pour.com' bliver dirigeret til den falske IP-adresse 10.0.0.1.

Konfigurer DNSBL-feeds til pfSense

I modsætning til AdBlock EasyLists er der også muligheden for at bruge andre DNS-sorte lister inden for pfBlockerNG. Der er hundredvis af lister, der bruges til at spore malware-kommando og kontrol, spyware, adware, tor-noder og alle mulige andre nyttige lister.

Disse lister kan ofte trækkes ind i pfBlockerNG og også bruges som yderligere DNS-sorte lister. Der er en hel del ressourcer, der giver 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

Ovenstående links giver tråde på pfSense's forum, hvor medlemmer har sendt en stor samling af listen, de bruger. Nogle af forfatterens yndlingslister 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

Igen er der masser af andre lister, og forfatteren opfordrer kraftigt, at enkeltpersoner søger flere/andre lister. Lad os dog fortsætte med konfigurationsopgaverne.

Det første trin er at gå ind i pfBlockerNGs konfigurationsmenu igen gennem 'Firewall' -> 'pfBlockerNG' -> 'DSNBL'.

Når du er på DNSBL-konfigurationssiden igen, skal du klikke på 'DNSBL Feeds' -teksten og derefter klikke på 'Tilføj' -knappen, når siden opdateres.

Tilføj-knappen giver administratoren mulighed for at tilføje flere lister med dårlige IP-adresser eller DNS-navne til pfBlockerNG-softwaren (de to emner, der allerede er på listen, er forfatterens test). Tilføj-knappen bringer administratoren til en side, hvor DNSBL-lister kan føjes til firewallen.

De vigtige indstillinger i dette output er følgende:

  • DNS Group Name – User chosen
  • Description – Useful for keeping groups organized
  • DNSBL Settings – These are the actual lists
    • State – Whether that source is used or not and how it is obtained
    • Source – The link/source of the DNS Black List
    • Header/Label – User choice; no special characters

    Når disse indstillinger er indstillet, skal du klikke på gem-knappen nede i bunden af siden. Som med alle ændringer i pfBlockerNG vil ændringerne træde i kraft på det næste planlagte cron-interval, eller administratoren kan manuelt tvinge en genindlæsning ved at gå til fanen 'Opdater', klikke på alternativknappen 'Opdater' og derefter klikke på 'Alt' Radio knap. Når disse er valgt, skal du klikke på knappen 'Kør'.

    Se logvinduet nedenfor for eventuelle fejl. Hvis alt gik efter planen, skal du teste, at listerne fungerer ved blot at forsøge at foretage en nslookup fra en klient på lan-siden til et af domænerne, der er anført i en af de tekstfiler, der bruges i DNSBL-konfigurationen.

    Som det kan ses i output ovenfor, returnerer pfSense-enheden den virtuelle IP-adresse, der blev konfigureret i pfBlockerNG som den dårlige IP for sortlistedomænerne.

    På dette tidspunkt kunne administratoren fortsætte med at indstille listerne ved at tilføje flere lister eller oprette brugerdefinerede domæne/IP-lister. pfBlockerNG vil fortsætte med at omdirigere disse begrænsede domæner til en falsk IP-adresse.

    Tak fordi du læste denne artikel om pfBlockerNG. Vis din påskønnelse eller støtte til pfSense-softwaren såvel som pfBlockerNG ved at bidrage i alligevel muligt til den fortsatte udvikling af begge disse vidunderlige produkter. Som altid bedes du kommentere nedenfor med eventuelle forslag eller spørgsmål!