Pi-hole

From Linux Wiki
Jump to navigation Jump to search

Instalare și Configurare Pi-hole Server pe Ubuntu 2X.04 LTS[edit | edit source]

Pi-hole este un server DNS cu funcție de blocare a reclamelor și a conținutului nedorit la nivel de rețea. Spre deosebire de extensiile de browser care funcționează per dispozitiv, Pi-hole interceptează interogările DNS înainte ca acestea să ajungă la dispozitivul client, blocând domeniile nedorite pentru întreaga rețea dintr-un singur punct. Instalat pe o mașină virtuală Ubuntu, Pi-hole poate servi simultan ca:

  • server DNS local cu suport pentru domenii interne (ex: * server DNS local cu suport pentru domenii interne (ex: .lan)
  • server DHCP cu distribuire automată a configurației DNS către clienți
  • instrument de monitorizare a traficului DNS din rețea

Instalare Pi-hole[edit | edit source]

Articolul de față descrie instalarea și configurarea Pi-hole pe Ubuntu 2x.04 LTS într-un mediu de laborator (HomeLab), cu aplicabilitate directă într-un mediu SOHO (Small Office Home Office).

Prerechizite[edit | edit source]

Înainte de instalare, este necesară pregătirea unui sistem Ubuntu 2x.04 LTS cu adresă IP statică configurată și acces root sau user cu drept de sudo. Specificații minime recomandate pentru mașina virtuală:

  • 1 vCPU
  • 1 GB RAM
  • 8 GB spațiu pe disk

Instalarea utilitarelor necesare: # apt -y install wget curl binutils net-tools

Scriptul va descărca fișierele necesare și va lansa o serie de ecrane de configurare în interfață text.

Instalare[edit | edit source]

Instalarea Pi-hole se realizează printr-un script automat care descarcă și configurează toate componentele necesare:

# curl -sSL https://install.pi-hole.net | bash

Scriptul va descărca fișierele necesare și va lansa o serie de ecrane de configurare în interfață text.

Primul ecran confirmă că instalatorul va transforma dispozitivul într-un ad blocker la nivel de rețea. Se selectează OK pentru a continua.

Pi-hole install welcome screen

Pi-hole este un proiect open source gratuit, susținut prin donații. Se selectează OK pentru a continua.

Pi-hole install donate

Instalatorul avertizează că Pi-hole necesită o adresă IP statică pentru a funcționa corect. Deoarece aceasta a fost configurată ca prerechizită, se selectează Continue.

Pi-hole install IP static

Se selectează serverul DNS upstream pe care Pi-hole îl va folosi pentru rezolvarea domeniilor neblocate. În acest ghid se utilizează Cloudflare (DNSSEC).

Pi-hole install upstream DNS


Se confirmă includerea listei implicite StevenBlack's Unified Hosts List selectând Yes. Liste suplimentare pot fi adăugate după instalare.

Pi-hole install StevenBlack list

Se activează înregistrarea interogărilor DNS selectând Yes.

Pi-hole_install_query_logging

Se selectează nivelul de confidențialitate pentru înregistrarea datelor. Opțiunea implicită Show everything permite vizualizarea completă a interogărilor în dashboard.

Pi-hole_install_privacy_FTL

După finalizarea instalării sunt afișate două ecrane cu informațiile de acces:

Ecranul final al instalatorului afișează adresa IP, adresa interfeței web și parola de administrator. Aceste informații trebuie notate înainte de a selecta OK.

Pi-hole post-install confirmare

Aceleași informații sunt afișate și în consolă după închiderea instalatorului, inclusiv parola generată automat și comanda pentru schimbarea acesteia.

Pi-hole post-install confirmare cli

Acces HTTPS[edit | edit source]

Pi-hole v6 generează automat un certificat SSL self-signed la instalare. Interfața web este accesibilă prin HTTPS la adresa: https://192.168.1.23/admin

Avertisment certificat

La prima accesare prin HTTPS, browserul afișează un avertisment de securitate deoarece certificatul este self-signed. Se selectează Advanced → Accept the Risk and Continue.

Login screen

Se introduce parola afișată la finalul instalării și se selectează Log in.

Dashboard HTTPS

Dashboard-ul Pi-hole este accesibil. Iconița de lacăt confirmă că conexiunea este criptată.

Schimbarea parolei[edit | edit source]

Parola generată automat poate fi schimbată oricând folosind linia de comandă via SSH:

# pihole setpassword Enter New Password (Blank for no password): Confirm Password: [✓] New password set

Pi-hole ca ad blocker și control parental[edit | edit source]

La instalare, Pi-hole include o singură listă de blocare implicită — StevenBlack's Unified Hosts List. Pentru o protecție mai completă, se recomandă adăugarea de liste suplimentare.

Dashboard initial

Liste de blocare[edit | edit source]

Listele se administrează din meniul Lists din bara laterală. Pentru adăugarea unei liste noi se completează câmpurile Address și Comment, grupul rămâne Default, apoi se selectează Add blocklist.

Adaugare blocklist


Blocklist complet

Liste opționale pentru control parental:

AdAway: https://adaway.org/hosts.txt
URLhaus: https://urlhaus.abuse.ch/downloads/hostfile/
Phishing Army Extended: https://phishing.army/download/phishing_army_blocklist_extended.txt
WindowsSpyBlocker: https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt
KADhosts: https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt
StevenBlack extended: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling-porn/hosts
HaGeZi Gambling: https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/adblock/gambling.txt

Actualizarea Gravity[edit | edit source]

După adăugarea listelor, baza de date Pi-hole trebuie actualizată prin Tools → Update Gravity → Update.

Gravity update


Procesul descarcă și procesează toate listele active. La finalizare este afișat mesajul Done.

Gravity complet

După actualizarea Gravity cu toate cele 8 liste, numărul domeniilor blocate a crescut la 515.236 — de peste 6 ori mai mult față de configurația implicită.

Dashboard final

Pi-hole ca Add blocker[edit | edit source]

Înainte de configurarea DNS-ului către Pi-hole, reclamele sunt vizibile în coloana laterală și între categorii.

Website cu reclame

Se deschide Control Panel → Network and Sharing Center → Change adapter settings. Se selectează adaptorul Ethernet, se dă click pe Change settings of this connection, se selectează Internet Protocol Version 4 → Properties și se înlocuiește adresa DNS cu IP-ul Pi-hole.

Configurare DNS în Windows 10


Se golește cache-ul DNS cu ipconfig /flushdns în cmd ca administrator și se repornește browserul complet. Spațiile publicitare sunt goale — Pi-hole a interceptat și blocat cererile DNS către serverele de publicitate.

Website fără reclame

Pi-hole ca DNS local[edit | edit source]

Pi-hole v6 permite definirea de înregistrări DNS locale pentru rețeaua internă. Aceasta permite accesarea serviciilor din rețea prin nume în loc de adrese IP, folosind sufixul .lan.

Adăugare înregistrare[edit | edit source]

Înregistrările DNS locale se administrează din Settings → Local DNS Records.
La prima utilizare, această pagină nu este vizibilă în bara laterală de aceea se accesează direct la adresa:
http://192.168.1.23/admin/settings/dnsrecords
După accesarea directă a paginii, intrarea devine vizibilă în meniul Settings.

Înainte şi după accesarea manuală

Se completează câmpul Domain cu numele dorit (ex: pet-box.lan) și câmpul Associated IP cu adresa IP locală a serverului, apoi se selectează + pentru adăugare.
Adăugarea sau eliminarea unei înregistrări DNS locale golește cache-ul DNS dar nu necesită repornirea serverului DNS.

Adaugare DNS record

Testare DNS local[edit | edit source]

Același domeniu pet-box rezolvă diferit în funcție de sufixul folosit:
pet-box.ro → 109.103.178.159 — adresa IP publică, traficul iese în internet
pet-box.lan → 192.168.1.112 — adresa IP locală, traficul rămâne în rețeaua internă
Browserul accesează pet-box.lan direct prin rețeaua locală, fără să iasă în internet.

pet-box.lan

Pi-hole ca DHCP server[edit | edit source]

Pi-hole include un server DHCP integrat care poate distribui adrese IP clienților din rețea, transmițând automat și configurația DNS. Activarea serverului DHCP în Pi-hole necesită dezactivarea prealabilă a serverului DHCP din router pentru a evita conflictele. Într-un mediu SOHO aceasta înseamnă că toate dispozitivele din rețea vor prelua adrese de la Pi-hole.

Activare DHCP in Pi-hole[edit | edit source]

Serverul DHCP se configurează din Settings → DHCP. Se bifează DHCP server enabled și se completează:

  • Start / End — intervalul de adrese distribuite (ex: 192.168.1.50 — 192.168.1.80)
  • Router — adresa IP a gateway-ului (ex: 192.168.1.1)
  • Netmask — se lasă gol, Pi-hole îl detectează automat

Se selectează Save & Apply.

Activare DHCP in Pi-hole

Client Windows[edit | edit source]

Se deschide Control Panel → Network and Sharing Center → Change adapter settings. Se selectează adaptorul Ethernet, se dă click pe Change settings of this connection, se selectează Internet Protocol Version 4 → Properties și se bifează Obtain an IP address automatically.
DNS-ul 192.168.1.23 rămâne configurat manual din pașii anteriori.

Windows 10 drept client DHCP

Client Ubuntu Linux[edit | edit source]

Se modifică fișierul de configurare netplan:

# nano /etc/netplan/50-cloud-init.yaml

network:
  ethernets:
    ens18:
      dhcp4: true
  version: 2

# netplan apply

Clientul primește adresă IP din intervalul Pi-hole (192.168.1.61) cu valid_lft 3600sec — confirmare că lease-ul vine de la Pi-hole.

Ubuntu 2X.04 drept client DHCP

Clienți activi[edit | edit source]

Tabelul "Currently active DHCP leases" afișează toți clienții conectați cu IP-ul alocat, hostname, adresa MAC și timpul de expirare al lease-ului.
Aici observăm cele două echipamente configurate mai sus dar şi un smartphone care era activ în reţeaua în care activa Pi-hole.

Clienţii DHCP

Comenzi utile CLI[edit | edit source]

Verificare status Pi-hole: pihole status
Actualizare manuală a listelor de blocare (Gravity): pihole -g
Repornire server DNS: pihole restartdns
Schimbare parolă interfață web: pihole setpassword
Monitorizare interogări DNS în timp real: pihole tail
Actualizare Pi-hole la versiunea nouă: pihole updatePihole
Dezactivare temporară blocare (în secunde): pihole disable 300
Reactivare blocare: pihole enable

Concluzii[edit | edit source]

Pi-hole reprezintă o soluție accesibilă și eficientă pentru filtrarea DNS la nivel de rețea, potrivită atât pentru medii de laborator (HomeLab) cât și pentru medii SOHO (Small Office Home Office). Într-un mediu SOHO, Pi-hole oferă următoarele avantaje practice:

  • Blocare reclame și trackere pentru toate dispozitivele din rețea simultan — telefoane, tablete, smart TV-uri, console — fără instalarea vreunei extensii sau aplicații pe fiecare dispozitiv în parte
  • Protecție împotriva domeniilor de phishing și malware prin liste actualizate zilnic
  • Control parental prin liste dedicate pentru blocarea conținutului de gambling și conținut pentru adulți
  • DNS local pentru accesarea serviciilor interne prin nume în loc de adrese IP
  • Monitorizare trafic DNS în timp real prin dashboard-ul web
  • Server DHCP opțional, care simplifică distribuirea automată a configurației DNS către clienți

Pi-hole este un proiect open source gratuit, susținut exclusiv prin donații. Dacă acest ghid v-a fost util, contribuția la proiect este binevenită la https://pi-hole.net/donate/