Il File Hosts

Alzi la mano chi lavora in ambito web e non ha mai sentito nominare il file hosts: tutti (o quasi) ne abbiamo sentito parlare ma per un motivo o per un altro non abbiamo mai approfondito l’argomento. Beh, è ora di farlo ma non ti preoccupare, cercherò di spiegarti cos’è, dov’è, a cosa serve e come si utilizza nel modo più semplice possibile.

Indice

Scenario generale e prerequisiti per una corretta comprensione

In questo articolo ricorrerò sovente all’utilizzo dei seguenti termini: in fondo all’articolo troverai spiegazioni dettagliate per ognuno, in caso dovesse sfuggirti qualche nozione 😉

  • Indirizzo IP, abbreviato “ip
  • Nome a dominio o Indirizzo web, abbreviato “dominio” o “URL
  • Server Web, abbreviato “server
  • Browser, ovvero il programma che ci permette di navigare su internet (Google Chrome, Firefox, ecc)

Farò un esempio classico, per capire il ruolo di questo file all’interno dei dispositivi che hanno accesso a internet (e quindi parliamo di computer/portatili/tablet/smartphone siano essi windows/linux/apple non fa alcuna differenza).

Funzionamento computer con file hosts originale

Sei a casa sul divano e vuoi aprire un sito sul tuo computer per passare un po’ di tempo: bene, prendiamo Facebook come esempio. Avvii il browser e, tramite un preferito o una ricerca su Google e simili, apri la pagina web del popolare social network.

A questa tua azione “umana” corrisponde un’azione del computer, che traduce la tua richiesta (l’arrivare su Facebook) nel risultato ottenuto (apertura della pagina web di Facebook): come?

Richiesta sito -> risoluzione del dominio -> server web di facebook

Questo è ciò che accade normalmente, quando il file hosts non è stato modificato.

Funzionamento computer con file hosts modificato

Riprendiamo l’esempio di prima, ma con una differenza: sei sul posto di lavoro e l’utilizzo di Facebook non è consentito; pertanto viene modificato il file hosts per evitare che tu apra il popolare social network sul computer dell’azienda (vedremo più avanti perchè si modifica questo file, non è solo per bloccare o vietare l’accesso ai siti)

Richiesta sito -> risoluzione del dominio -> server web specificato nel file hosts

In questo modo non arriverai più sul server di Facebook ma su un server diverso, specificato nel file modificato. Risultato? Ti toccherà lavorare e attendere la sera per svagarti!

Per farla breve, il file hosts è quel file che indica al tuo computer quale strada seguire (IP) per arrivare ad un determinato sito (URL), ospitato su un determinato server (SERVER WEB)

Perchè ho evidenziato la parola “determinato”? Perchè il file hosts agisce sulla modifica delle comuni indicazioni che servono per raggiungere un sito.

Cos’è il file hosts ?

Il file hosts è in primis un file di sistema: quindi non deve essere cancellato e quando lo si modifica, lo si deve fare con criterio. Fatta questa breve ma doverosa premessa, posso dirti che questo file è di tipo testo dalle dimensioni davvero ridotte e si apre con un qualsiasi editor testuale (notepad, ad esempio) e non richiede pertanto l’utilizzo di programmi a pagamento come Microsoft Word.

A cosa serve il file hosts ?

Il file hosts è quel file che viene “consultato” dal nostro browser prima di interrogare il sistema DNS: se la richiesta effettuata dal browser non trova corrispondenza nella macchina locale (all’interno del nostro file, appunto), allora utilizzerà il sistema tradizionale (il primo esempio fatto in precedenza), altrimenti seguirà le direttive specificate (secondo esempio). In sostanza, modificare questo file permette al nostro computer di risolvere alcuni indirizzi (host) con un determinato IP da noi specificato all’interno del file, un po’ come un vigile urbano che ci indica o meno una deviazione obbligatoria.

Dove si trova il file hosts ?

Come detto in precedenza, il file hosts è presente in qualsiasi dispositivo predisposto alla navigazione su internet e la sua posizione cambia in base al sistema operativo utilizzato.

Di seguito la lista dei sistemi operativi più diffusi e il relativo percorso.

Percorso del file hosts in Microsoft Windows

Si applica a Windows 7 / Windows 8 / Windows 10 / Windows Server 2012 / Windows Server 2016

C:\Windows\System32\drivers\etc\hosts

Percorso del file hosts in Apple Mac Os X

Si applica a OS X 10.9 Mavericks / OS X 10.10 Yosemite / OS X 10.11 El Capitan / macOS 10.12 Sierra / macOS 10.13 High Sierra / macOS 10.14 Mojave

/private/etc/hosts

Percorso del file hosts in Linux (Debian, Ubuntu e derivate)

Si applica a Ubuntu e tutte le derivate di Debian (Linux Mint, elementary OS, Zorin OS ecc. (quali sono le distribuzioni linux basate su Debian/Ubuntu?)

/etc/hosts

Percorso del file hosts in iOS e Android

Si applica a Apple iOS (iPhone e iPad) e Google Android (Samsung, Huawei, Lg, Xiaomi ecc)

/system/etc/hosts

Non approfondirò il discorso smartphone e tablet perchè i motivi che ci spingono a modificare il file e il suo utilizzo sono pressochè inutili (o quasi) su questo tipo di dispositivi, ma sappi che si può fare (anche se modificare il file hosts su android e ios è fattibile solo se il device ha i permessi di root o il jailbreak).

Attenzione: sui dispositivi mobili il file potrebbe essere nascosto e occorre quindi utilizzare un tool apposito o far visualizzare i file nascosti dal file manager/sistema operativo utilizzato.

La struttura del file hosts

Il file hosts, come anticipato precedentemente, è un semplice file di testo e contiene:

  • del testo commentato, che indica il funzionamento del file e/o degli esempi;
  • eventuali “direttive” specifiche, ovvero ip e dominio

Perchè modificare il file hosts?

I motivi per cui si modifica un file hosts possono essere molti ma i più importanti che mi vengono in mente sono sostanzialmente due:

  1. sviluppo in ambito web
  2. navigare su internet in sicurezza

Sviluppo in ambito web

Come detto all’inizio dell’articolo, modificare il file hosts può risultare davvero molto utile in fase di sviluppo di un sito internet

Faccio un esempio pratico: voglio apportare delle modifiche radicali al mio blog e, dato che il sito è visibile pubblicamente su internet tramite l’indirizzo www.marinomichele.it, voglio lavorarci in tutta sicurezza su un server di prova prima di metterlo definitivamente online; in questo modo potrò apportare tutte le modifiche che voglio e le vedrò solo io: chiunque nel mondo visiti www.marinomichele.it vedrà sempre e solo il sito “ufficiale”.

Tutto ciò che mi servirà è un backup del mio sito e un server di prova (server di prova che può essere il computer che sto utilizzando, un server all’interno della mia rete lan oppure un server pubblico su internet diverso da quello dove è attualmente ospitato il sito)

  • Impostando l’indirizzo IP come 127.0.0.1, obbligherò il mio browser a raggiungere il sito www.marinomichele.it configurato sul server web presente sul mio computer (nel caso si utilizzi ad esempio un server web WAMP/XAMPP/LAMP) senza dover risolvere il VERO ip associato al dominio
reindirizzamento su computer locale
reindirizzamento su computer locale
  • Impostando un indirizzo IP della nostra LAN, digitando www.marinomichele.it visiteremo il sito ospitato sul server nella nostra rete lan che ha indirizzo IP 192.168.1.110
reindirizzamento su server web lan
reindirizzamento su server web lan
  • Impostando un indirizzo IP pubblico di un server web invece, visiteremo il sito ospitato su quella determinata macchina (diversa dalla macchina che ospita il sito “ufficiale” visibile a tutti)
reindirizzamento su server web esterno
reindirizzamento su server web esterno

Navigare su internet in sicurezza

Modificare il file hosts per navigare in sicurezza vuol dire bloccare determinati indirizzi ritenuti pericolosi (siti contenenti virus o contenuti pornografici, ecc..), siti pubblicitari oppure indirizzi specifici che non vogliamo vengano aperti (social network), rendendo così la navigazione un po’ più sicura. 

Esempio riportato a inizio articolo, ovvero non voglio che dal mio computer si acceda a Facebook: come faccio? Semplice, modifico il file hosts specificando IP 0.0.0.0 e indirizzo www.facebook.com

come bloccare facebook con file hosts
come bloccare facebook con file hosts

Il risultato? Eccolo

sito bloccato
sito bloccato

Anche tramite ping ci verrà restituito il valore (IP) specificato nel file hosts

ping al sito bloccato
ping al sito bloccato

Nota: a fine articolo ti spiegherò la differenza tra 127.0.0.1 e 0.0.0.0

Per quanto riguarda invece i siti “spazzatura”, c’è da dire che esistono su internet diversi siti che forniscono un file hosts contenente decine -se non centinaia- di indirizzi già bloccati: basta visitare questo link MVPS oppure someonewhocares.org. Se sei interessato al discorso sicurezza, ti invito a leggere il paragrafo “Tool per Windows: HostsMan” che permette di bloccare in modo automatico parecchie schifezze!

Attenzione: un file hosts troppo lungo potrebbe rallentare la navigazione su internet

Come modificare il file hosts in Windows

Per modificare il file hosts in Windows è sufficiente aprire il caro, vecchio Blocco Note; ecco la procedura.

  • Avvia il Blocco Note con i privilegi di amministratore (tasto destro sull’icona del Blocco Note -> Esegui come Amministatore) (figura 1)
  • Dal menù “File”, scegliere “Apri…” (figura 2)
  • Scegliere “Tutti i file” in basso a destra, recarsi nella cartella C:\Windows\System32\drivers\etc\ e aprire il file chiamato “hosts” (figura 3)
  • Inserire l’IP e il dominio desiderato e salvare il file

"<yoastmark

"<yoastmark

"<yoastmark

file hosts su windows
file hosts su windows

Tool per Windows: HostsMan

HostsMan è un programma gratuito che consente una gestione completa e automatizzata del file su Windows. Non entro troppo nel dettaglio però posso dirti che:

  • è gratuito;
  • esiste anche la versione portable (non necessita di installazione);
  • permette di scaricare e aggiornare automaticamente liste di siti pubblicitari o contenenti malware.

Link download HostsMan

Come modificare il file hosts in Mac Os X

Per modificare il file hosts in Mac Os X è necessario aprire il Terminale oppure navigare nella cartella tramite il Finder. Personalmente parlando, preferisco il terminale: pratico e veloce.

  • Avvia il Terminale: lo trovi nella cartella Applicazioni -> Utility (oppure puoi usare una ricerca di Spotlight)
  • Digita il seguente comando per ottenere i privilegi di root: sudo -s
  • Inserisci la tua password
  • Utilizza il programma “nano” utilizzando il comando: nano /private/etc/hosts per aprire il file
  • Inserire l’IP e il dominio desiderato
  • Per uscire premere contemporaneamente CTRL+X e ci verrà richiesto se salvare o meno le modifiche apportate al file
    • premere Y e successivamente invio per salvare le modifiche
    • premere N e successivamente invio per non salvare alcuna modifica
Modificare file hosts su mac os x
Modificare file hosts su mac os x
file hosts su mac os x
file hosts su mac os x

Come modificare il file hosts in Linux

Per modificare il file hosts in Linux (Debian, Ubuntu e derivate) il discorso è analogo ai sistemi Apple: terminale o interfaccia grafica. Anche qui, la mia scelta personale ricade sul terminale; idem per la procedura che è praticamente identica (cambia solo il percorso).

  • Avvia il Terminale: dipende dalla distribuzione Linux che usi, ma solitamente lo puoi aprire con la scorciatoia Ctrl+Alt+T
  • Digita il seguente comando per ottenere i privilegi di root: sudo -s
  • Inserisci la tua password
  • Utilizza il programma “nano” utilizzando il comando: nano /etc/hosts per aprire il file
  • Inserire l’IP e il dominio desiderato
  • Per uscire premere contemporaneamente CTRL+X e ci verrà richiesto se salvare o meno le modifiche apportate al file
    • premere Y e successivamente invio per salvare le modifiche
    • premere N e successivamente invio per non salvare alcuna modifica
Modificare file hosts su linux
Modificare file hosts su linux
file hosts su linux
file hosts su linux

File hosts modificati: I rischi

Quali sono i rischi di avere questo file modificato? Beh, senza ombra di dubbio il non poter raggiungere un sito che ci serve (ma questo potrebbe anche essere un problema legato ai DNS: a tal proposito di consiglio di leggere Server DNS pubblici: come configurarli )!

Attenzione, parecchi malware modificano il file hosts, al fine di bloccare alcuni siti (ad esempio i server di aggiornamenti di software di sicurezza, quali firewall e antivirus) o reindirizzare verso siti pericolosi: sarebbe opportuno fare un controllo ogni tanto o magari quando notiamo un qualche malfunzionamento strano quando apriamo dei siti.

Indirizzi 127.0.0.1 e 0.0.0.0: differenze e applicazioni

Nel corso dell’articolo, ho più volte utilizzato questi due indirizzi IP all’interno dei miei esempi: ma qual è la differenza tra 127.0.0.1 e 0.0.0.0? Quando bisogna utilizzare uno piuttosto che l’altro?

127.0.0.1 è quell’ip che nel gergo informatico viene definito “indirizzo di loopback” oppure “localhost” e definisce il computer locale appunto, quello sul quale si sta lavorando.

0.0.0.0 invece rappresenta un indirizzo “non-routable”: vuol dire tutte le richieste fatte e risolte con l’ip 0.0.0.0 vengono chiuse, annullate.

Riprendiamo per l’ultima volta l’esempio del social network da bloccare: per bloccare facebook abbiamo imparato a modificare il file hosts come segue:

127.0.0.1        www.facebook.com
oppure
0.0.0.0          www.facebook.com

Ma quale delle due righe scelgo? Cosa mi conviene scrivere e perchè?

  • 127.0.0.1 dice al browser che per visitare facebook deve fare riferimento al server web installato su se stesso; nel caso in cui sul nostro computer non sia installato alcun server web oppure non sia configurato il sito “www.facebook.com” non dico che non serva a nulla, ma andremo ad “appesantire” il sistema con delle richieste inutili.
  • 0.0.0.0 invece è la soluzione più appropriata, in quanto tronca immediatamente la richiesta.

Concludendo quindi, consiglio di utilizzare 127.0.0.1 solo se si utilizza macchina locale come server; per bloccare l’accesso ai vari siti o server, conviene utilizzare 0.0.0.0 come ip.

Definizioni

  • Indirizzo IP: è una serie di numeri separati da un punto che identifica in modo univoco un host (computer o server) all’interno di una rete informatica, ad esempio 41.89.21.10
  • Nome di dominio: è una stringa di testo separata da punti che identifica un determinato sito internet ospitato su un server web, ad esempio www.marinomichele.it.
  • URL: l’url è l’insieme del protocollo utilizzato (ad esempio https://) e il nome a dominio. Un esempio di url è https://www.marinomichele.it.
  • Server Web: è una macchina(computer) con installato una serie di programmi in grado di ospitare gestire siti internet più o meno complessi.
  • DNS: acronimo di Domain Name System è il sistema che “traduce” il nome a dominio in indirizzo ip
  • Locahost / interfaccia di loopback: corrisponde all’indirizzo IP 127.0.0.1 e viene utilizzato per far funzionare software e applicativi web sul computer in locale come se fosse un server remoto.
  • Nano: programma che permette di modificare file di testo tramite terminale su sistemi Linux ed Apple
  • Terminale: è un programma che permette di eseguire operazioni tramite comandi testuali, senza interfaccia grafica
  • Server Lamp / Xamp / Wamp: sono piattaforme di sviluppo web e database e si differenziano per il software che contengono; maggiori informazioni su LAMPXAMPPWAMP su Wikipedia
  • Lan: acronimo di Local Area Network, ovvero la rete locale (computer, tablet, smartphone ecc collegati allo stesso router / modem )
  • Root: nel gergo informatico, l’utente root è quell’utente che dispone dei massimi privilegi e autorizzazioni

Considerazioni finali

Abbiamo visto dove si trova, come si modifica e a cosa server il file hosts sui sistemi operativi più diffusi; non esitare a scrivere un commento per chiedere consigli o maggiori informazioni o semplicemente per indicare un suggerimento!

Lascia un commento

Ultimi articoli del blog