Cum să blochezi reclamele pe toate dispozitivele tale folosind pfSense, Squid & SquidGuard

Marc Dahan

By Marc Dahan . 27 august 2023

Jurnalist în securitate cibernetică

Miklos Zoltan

Fact-Checked this

pfSense este un puternic sistem de operare open-source pentru router/firewall bazat pe FreeBSD. Imediat după instalare, pfSense dispune de unele instrumente solide care îți permit să construiești o rețea securizată.

Dar pfSense îți oferă și posibilitatea de a instala pachete din depozitul său oficial, pentru a adăuga și mai multă funcționalitate sistemului tău.

În acest articol vei afla despre:

  • Ce este pfSense și cum să îl folosești
  • Ce este Squid și cum să îl folosești
  • Cum funcționează serverele proxy
  • Cum să instalezi și să configurezi Squid
  • Cum să instalezi și să configurezi SquidGuard
  • Cum să blochezi reclamele cu pfSense, Squid & SquidGuard

pfSense este un puternic sistem de operare open-source pentru router/firewall bazat pe FreeBSD. Imediat după instalare, pfSense vine cu unele instrumente robuste care îți permit să construiești o rețea securizată.

Totuși, pfSense îți permite și să instalezi pachete din depozitul său oficial, pentru a adăuga chiar și mai multă funcționalitate sistemului tău.

Un astfel de pachet se numește Squid. Squid este un proxy web de cache care poate efectua și filtrare de conținut. Să dezvoltăm puțin acest aspect și să oferim un context în jurul serverelor proxy și al utilizării lor.

Ghid relacionat: Cum să configurezi filtrarea IP și DNS Blackholing pe pfSense folosind pfBlockerNG

Rezumat: În acest articol am explicat cum să blochezi reclamele pe toate dispozitivele folosind pfSense, Squid și SquidGuard.
pfSense este un sistem de operare open-source pentru router/firewall cu instrumente solide pentru securizarea rețelelor, iar Squid este un proxy web de cache care oferă filtrare de conținut.

Am discutat despre rolul serverelor proxy în cache-ul conținutului și în filtrare, precum și despre cum să configurezi Squid și SquidGuard pe pfSense pentru a bloca reclamele.

Făcând aceasta, utilizatorii pot îmbunătăți securitatea și confidențialitatea, pot reduce consumul de lățime de bandă și pot crește viteza de încărcare a paginilor web.

Cum să blochezi reclamele

Servere Proxy

Un server proxy este un server intermediar care se situează între dispozitivul tău (laptop, tabletă, smartphone) și destinația finală de internet (oricesite.com).

Traficul tău părăsește dispozitivul, se conectează la serverul proxy și apoi ajunge la destinația sa finală de la serverul proxy.

De ce să trimiți traficul prin serverul proxy? Există câteva motive. Unul dintre ele este pentru a memora în cache conținutul. Acest lucru înseamnă că serverul proxy va salva local unele conținute astfel încât data viitoare când un client solicită acel conținut, acesta va fi oferit din cache, în loc să meargă pe internet pentru a-l descărca din nou.

Acest lucru accelerează navigarea pe internet, deoarece preluarea conținutului din cache-ul local al proxy-ului este mult mai rapidă decât reinițierea unei descărcări pe internet.

Un alt scop este filtrarea conținutului. Filtrarea conținutului înseamnă blocarea conexiunilor către anumite domenii sau adrese IP. Organizațiile care blochează accesul la Facebook, de exemplu, efectuează filtrare de conținut.

Un alt scop pentru filtrarea conținutului este blocarea reclamelor. Reclamele online sunt enervante. Acestea încalcă confidențialitatea, consumă lățimea de bandă și sunt un vector major pentru malware. Există motive excelente pentru a dori să le elimini. Și asta vom face folosind Squid în acest articol.

Vom arăta cum să configurezi Squid și SquidGuard (SquidGuard este un component suplimentar al Squid care permite filtrarea bazată pe liste) pe pfSense pentru a bloca reclamele pe toate dispozitivele tale.

Acest ghid presupune că ai un sistem pfSense funcțional, configurat cu interfețe WAN și LAN funcționale și că ai acces la interfața grafică.

Setările WAN și LAN

Instalarea Squid

Primul lucru pe care trebuie să îl facem este instalarea serverului proxy Squid.

1. Din meniurile superioare, alegeți Sistem > Manager Pachete. Veți fi direcționat către fila Pachete Instalate a Managerului de Pachete.
Mergi la Managerul de Pachete

2. Alegeți Pachete Disponibile. Lista cu pachete disponibile va fi afișată.
Squid Selectează Pachetele Disponibile

3. Derulați în jos până vedeți squid și dați click pe Instalează. Fereastra Instalator de Pachete va apărea.
Pachetul Squid

4. Faceți click pe Confirmă. Instalarea începe.
Squid Confirmă Instalarea

5. După finalizarea instalării, ar trebui să vedeți Succes în partea de jos a ferestrei Instalator de Pachete. Squid este acum instalat.
Squid Instalat

Configurarea Squid

Acum că Squid este instalat, vom configura noul nostru server proxy.

Din meniurile de sus, selectați Servicii > Server Proxy Squid. Veți fi direcționat către fila General a Setărilor Squid.
Mergi la Serverul Proxy Squid

Vom aborda configurarea Squid secțiune cu secțiune. Scopul nostru este să setăm blocarea reclamelor cu Squid, așa că nu vom detalia fiecare sub-meniu. Doar cele necesare pentru a atinge obiectivul. Orice setări nemenționate ar trebui lăsate la valorile lor implicite.

Înainte de a configura Squid, trebuie mai întâi să mergem la fila Cache Local și să acceptăm setările implicite de cache local făcând clic pe Salvare în partea de jos a paginii.

Dacă încercați să configurați proxy-ul fără a accepta setările de cache locale implicite, vi se va solicita să o faceți și veți pierde setările configurate până în acel moment.

Pagina Cache Local

Dacă doriți să ajustați setările de cache local mai târziu, puteți face acest lucru din fila Setări Squid Cache Local.

Setări Generale Squid

  1. Lăsați caseta Verifică pentru a activa proxy-ul Squid nebifată pentru moment. Vom configura mai întâi serverul nostru proxy înainte de a-l activa.
  2. Dacă cutia dvs. pfSense folosește atât IPv4, cât și IPv6, selectați IPv4+IPv6 din meniul derulant Versiune IP de Ascultare. Dacă nu, lăsați-l setat pe IPv4.
  3. Asigurați-vă că LAN este selectat în Interfețe Proxy. Dacă adăugați interfețe suplimentare la cutia dvs. pfSense și doriți ca traficul de pe acele interfețe să treacă prin Squid, va trebui să le selectați aici.
  4. Setați Interfața de ieșire la Implicit (automat).

Setări Generale Squid

Setări Proxy Transparent

Serverele proxy pot funcționa în două moduri: transparent sau explicit. În modul transparent, nu este necesară nicio configurare pe clienții dvs. (computer, tabletă, smartphone etc.) – traficul lor va fi dirijat transparent prin proxy.

Cu toate acestea, acest mod va direcționa doar traficul HTTP pe portul 80, nu și traficul HTTPS (dacă nu configurați filtrarea SSL Man In the Middle – mai multe despre asta mai jos). Deoarece majoritatea traficului de pe internet folosește HTTPS, modul transparent are un scop limitat pentru blocarea reclamelor, dar poate fi util pentru cache.

Modul explicit necesită configurarea fiecărui client pentru a „solicita” accesul la proxy. Și în acest mod, tot traficul de internet TCP este direcționat prin proxy (HTTP și HTTPS). Acesta este obiectivul nostru în acest ghid. Deci nu vom activa modul Transparent în acest ghid, dar puteți ajuta ambele moduri fără probleme.

Setări Proxy Transparent

Filtrare SSL Man In the Middle

După cum am menționat mai sus, este posibil să direcționați transparent conexiunile HTTPS. Dar pentru a face acest lucru, practic trebuie să întrerupeți HTTPS.

Squid poate înlocui certificatul SSL adecvat al site-ului pe care încercați să îl accesați cu propriul său certificat, decripta conexiunea și recripta-o cu certificatul său. Acest lucru vă permite să filtrați conexiunile SSL, dar, de asemenea, întrerupe validarea HTTPS care ar trebui să aibă loc în browserul dvs.

Nu recomand filtrarea SSL de tip Man In the Middle, decât în scopuri specifice, de către persoane care înțeleg ce fac. Vom lăsa această funcție dezactivată și ea.

Filtrare SSL Man In the Middle

Setări de Înregistrare

  1. Bifați caseta Activează Înregistrarea Accesului. Aceasta va înregistra traficul dvs. Squid, astfel încât să puteți vedea cum se comportă Squid dacă trebuie să rezolvați vreo problemă.
  2. Bifați caseta Înregistrați Paginile Refuzate de SquidGuard. Aceasta permite vizualizarea jurnalelor SquidGuard din fila În Timp Real alături de jurnalele Squid Proxy. Aceasta va fi utilă după ce am instalat SquidGuard.

Setări de Înregistrare

Manipularea Antetelor, Limbajul și Alte Personalizări

Setările de aici sunt opționale, dar vor limita cantitatea de informații afișate în anteturile Squid.

  • Setați modul Antet X-Forwarded pe off.
  • Bifați caseta Dezactivează Antetul VIA.
  • Bifați caseta Suprimă Versiunea Squid.
  • Faceți clic pe Salvare.

Anteturi și Limbaj

Fila ACLs

Pentru a vedea ce putem bloca explicit cu Squid, trebuie să ne ducem la fila ACLs.

Putem observa că avem mai multe căsuțe pentru a defini diferite elemente pe care Squid să le filtreze. Să examinăm fiecare în parte.

Fila ACLs

Subneturi Permise

Puteți adăuga subneturi suplimentare pentru a trece prin proxy-ul Squid aici. Acest lucru este util pentru subneturile care nu sunt asociate cu o interfață pe sistem, cum ar fi IPSec. Nu este necesar să adăugați nimic aici în exemplul nostru.

IP-uri Ne-restricționate

Adresele IP listate aici nu vor avea traficul filtrat de serverul proxy.

Adrese IP Interzise

Adresele IP listate aici nu vor avea permisiunea de a folosi serverul proxy, chiar dacă subnetul lor este permis.

Listă Albă

Domeniile listate în căsuța Listă Albă vor fi disponibile pentru toate gazdele autorizate să folosească proxy-ul. Intrările din listă albă trec peste cele din listă neagră.

Listă Neagră

Domeniile listate în căsuța Listă Neagră vor fi inaccesibile pentru toate gazdele care au permisiunea de a folosi serverul proxy.

Blocare User Agents

Această căsuță este extrem de utilă pentru blocarea anumitor aplicații de la accesul la internet. Când o aplicație face o cerere pe internet, anteturile sale includ un câmp numit user agent. Acest user agent identifică aplicația folosită. De exemplu, user agent-ul Google Chrome este Chrome.

Inițial, user agenții erau folosiți pentru a identifica browserul web care face o cerere către un server, astfel încât serverul să știe cum să redacteze datele solicitate în acel browser specific. Dar acum utilizarea lor este generalizată pentru orice aplicație care face cereri pe internet.

Pentru a bloca un user agent în Squid, trebuie să îl prefixați cu „^” (fără ghilimele).

Astfel, listând ^Chrome în căsuța Blocare User Agent a Squid, se va bloca accesul Google Chrome la internet.

Listând ^Mozilla va bloca Firefox-ul de la accesul la internet. Listând ^WhatsApp va bloca WhatsApp de la accesul la internet.

User agenții sunt foarte specifici și nu sunt întotdeauna la fel de simpli ca exemplele de mai sus. Trebuie să cunoașteți user agent-ul exact pe care o aplicație îl folosește pentru a-l putea bloca aici.

Blocare Tipuri MIME (Doar Răspuns)

MIME în tipuri MIME reprezintă Multipurpose Internet Mail Extensions, care sunt folosite pentru a defini tipuri de fișiere în URL-uri. Tipurile MIME sunt structurate astfel:

tip/subtip

Astfel, adăugând audio/mpeg în căsuța Blocare Tipuri MIME se va bloca descărcarea fișierelor mp3. Adăugând image/png în căsuța Blocare Tipuri MIME se va bloca descărcarea imaginilor png.

Ca și în cazul user agenților, tipurile MIME sunt foarte specifice. Trebuie să introduceți tipul și subtipul exact pentru ca filtrarea să funcționeze în Squid.

Testarea Squid

Adăugarea unei intrări în lista neagră a Squid

Haideți să testăm instalarea Squid pentru a ne asigura că totul funcționează corect înainte de a trece la următorii pași. Vom introduce un domeniu în căsuța Listă Neagră pentru a vedea dacă Squid îl va bloca așa cum ne așteptăm.

Din fila ACLs a Setărilor Proxy Squid, introduceți facebook.com în căsuța Listă Neagră.
Lista neagră Facebook

Faceți clic pe Salvează în partea de jos a paginii.

Mergeți la fila General a Setărilor Proxy Squid.

Bifați căsuța Activează Proxy Squid.

Activează Proxy Squid

Faceți clic pe Salvează în partea de jos a paginii.
Serverul nostru proxy este acum activat și configurat pentru a bloca facebook.com.

Vom configura rapid browserul nostru web pentru a folosi serverul proxy și a vedea dacă funcționează corespunzător. Dacă totul este configurat corect, nu ar trebui să pot accesa facebook.com.

Configurarea Firefox pentru a utiliza serverul proxy

Faceți clic pe pictograma Setări din partea dreaptă sus a browserului și selectați Preferințe (pe Windows se numește Opțiuni). Veți fi redirecționat către pagina Setări Generale.
Preferințe FireFox

Derulați în jos pe pagina Setări Generale până la secțiunea Setări Rețea și faceți clic pe butonul Setări.
Setări Rețea FireFox

Selectați Configurare Manuală a Proxy-ului.
În căsuța Proxy HTTP, introduceți adresa IP a dispozitivului dvs. pfSense. În cazul meu, aceasta este 192.168.1.1.
Configurați câmpul Port la 3128.
Bifați căsuța Utilizați acest proxy și pentru FTP și HTTPS.
Faceți clic pe OK în partea de jos a ferestrei și închideți pagina Setări.
Setări Proxy FireFox

Acum, dacă încerc să accesez facebook.com (pe HTTP sau HTTPS), browserul meu afișează următoarea pagină:

Facebook Blocat

Exact asta dorim.

SquidGuard

Deci acum avem un server proxy funcțional configurat să blocheze facebook.com. Excelent. Totuși, dacă dorim să blocăm reclamele, va trebui să adăugăm mii și mii de domenii în căsuța Listă Neagră a Squid. Nu e chiar soluția ideală…

Aici intervine SquidGuard. SquidGuard este un modul adițional pentru Squid care poate gestiona filtrarea bazată pe liste.

Cu filtrarea bazată pe liste, introduceți URL-ul unei liste de domenii blocate, iar orice domenii care corespund cu cele de pe lista neagră sunt blocate.

Acum că serverul nostru proxy Squid de bază este activ și funcțional, vom continua cu instalarea și configurarea SquidGuard.

Instalarea SquidGuard

Deci acum avem un server proxy funcțional configurat să blocheze facebook.com. Excelent. Totuși, dacă dorim să blocăm reclamele, va trebui să adăugăm mii și mii de domenii în căsuța Listă Neagră a Squid. Nu e chiar soluția ideală…

Aici intervine SquidGuard. SquidGuard este un modul adițional pentru Squid care poate gestiona filtrarea bazată pe liste.

Cu filtrarea bazată pe liste, introduceți URL-ul unei liste de domenii blocate, iar orice domenii care corespund cu cele de pe lista neagră sunt blocate.

Acum că serverul nostru proxy Squid de bază este activ și funcțional, vom continua cu instalarea și configurarea SquidGuard.

Instalarea SquidGuard

1. Din meniurile superioare, selectați Sistem > Manager Pachete. Veți fi redirecționat către fila Pachete Instalate a Managerului de Pachete.
Mergi la Managerul de Pachete

2. Selectați Pachete Disponibile. Lista cu pachetele disponibile va fi afișată.
Pachete Disponibile SquidGuard

3. Derulați în jos până vedeți SquidGuard și faceți clic pe Instalează. Fereastra Instalator de Pachete va fi afișată.
Găsește și Instalează SquidGuard

4. Faceți clic pe Confirmă. Instalarea începe.
Confirmă Instalarea SquidGuard

5. Odată ce instalarea este finalizată, ar trebui să vedeți Succes în partea de jos a ferestrei Instalator de Pachete. SquidGuard este acum instalat.
SquidGuard Instalat

Configurarea SquidGuard

SquidGuard este acum instalat. Să continuăm cu configurarea filtrării bazate pe liste.

Din meniurile superioare, selectați Servicii > Filtru Proxy SquidGuard. Vei fi redirecționat la fila General a Setărilor Filtrului Proxy SquidGuard.
Accesare paginile SquidGuard

Așa cum a fost cazul la configurarea Squid, vom discuta despre configurarea SquidGuard pas cu pas. Și, din nou, nu vom detalia fiecare sub-meniu, ci doar cele necesare pentru a atinge obiectivul nostru. Orice setări care nu sunt menționate ar trebui să rămână la valorile lor implicite.

Opțiuni Generale

Lăsați căsuța Activează nebifată pentru moment.
Opțiuni Generale SquidGuard

Opțiuni de Jurnalizare

  • Bifați căsuța Activează jurnalizarea în GUI.
  • Bifați căsuța Activează jurnalizarea.
  • Bifați căsuța Activează rotația jurnalului.

Opțiuni de Jurnalizare SquidGuard

Opțiuni Diverse

Bifați căsuța Curăță Publicitatea.
Opțiuni Diverse SquidGuard

Opțiuni Lista Neagră

Bifați căsuța Listă Neagră.

Introduceți următorul URL în câmpul URL Listă Neagră: https://shallalist.de/Downloads/shallalist.tar.gz. Acesta este URL-ul listei noastre negre. SquidGuard va descărca această listă și ne va oferi diferite categorii de domenii pe care le putem alege să le permitem sau să le blocăm. Este disponibil gratuit și este oferit de Shalla Secure Services. Există și alte liste pe care le puteți utiliza, dar multe sunt cu plată. Folosesc Shallalist de mulți ani și funcționează foarte bine, fiind adesea actualizat, așa că îl recomand.

Faceți clic pe Salvează în partea de jos a paginii.

Opțiuni Lista Neagră SquidGuard

Descărcarea Listei Negre

1. Accesați fila Listă Neagră din Setările Filtrului Proxy SquidGuard. URL-ul listei negre va fi afișat.

2. Faceți clic pe butonul Descarcă. Procesul de descărcare și analiză a listei negre va începe.

Pagina Liste Negre SquidGuard

3. Odată finalizat, ar trebui să vedeți mesajul Actualizare listă neagră completă în partea de jos a ferestrei Jurnal de actualizare a Listei Negre.
Actualizare Listă Neagră Completată

Configurarea Filtrării cu Lista Neagră în SquidGuard

1. Accesați fila ACL Comun din Setările Filtrului Proxy SquidGuard.

2. Faceți clic pe simbolul + de lângă Lista de Reguli Țintă. Lista de Reguli Țintă va fi afișată.

Configurarea filtrării cu lista neagră în SquidGuard

3. Prima intrare din listă este adv, care reprezintă reclamele. Din meniul derulant din dreapta acesteia, selectați Refuză.
Refuză Reclamele

4. Continuați să blocați orice alte categorii de conținut pe care doriți să le blocați.

5. După ce ați refuzat toate categoriile pe care doriți să le blocați, mergeți la baza listei și selectați Permite din meniul derulant lângă Acces Implicit.

6. Faceți clic pe Salvează în partea de jos a paginii.

ACL SquidGuard

7. Reveniți la fila General din Setările Filtrului Proxy SquidGuard, bifați caseta Activează și faceți clic pe Salvează în partea de jos a paginii.

8. Odată salvat, faceți clic pe butonul Aplică.
Activează SquidGuard

Testarea Configurației

Acum am configurat Squid cu filtrare pe baza listei negre. Dacă folosesc browser-ul meu, care este deja configurat să folosească proxy-ul, pentru a accesa o pagină web cunoscută pentru afișarea de reclame, acestea ar trebui să dispară.

Cu Squid activat:

Test SquidGuard

Cu Squid dezactivat:

Test SquidGuard

Funcționează. Asta e minunat. Dar, în configurația actuală, Squid va intercepta doar traficul browser-ului meu; astfel, voi beneficia de blocarea reclamelor în Squid doar în browser-ul meu.

Vă voi arăta cum să configurați întregul dispozitiv pentru a trimite tot traficul său prin serverul proxy. Acest lucru vă permite să beneficiați de blocarea reclamelor în aplicațiile voastre, nu doar în browser. Vă voi arăta cum să faceți acest lucru pe macOS, Windows, Linux, iOS și Android.

Configurarea Filtrării de Conținut la Nivel de Sistem pe Dispozitivele Client

Resetați setările browser-ului

Să anulăm setările proxy manuale pe care le-am configurat în Firefox pentru a testa conexiunea noastră înainte de a seta dispozitivul client pentru o configurare proxy la nivel de sistem.

1. Reveniți la Setările de rețea în Firefox și selectați Folosește setările proxy ale sistemului. Această opțiune instruiește browser-ul să folosească setările de sistem ca setări proxy. Este setarea implicită.

2. Faceți clic pe OK și închideți pagina de Setări.

Proxy System Firefox

macOS

1. Din aplicația Preferințe Sistem, selectați Rețea.

2. Asigurați-vă că conexiunea curentă este selectată și faceți clic pe Avansat în dreapta jos.

3. Selectați fila Proxy-uri.

4. Bifați ambele casete Proxy web (HTTP) și Proxy web securizat (HTTPS).

5. Introduceți adresa IP a sistemului pfSense și portul proxy – 192.168.1.1 și 3128 în cazul meu.

6. Faceți clic pe OK și Aplică.

Setări Proxy macOS

Windows

1. Deschideți aplicația Setări (combinția de taste Win+I).

2. Mergeți la Rețea și Internet.

3. Selectați fila Proxy.

4. Derulați în jos până la secțiunea Configurare proxy manuală.

5. Activați comutatorul Folosește un server proxy.

6. Introduceți adresa IP a sistemului pfSense și portul proxy – 192.168.1.1 și 3128 în cazul meu.

7. Faceți clic pe Salvează.

Setări Proxy Windows 10

Linux

1. Din fereastra Setările de Rețea, selectați Proxy de rețea.

2. Selectați Manual din meniul derulant Metodă.

3. Introduceți adresa IP a sistemului pfSense și portul proxy – 192.168.1.1 și 3128 în cazul meu – lângă Proxy HTTP și Proxy HTTPS.

4. Închideți fereastra Setările de Rețea.

Configurarea Proxy-ului Linux

iOS

1. În Setări > WiFi, apăsați pe „i” situat la dreapta conexiunii dvs. WiFi.

2. Derulați în jos și selectați Configurare Proxy.

3. Alegeți Manual.

4. Introduceți adresa IP a sistemului pfSense și portul proxy – 192.168.1.1 și 3128 în cazul meu – lângă Server și Port.

5. Închideți aplicația Setări.

Setările Proxy pentru iPhone

Android

1. Din aplicația Setări, selectați WiFi.

2. Mențineți apăsată rețeaua WiFi la care sunteți conectat în prezent.

3. Selectați Modifică rețea.

4. Deschideți Opțiuni avansate.

5. Selectați Manual din meniul derulant Proxy.

6. Introduceți adresa IP a sistemului pfSense și portul proxy – 192.168.1.1 și 3128 în cazul meu – sub Nume gazdă Proxy și Port Proxy.

7. Faceți clic pe Salvează.

Proxy Android

Rețineți că pentru a avea proxy-ul funcțional peste datele mobile pe iOS sau Android, va trebui să instalați un profil de gestionare a dispozitivelor mobile (MDM), care nu este tratat în acest ghid. Poate vom aborda acest subiect în viitor.

Încheiere

Acum aveți un server proxy funcțional cu filtrare prin lista neagră pe care îl puteți folosi pentru a bloca reclamele pe toate dispozitivele voastre. V-ați îmbunătățit securitatea și confidențialitatea eliminând anunțurile enervante care vă fură datele.

De asemenea, veți consuma mai puțină lățime de bandă. Și paginile dvs. web se vor încărca mai repede, deoarece reclamele nu vor mai trebui descărcate și redate. Dar și pentru că Squid cachează conținut pentru dvs. Astfel, conținutul pe care îl solicitați frecvent se va încărca mai rapid.

Bună treabă. Rămâneți în siguranță.