Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Raspberry Pi: realizzare un server DNS

Tutto ciò che server per realizzare il proprio server DNS (Domain Name System) con una board ARM Raspberry Pi
Tutto ciò che server per realizzare il proprio server DNS (Domain Name System) con una board ARM Raspberry Pi
Link copiato negli appunti

I DNS (Domain Name System) sono una parte essenziale dell'infrastruttura di Internet, consentono infatti agli utenti di utilizzare dei nomi a dominio al posto degli indirizzi IP per raggiungere un sito o un servizio Web. È grazie ad un sistema DNS se possiamo raggiungere questo sito digitando nella barra degli URL del browser "html.it" invece di dover scrivere una lunga serie di numeri difficili da ricordare.

Il DNS venne dunque sviluppato agli albori della tecnologia che sta alla base di Internet proprio per facilitare la navigazione tra le pagine Internet. In Rete vari tanti tipi di DNS, praticamente ogni provider Internet ne offre uno e lo configura all'interno del router che normalmente viene dato in dotazione quando si sottoscrive un contratto di fornitura. Tuttavia non esiste un vincolo che ci impone l'utilizzo di un singolo DNS, potenzialmente ogni device all'interno della nostra LAN (Local Area Network) può utilizzare un DNS diverso. Inoltre è anche possibile configurare i propri device in modo tale che si affidino ad un server DNS casalingo.

Tale server è sostanzialmente un normale PC connesso alla rete che si occupa di gestire le query DNS degli utenti. Questa soluzione viene adottata molto spesso per implementare sistemi di ad-block o per aumentare la sicurezza dei device durante la navigazione, andando a bloccare domini o servizi Web specifici. In genere per gestire le query DNS di una piccola rete locale non è necessario affidarsi a dispositivi molto potenti dunque anche un Raspberry Pi può andare benissimo per tale scopo.

Nella guida di oggi andremo a spiegare come realizzare il proprio server DNS con un Raspberry Pi.

Requisiti hardware

Per tale progetto è bene dotarsi di un Raspberry Pi modello B, noi vi consigliamo la variate più potente cosi da non avere problemi anche in caso di una rete molto trafficata, tuttavia dovrebbe andare bene anche l'edizione con 4GB di RAM. Inoltre è raccomandabile utilizzare anche un cavo di ethernet cat6, o superiore, connesso direttamente al router.

Ovviamente per ospitare il sistema operativo del Raspberry Pi e tutti i tool necessari ci si deve procurare anche una scheda microSD da 64GB.

Installazione e configurazione di Raspberry Pi OS

Iniziamo quindi andando a scaricare il file ISO di Raspberry Pi OS, ovvero la distribuzione Linux sviluppata dai medesimi creatori della board ARM. Si tratta di un sistema basato su Debian e dunque condivide con essa il suo parco software. Terminato il download del media d'installazione si deve ora collocarlo all'interno della microSD tramite uno dei tanti programmi dedicati al flash dei sistemi Linux.

Noi vi consigliamo di affidarvi a Rufus, un'utility open source davvero leggera, comoda e funzionale. Una volta aperto tale applicativo basta cliccare su "Dispositivo/Unità" per selezionare la microSD e successivamente su "Seleziona" per indicare al tool il file ISO di Raspberry Pi OS. Infine clicchiamo su "Avvia" per attivare la procedura di flash del sistema operativo.

rufus

Terminata tale operazione si può inserire la microSD nel Raspberry Pi. A questo punto siamo pronti per avviare il primo wizard di configurazione della distribuzione. Dunque connettiamo il device all'alimentatore e, ovviamente, anche al mouse, alla tastiera e al monitor.

Il primo setup di Raspberry Pi OS è davvero semplice, basta inserire le nostre credenziali per creare un account locale e seguire la procedura guidata cosi da accedere all'ambiente Desktop. Ultimato questo processo si può iniziare a mettere in piedi il server DNS casalingo.

Installazione e configurazione di DNSMasq

Prima di tutto assicuriamoci che il sistema operativo sia aggiornato con gli ultimi pacchetti disponibili nei repository. Quindi apriamo il terminale e scriviamo:

sudo apt update && sudo apt upgrade

Successivamente proseguiamo con l'installazione di DNSMasq, un software open source che fornisce le funzionalità di DNS caching, DHCP (Dynamic Host Configuration Protocol) server, router advertisement oltre a delle network boot feature.

Dunque andiamo ora a digitare nella shell:

sudo apt install dnsmasq

dnsmasq

Adesso dobbiamo configurare tale applicativo in modo tale che gestisca le nostre query tramite i DNS. Per eseguire tale processo andremo a sfruttare l'editor di testo Nano in modo tale da modificare il file di configurazione di DNSMasq:

sudo nano /etc/dnsmasq.conf

dnsmasq configurazione

A questo punto dobbiamo decommentare alcuni setting specifici, eliminando quindi il cancelletto che si trova davanti a tali parametri:

domain-needed
bogus-priv
no-resolv

Ora è arrivato il momento di selezionare il nostro nuovo DNS, in questa guida ci affideremo a quelli offerti da Google ovvero: 8.8.8.8 e 8.8.4.4. Per farlo è necessario sostituire questa stringa:

#sever=/localnet/192.168.0.1

con:

server=8.8.8.8

e

server=8.8.4.4

Successivamente andiamo ad incrementare la dimensione della cache DNS modificando il parametro:

#cache-size=150

con:

cache-size=1000

La configurazione è adesso ultimata. Per salvare le modifiche basta usare la combinazione di tasti CTRL+O mentre per chiudere il file bisogna utilizzare CTRL+X. Inoltre per rendere operative queste nuove impostazioni va riavviato anche il servizio in background di DNSMasq:

sudo systemctl restart dnsmasq

Per sicurezza testiamo anche che il demone sia effettivamente operativo:

sudo systemctl status dnsmasq

Come output dovremmo ricevere un lungo messaggio con all'interno la notifica "active (running)" in verde.

dnsmasq status test

Ora possiamo quindi provare il funzionamento del server DNS pingando un dominio a nostra scelta tramite il comando dig, ad esempio:

dig html.it @localhost

Dopo il primo test si inizierà a generare la cache DNS che permette di velocizzare notevolmente il tempo di risoluzione delle query e, di riflesso, il caricamento dei contenuti. Per verificare il suo funzionamento possiamo riutilizzare il comando proposto in precedenza e, tramite la voce "Query rime" presente nell'output, si potrà notare un notevole miglioramento delle performance.

dig ping dns server

Impostare dei dispositivi per sfruttare il server DNS

È arrivato il momento di impostare i nostri PC e smartphone in modo tale che sfruttino il server DNS appena configurato. Per farlo basta accedere ai rispettivi network manager ed inserire manualmente l'indirizzo IP del Raspberry Pi al posto del precedente DNS o dell'impostazione automatica. Se non si conosce tale dato basta sfruttare tale comando da shell:

hostname -I

Ti consigliamo anche