Hoe je Advertenties Blokkeert op Al Je Apparaten Met pfSense, Squid & SquidGuard

Marc Dahan

By Marc Dahan . 17 december 2023

Cybersecurity Journalist

Miklos Zoltan

Fact-Checked this

pfSense is een krachtig open-source router/firewall besturingssysteem gebaseerd op FreeBSD. Uit de doos komt pfSense met enkele robuuste tools waarmee je een veilig netwerk kunt opbouwen.

Maar pfSense stelt je ook in staat om pakketten te installeren vanuit zijn officiële repository, om nog meer functionaliteit aan je systeem toe te voegen.

In dit artikel leer je het volgende:

  • Wat pfSense is en hoe je het gebruikt
  • Wat Squid is en hoe je het gebruikt
  • Hoe proxy servers werken
  • Hoe je Squid installeert en configureert
  • Hoe je SquidGuard installeert en configureert
  • Hoe je advertenties blokkeert met pfSense, Squid & SquidGuard

pfSense is een krachtig open-source router/firewall besturingssysteem gebaseerd op FreeBSD. Uit de doos komt pfSense met enkele robuuste tools waarmee je een veilig netwerk kunt opbouwen.
Maar pfSense stelt je ook in staat om pakketten te installeren vanuit zijn officiële repository, om nog meer functionaliteit aan je systeem toe te voegen.

Een van die pakketten heet Squid. Squid is een caching webproxy die ook inhoudsfiltering kan doen. Laten we dat een beetje uitpakken en wat context geven rond proxy servers en hun gebruik.

Gerelateerde gids: Hoe IP Filtering en DNS Blackholing op pfSense In te Stellen met pfBlockerNG

Samenvatting: In dit artikel legde ik uit hoe je advertenties op alle apparaten blokkeert met behulp van pfSense, Squid, en SquidGuard.
pfSense is een open-source router/firewall besturingssysteem met robuuste tools voor het beveiligen van netwerken, en Squid is een caching webproxy die inhoudsfiltering biedt.

Ik besprak de rol van proxy servers in het cachen van inhoud en filtering, evenals hoe je Squid en SquidGuard op pfSense configureert om advertenties te blokkeren.

Door dit te doen, kunnen gebruikers de beveiliging en privacy verbeteren, het bandbreedteverbruik verminderen en de laadtijden van webpagina’s versnellen.

Hoe Advertenties te Blokkeren

Proxy Servers

Een proxy server is een tussenliggende server die zich bevindt tussen jouw apparaat (laptop, tablet, smartphone) en je uiteindelijke internetbestemming (whateverwebsite.com).

Je verkeer verlaat je apparaat, verbindt zich met de proxy server, en gaat vervolgens naar zijn uiteindelijke bestemming vanaf de proxy server.

Waarom zou je je verkeer door de proxy server sturen? Daar zijn een paar redenen voor. Een ervan is om inhoud te cachen. Dit betekent dat de proxy server sommige inhoud lokaal opslaat, zodat de volgende keer dat een client die inhoud aanvraagt, het wordt geserveerd vanuit de cache in plaats van het opnieuw van het internet te downloaden.

Dit versnelt je internetbrowsen omdat het ophalen van inhoud uit de lokale cache van de proxy veel sneller is dan het opnieuw initiëren van een download via het internet.

Een ander doel is inhoudsfiltering. Inhoudsfiltering betekent het blokkeren van verbindingen naar bepaalde domeinen of IP-adressen. Organisaties die de toegang tot Facebook blokkeren, voeren bijvoorbeeld inhoudsfiltering uit.

Een andere toepassing van inhoudsfiltering is het blokkeren van advertenties. Online advertenties zijn irritant. Ze schenden je privacy, verbruiken je bandbreedte, en zijn een belangrijke vector voor malware. Er zijn uitstekende redenen om ervan af te willen komen. En dat is wat we in dit artikel gaan doen met Squid.

We gaan je laten zien hoe je Squid en SquidGuard (SquidGuard is een extra component van Squid dat lijstgebaseerde filtering mogelijk maakt) op pfSense configureert om advertenties te blokkeren op al je apparaten.

Deze gids gaat ervan uit dat je een werkend pfSense-systeem hebt geconfigureerd met werkende WAN- en LAN-interfaces en dat je GUI-toegang hebt.

WAN en LAN instellingen

Squid Installeren

Het eerste wat we moeten doen, is de Squid proxy server installeren.

1. Selecteer vanuit de bovenste menu’s Systeem > Pakketbeheer. Je wordt naar het tabblad Geïnstalleerde pakketten van het Pakketbeheer gebracht.

Ga naar Pakketbeheer

2. Selecteer Beschikbare Pakketten. De lijst met beschikbare pakketten wordt weergegeven.

Squid Selecteer Beschikbare Pakketten

3. Scroll naar beneden tot je squid ziet en klik op Installeren. Het venster Pakket Installeren wordt weergegeven.

Squid Pakket

4. Klik op Bevestigen. De installatie begint.

Squid Bevestig Installatie

5. Zodra de installatie is voltooid, moet je Succes onderaan het venster Pakket Installeren zien. Squid is nu geïnstalleerd.

Squid Geïnstalleerd

Configureren van Squid

Nu Squid is geïnstalleerd, gaan we onze nieuwe proxyserver configureren.

Ga via de bovenste menu’s naar Services > Squid Proxy Server. Je wordt geleid naar het Algemeen tabblad van de Squid-instellingen.
Ga naar Squid Proxy Server

We gaan Squid stap voor stap configureren. Ons doel is het opzetten van ad-blocking met Squid, dus we gaan niet elk submenu behandelen. Alleen degenen die we nodig hebben voor ons doel. Instellingen die niet worden genoemd, moeten op hun standaardwaarden blijven staan.

Voordat we Squid configureren, moeten we eerst naar het Local Cache-tabblad gaan en de standaardinstellingen voor lokale caching accepteren door onderaan de pagina op Opslaan te klikken.

Als je probeert de proxy te configureren zonder de standaardinstellingen voor lokale cache te accepteren, krijg je het verzoek dit te doen en verlies je de instellingen die je tot nu toe hebt geconfigureerd.

Lokale Cache Pagina

Als je later je lokale cache-instellingen wilt aanpassen, kun je dat doen vanuit het Squid-instellingen Lokale Cache-tabblad.

Algemene Squid-instellingen

  1. Laat het vakje Activeer de Squid proxy voor nu niet aangevinkt. We zullen eerst onze proxyserver configureren voordat we deze inschakelen.
  2. Als je pfSense box zowel IPv4 als IPv6 gebruikt, kies dan IPv4+IPv6 uit het Luister IP Versie dropdown menu. Zo niet, laat het dan op IPv4 staan.
  3. Zorg ervoor dat LAN is geselecteerd bij Proxy Interface(s). Als je extra interfaces toevoegt aan je pfSense box en je wilt dat het verkeer van die interfaces via Squid loopt, moet je deze hier selecteren.
  4. Stel de Uitgaande Netwerkinterface in op Standaard (auto).

Algemene Squid-instellingen

Instellingen Transparante Proxy

Proxy-servers kunnen op twee manieren werken: transparant of expliciet. In transparante modus is er geen configuratie nodig op je cliënten (computer, tablet, smartphone, enz.) – hun verkeer wordt transparant geproxyd.

Echter, in deze modus wordt alleen HTTP-verkeer over poort 80 geproxyd, niet HTTPS-verkeer (tenzij je Man In the Middle SSL-filtering configureert – hierover later meer). Aangezien de meeste internetverkeer HTTPS gebruikt, heeft de transparante modus een beperkte reikwijdte voor ad-blocking, maar het kan nog steeds nuttig zijn voor caching.

De expliciete modus vereist dat je elke client configureert om “toegang aan te vragen” tot de proxy. En in deze modus wordt al het TCP-internetverkeer geproxyd (HTTP en HTTPS). Dit is wat we in deze handleiding willen. Dus we gaan de transparante modus in deze handleiding niet inschakelen, maar je kunt beide modi zonder problemen gebruiken.

Instellingen Transparante Proxy

SSL Man In the Middle Filtering

Zoals ik hierboven al vermeldde, is het mogelijk om HTTPS-verbindingen transparant te proxyen. Maar om dit te doen, moet je in feite HTTPS breken.

Squid kan het juiste SSL-certificaat van de website die je probeert te bereiken vervangen door zijn eigen certificaat, de verbinding ontcijferen en opnieuw versleutelen met zijn certificaat. Dit stelt je in staat om SSL-verbindingen te filteren, maar breekt ook de HTTPS-validatie die in je browser moet plaatsvinden.

Ik raad Man In the Middle SSL-filtering niet aan, behalve voor specifieke doeleinden door mensen die begrijpen wat ze doen. We gaan deze functie ook uitschakelen.

SSL Man In the Middle Filtering

Loginstellingen

  1. Vink het vakje Toegangslogboekregistratie inschakelen aan. Dit zal je Squid-verkeer loggen zodat je kunt zien hoe Squid zich gedraagt als je iets moet oplossen.
  2. Vink het vakje Log Pagina’s geweigerd door SquidGuard aan. Dit maakt het mogelijk om de SquidGuard-logs te bekijken vanuit het Real Time tabblad naast de Squid Proxy-logs. Dit zal nuttig zijn zodra we SquidGuard hebben geïnstalleerd.

Loginstellingen

Headers Handling, Taal en Andere Aanpassingen

De instellingen hier zijn optioneel, maar zullen de hoeveelheid informatie beperken die in de Squid-headers wordt weergegeven.

  • Zet de X-Forwarded Header-modus op uit.
  • Vink het vakje Disable VIA Header aan.
  • Vink het vakje Suppress Squid Version aan.
  • Klik op Opslaan.

Headers Taal

ACLs Tabblad

Om te zien wat we expliciet kunnen blokkeren met Squid, moeten we naar het ACLs tabblad gaan.

We zien dat we meerdere vakjes hebben om verschillende elementen te definiëren die Squid moet filteren. Laten we naar elk daarvan kijken.

ACLs Tabblad

Toegestane Subnetten

Je kunt hier extra subnetten toevoegen om via de Squid proxy te gaan. Dit is handig voor subnetten die niet zijn gekoppeld aan een interface op het systeem, zoals IPSec. Geen noodzaak om hier in ons voorbeeld iets toe te voegen.

Onbeperkte IP’s

De hier vermelde IP-adressen zullen niet worden gefilterd door de proxyserver.

Geblokkeerde Host Adressen

De hier vermelde IP-adressen mogen de proxyserver niet gebruiken, zelfs als hun subnet is toegestaan.

Whitelist

De domeinen die in het vak Whitelist worden vermeld, zijn toegankelijk voor alle hosts die gemachtigd zijn om de proxy te gebruiken. De whitelist-vermeldingen hebben voorrang op de blacklist-vermeldingen.

Blacklist

De domeinen die in het vak Blacklist worden vermeld, zijn ontoegankelijk voor alle hosts die zijn toegestaan om de proxyserver te gebruiken.

Blokkeer User Agents

Dit vak is buitengewoon handig om specifieke applicaties te blokkeren voor toegang tot het internet. Wanneer een applicatie een verzoek naar het internet stuurt, bevatten de headers een veld dat wordt aangeduid als de user agent. De user agent identificeert de gebruikte applicatie. Bijvoorbeeld, de user agent van Google Chrome is Chrome.

User agents werden oorspronkelijk gebruikt om de webbrowser te identificeren die een webverzoek naar een server maakt, zodat de server zou weten hoe de gevraagde gegevens in die specifieke browser te renderen. Maar nu wordt hun gebruik veralgemeend naar elke app die verzoeken over het internet maakt.

Om een user agent in Squid te blokkeren, moet je het vooraf laten gaan door een “^” (zonder aanhalingstekens).

Dus, het vermelden van ^Chrome in Squid’s Blokkeer User Agent vak zal Google Chrome blokkeren van toegang tot het internet.

^Mozilla vermelden zou Firefox blokkeren van toegang tot het internet. ^WhatsApp vermelden zou WhatsApp blokkeren van toegang tot het internet.

User agents zijn heel specifiek en zijn niet altijd zo eenvoudig als de voorbeelden hierboven. Je moet de exacte user agent kennen die een app gebruikt om deze hier te kunnen blokkeren.

Blokkeer MIME Types (alleen antwoord)

MIME in MIME types staat voor Multipurpose Internet Mail Extensions, die worden gebruikt om bestandstypen binnen URL’s te definiëren. MIME-types zijn als volgt gestructureerd:

type/subtype

Dus, het toevoegen van audio/mpeg aan het Blokkeer MIME Types vak zou het downloaden van mp3-bestanden blokkeren. Het toevoegen van image/png aan het Blokkeer MIME Types vak zou het downloaden van png-afbeeldingen blokkeren.

Zoals het geval was met user agents, zijn MIME types zeer specifiek. Je moet het exacte type en subtype invoeren voor de filtering om in Squid te werken.

Squid Testen

Een item toevoegen aan Squid’s blacklist

Laten we doorgaan en onze Squid-installatie testen om ervoor te zorgen dat alles correct werkt voordat we verder gaan met de volgende stappen. We zullen een domein invoeren in het vak Blacklist om te zien of Squid het zal blokkeren zoals verwacht.

1. Vanuit het tabblad ACLs van de Squid Proxy Instellingen, voer facebook.com in in het vak Blacklist.

Facebook Blacklist

2. Klik onderaan de pagina op Opslaan.

3. Ga naar het tabblad Algemeen van de Squid Proxy Instellingen.

4. Vink het vakje Squid Proxy Inschakelen aan.

Squid Proxy Inschakelen

5. Klik onderaan de pagina op Opslaan.

Onze proxyserver is nu ingeschakeld en geconfigureerd om facebook.com te blokkeren.

We zullen snel onze webbrowser configureren om via de proxyserver te gaan om te zien of het goed werkt. Als alles correct is geconfigureerd, zou ik geen toegang moeten hebben tot facebook.com.

Firefox configureren om de proxyserver te gebruiken

1. Klik op het Instellingen icoon rechtsboven in de browser en selecteer Voorkeuren (dit wordt Opties genoemd in Windows). Je wordt naar de pagina Algemene Instellingen gebracht.

FireFox Voorkeuren

2. Scroll op de pagina Algemene Instellingen naar beneden naar de sectie Netwerkinstellingen, en klik op de knop Instellingen.

FireFox Netwerkinstellingen

3. Selecteer Handmatige Proxy Configuratie.
4. Vul in het vak HTTP Proxy het IP-adres van je pfSense-box in. In mijn geval is dit 192.168.1.1.
5. Stel het veld Poort in op 3128.
6. Vink het vakje Gebruik deze proxy ook voor FTP en HTTPS aan.
7. Klik onderaan het venster op OK, en sluit de pagina Instellingen.

FireFox Proxy Instellingen

Nu, als ik probeer toegang te krijgen tot facebook.com (via HTTP of HTTPS), toont mijn browser de volgende pagina:

Facebook Geblokkeerd

Dat is precies wat we willen.

SquidGuard

We hebben nu dus een werkende proxyserver die geconfigureerd is om facebook.com te blokkeren. Fantastisch. Echter, als we advertenties willen blokkeren, moeten we duizenden en duizenden domeinen toevoegen aan Squid’s Blacklist vak. Niet bepaald optimaal…

Hier komt SquidGuard in beeld. SquidGuard is een aanvullende module voor Squid die lijstgebaseerde filtering aankan.

Met lijstgebaseerde filtering voer je de URL in naar een lijst met geblackliste domeinen, en alle domeinen die overeenkomen met de domeinen op de blacklist worden geblokkeerd.

Nu onze basis Squid proxyserver operationeel is, gaan we verder met het installeren en configureren van SquidGuard.

SquidGuard Installeren

1. Selecteer vanuit de bovenste menu’s Systeem > Pakketbeheer. Je wordt naar het tabblad Geïnstalleerde Pakketten van de Pakketbeheerder gebracht.

Ga naar Pakketbeheer

2. Selecteer Beschikbare Pakketten. De lijst met beschikbare pakketten wordt weergegeven.

SquidGuard Beschikbare Pakketten

3. Scroll naar beneden totdat je SquidGuard ziet en klik op Installeren. Het venster Pakket Installeren wordt weergegeven.

Vind SquidGuard Installatie

4. Klik op Bevestigen. De installatie begint.

Bevestig SquidGuard Installatie

5. Zodra de installatie voltooid is, zou je Succes onderaan het venster Pakket Installeren moeten zien. SquidGuard is nu geïnstalleerd.

SquidGuard Geïnstalleerd

SquidGuard Instellen

SquidGuard is nu geïnstalleerd. Laten we verder gaan en de lijstgebaseerde filtering configureren.

Selecteer vanuit de bovenste menu’s Services > SquidGuard Proxy Filter. Je wordt naar het tabblad Algemeen van de SquidGuard Proxy Filter Instellingen gebracht.
Ga naar SquidGuard Pagina's

Net als bij het configureren van Squid zelf, zullen we het configureren van Squid Guard sectie voor sectie doornemen. En opnieuw, we gaan niet alle sub-menu’s langs – alleen degenen die we moeten configureren om ons doel te bereiken. Instellingen die niet genoemd worden, moeten op hun standaardwaarden blijven.

Algemene Opties

Laat het vakje Inschakelen voor nu onaangevinkt.
SquidGuard Algemene Opties

Logboekopties

  • Vink het vakje GUI log inschakelen aan.
  • Vink het vakje Logboek inschakelen aan.
  • Vink het vakje Logrotatie inschakelen aan.

SquidGuard Logboekopties

Diverse Opties

Vink het vakje Advertenties opschonen aan.
SquidGuard Diverse Opties

Blacklist opties

Vink het vakje Blacklist aan.

Voer de volgende URL in het veld Blacklist URL in: https://shallalist.de/Downloads/shallalist.tar.gz. Dit is onze blacklist URL. SquidGuard zal deze lijst downloaden en ons voorzien van verschillende categorieën van domeinen die we kunnen kiezen om toe te staan of te blokkeren. Het is gratis beschikbaar en wordt aangeboden door Shalla Secure Services. Er zijn andere lijsten die je kunt gebruiken, maar veel daarvan zijn betaald. Ik gebruik Shallalist al vele jaren en het werkt heel goed en wordt regelmatig bijgewerkt, dus ik raad het aan.

Klik onderaan de pagina op Opslaan.

SquidGuard Instellingen Blacklist Opties

De Blacklist Downloaden

1. Ga naar het tabblad Blacklist van de SquidGuard Proxy Filter Instellingen. De URL van de blacklist wordt getoond.

2. Klik op de knop Downloaden. Het downloaden en analyseren van de blacklist begint.

SquidGuard Blacklist Pagina

3. Zodra dit voltooid is, zie je onderaan het venster Blacklist update Log de tekst Blacklist update voltooid staan.

Blacklist Update Voltooid

Het Configureren van Blacklist Filtering in SquidGuard

1. Ga naar het tabblad Common ACL van de SquidGuard Proxy Filter Instellingen.

2. Klik op het + symbool naast Target Rules List. De Target Rules List wordt weergegeven.

Het configureren van blacklist filtering in SquidGuard

3. Het eerste item in de lijst is adv, wat staat voor advertenties. Selecteer Weigeren uit het dropdown-menu aan de rechterkant.
Weiger Advertenties

4. Ga verder met het blokkeren van alle andere categorieën van inhoud die je wilt blokkeren.

5. Zodra je alle categorieën die je wilt blokkeren hebt geweigerd, ga je naar de onderkant van de lijst en selecteer je Toestaan uit het dropdown-menu naast Default Access.

6. Klik onderaan de pagina op Opslaan.

SquidGuard ACL

7. Ga terug naar het tabblad Algemeen van de SquidGuard Proxy Filter Instellingen, vink het vakje Inschakelen aan en klik onderaan de pagina op Opslaan.

8. Klik, eenmaal opgeslagen, op de knop Toepassen.

SquidGuard Inschakelen

Testing the Setup

We hebben nu Squid geconfigureerd met blacklist filtering. Als ik mijn browser gebruik die al is ingesteld om de proxy te gebruiken om een webpagina te benaderen die bekend staat om het weergeven van advertenties, zouden die nu weg moeten zijn.

Met Squid ingeschakeld:

SquidGuard Test

Met Squid uitgeschakeld:

SquidGuard Test

Het werkt. Dat is geweldig. Maar zoals het nu is ingesteld, zal Squid alleen het verkeer van mijn browser onderscheppen; vandaar dat ik alleen in mijn webbrowser zal profiteren van Squid’s advertentieblokkering.

Ik zal je laten zien hoe je je gehele apparaat kunt configureren om al zijn verkeer door de proxy server te sturen. Dit stelt je in staat om te profiteren van advertentieblokkering in je apps, in plaats van alleen in je browser. Ik zal je laten zien hoe je dit kunt doen op macOS, Windows, Linux, iOS, en Android.

Configuratie van Inhoudsfiltering voor Systeembreed Gebruik op Client-apparaten

Herstel de browserinstellingen

Laten we de handmatige proxy-instellingen die we in Firefox hebben geconfigureerd om onze verbinding te testen, ongedaan maken voordat we ons client-apparaat instellen voor een systeembrede proxy-configuratie.

1. Ga terug naar de Netwerkinstellingen in Firefox en selecteer Systeem proxy-instellingen gebruiken. Hiermee geef je de browser opdracht om de systeeminstellingen als zijn proxy-instellingen te gebruiken. Dit is de standaardinstelling.

2. Klik op OK en sluit de pagina Instellingen.

FireFox System Proxy

macOS

1. Selecteer vanuit de app Systeemvoorkeuren, Netwerk.

2. Zorg ervoor dat je huidige verbinding is geselecteerd en klik rechtsonder op Geavanceerd.

3. Selecteer het tabblad Proxies.

4. Vink zowel de opties Webproxy (HTTP) als Beveiligde Webproxy (HTTPS) aan.

5. Voer je pfSense box IP-adres en de proxy-poort in—192.168.1.1 en 3128 in mijn geval.

6. Klik op OK en Pas toe.

macOS Proxy Settings

Windows

1. Open de app Instellingen (sneltoets Win+I op het toetsenbord).

2. Ga naar Netwerk en Internet.

3. Selecteer het tabblad Proxy.

4. Scroll naar beneden naar het gedeelte Handmatige proxy setup.

5. Schakel de optie Gebruik een proxyserver in.

6. Voer je pfSense box IP-adres en de proxy-poort in – 192.168.1.1 en 3128 in mijn geval.

7. Klik op Opslaan.

Windows 10 Proxy Settings

Linux

1. Selecteer vanuit het venster Netwerkinstellingen, Netwerkproxy.

2. Selecteer Handmatig uit het dropdownmenu Methode.

3. Voer je pfSense box IP-adres en de proxy-poort in – 192.168.1.1 en 3128 in mijn geval – naast HTTP Proxy en HTTPS Proxy.

4. Sluit het venster Netwerkinstellingen.

Linus Proxy Setup

iOS

1. Ga naar Instellingen > WiFi, tik op het “i”-symbool rechts van je WiFi-verbinding.

2. Scroll naar beneden en selecteer Proxy instellen.

3. Selecteer Handmatig.

4. Voer je pfSense box IP-adres en de proxy-poort in – 192.168.1.1 en 3128 in mijn geval – naast Server en Poort.

5. Sluit de app Instellingen.

iPhone Proxy Settings

Android

1. Ga vanuit de app Instellingen naar WiFi.
2. Houd de momenteel verbonden WiFi-netwerk ingedrukt.
3. Selecteer Netwerk wijzigen.
4. Breid de Geavanceerde opties uit.
5. Selecteer Handmatig uit het dropdownmenu Proxy.
6. Voer je pfSense box IP-adres en de proxy-poort in – 192.168.1.1 en 3128 in mijn geval – onder Proxy-hostnaam en Proxy-poort.
7. Klik op Opslaan.

Android Proxy

Merk op dat om de proxy werkend te krijgen over mobiele data op iOS of Android, je een mobiel apparaatbeheer (MDM) profiel moet installeren, wat buiten de reikwijdte van deze huidige handleiding valt. Misschien behandelen we dit in de toekomst.

Afronding

Dus je hebt nu een werkende proxyserver met een blacklist-filter waarmee je advertenties kunt blokkeren op al je apparaten. Je hebt je beveiliging en privacy verbeterd door irritante advertenties die je gegevens stelen, te verwijderen.

Je zult ook minder bandbreedte verbruiken. En je webpagina’s laden sneller omdat advertenties niet hoeven te worden gedownload en weergegeven. Maar ook omdat Squid inhoud voor je cached. Dus, inhoud die je vaak opvraagt, zal sneller laden.

Goed spul. Blijf veilig.