103356 Letture

Modificare il file HOSTS di Windows e bloccare le app che "chiamano casa"

Quando si digita, nel browser web, l'indirizzo di un sito Internet o comunque quando il sistema operativo od una qualunque applicazione installata provano a collegarsi ad un indirizzo "mnemonico" del tipo www.google.it o update.microsoft.com, viene fatto ricorso ai server DNS.
Il server DNS (si può utilizzare quello fornito dal provider od usare, ad esempio, quelli di Google, di OpenDNS e così via...) si occupa di "risolvere" il nome a dominio ossia di stabilire la corrispondenza fra l'indirizzo "mnemonico" e l'IP della macchina (server) che risponde alle richieste di connessione nel caso del sito indicato.

Digitando, al prompt dei comandi di Windows, nslookup www.google.it, si potrà ad esempio stabilire qual è l'IP conosciuto dal DNS in uso per il nome a dominio www.google.it.

Prima ancora di interpellare un server DNS remoto per la risoluzione di ciascun dominio, il sistema operativo verifica se la corrispondenza con il relativo indirizzo IP non sia stata precedentemente annotata nella cache locale. E, prima ancora, viene utilizzato l'eventuale contenuto del file HOSTS.


Che cos'è il file HOSTS

Il file HOSTS è un file di testo presente in tutti i sistemi operativi (compresi quelli utilizzati dai dispositivi mobili) che consente di associare manualmente un indirizzo mnemonico (del tipo www.google.it) ad uno specifico indirizzo IP.
Le modifiche apportate al file HOSTS vengono prese in considerazione non soltanto da tutti i browser web installati ma anche dal sistema operativo e da ciascuna applicazione.

Ciò significa che inserendo nel file HOSTS un indirizzo IP seguito da un indirizzo mnemonico, si trasformerà la propria macchina, per il nome a dominio specificato, in una sorta di server DNS.
Tutte le richieste di connessione indirizzate al dominio indicato, infatti, non saranno più dirette all'IP originale ma saranno indirizzate verso l'IP manualmente indicato nel file HOSTS.

Nell'articolo Come spostare un sito su altro server abbiamo visto come il file HOSTS risulti particolarmente utile, per esempio, allorquando ci si accingesse a trasferire il proprio sito web su un altro server (vedere il paragrafo Provare il sito sul nuovo server).

Aggiungendo in calce al file HOSTS di Windows, come ultima riga, INDIRIZZO_IP www.nomedelsito.it (al posto di INDIRIZZO_IP si dovrà specificare l'IP del nuovo server), all'indirizzo www.nomedelsito.it, non risponderà più il vecchio server ma la richiesta di caricamento del sito indicato sarà presa in caricato dal web server installato sulla nuova macchina.
Ovviamente la modifica vale solo ed esclusivamente per il sistema locale e non per "il resto del mondo" che continuerà a collegarsi al sito web raggiungendo l'IP e quindi la macchina definiti a livello server DNS.
Ricorrendo alla modifica del file HOSTS, tuttavia, si potrà verificare la perfetta funzionalità del sito web spostato sul nuovo server prima di disporre il cambiamento del DNS.

Il file HOSTS, tuttavia, può essere utilizzato anche per "far cadere nel vuoto" certe richieste di connessione.

Modificare il file HOSTS in Windows

Se l'identità e le finalità di utilizzo del file HOSTS sono le stesse indipendentemente dal sistema operativo utilizzato, ogni piattaforma conserva il file in una differente locazione.
Nel caso di Windows, il file HOSTS è conservato nella cartella %windir%\System32\drivers\etc.

Per modificare il file HOSTS è necessario aprirlo con un'applicazione avviata usando i diritti di amministratore.

La procedura da seguire per modificare il file HOSTS in Windows è semplice:

- Avviare il Blocco Note, TextPad o Notepad++ con i diritti di amministratore. Per procedere rapidamente, è sufficiente fare clic sul pulsante Start di Windows 7 e digitare, ad esempio, Blocco Note nella casella Cerca programmi e file.
In Windows 8.1 basterà digitare Blocco Note nella casella di ricerca della charm bar mentre in Windows 10 nella casella posta immediatamente a destra del pulsante Start.
Si dovrà quindi cliccare con il tasto destro del mouse su Blocco Note e selezionare Esegui come amministratore.

Modificare il file HOSTS di Windows e bloccare le app che

Nella finestra di dialogo che apparirà agendo sul menu File, Apri dell'editor di testo (sia esso il Blocco Note di Windows oppure TextPad o Notepad++), all'interno della casella Nome file, si dovrà digitare quanto segue quindi fare clic sul pulsante Apri:


%windir%\System32\drivers\etc\HOSTS

Modificare il file HOSTS di Windows e bloccare le app che

A questo punto, si potrà modificare il file HOSTS tenendo però ben presente che alcuni software per la sicurezza (Windows Defender compreso), bloccano tale file ripristinandone la copia originale in caso di eventuali alterazioni.
Prima di modificare il file HOSTS, quindi, il consiglio è quello di disattivare temporaneamente i software per la sicurezza in esecuzione sul sistema.

Anteponendo l'IP quindi specificando l'indirizzo mnemonico, si potrà fare in modo che il nome a dominio specificato, limitatamente al sistema in uso, venga risolto così come specificato nel file HOSTS.
Per annullare temporaneamente l'effetto dell'aggiunta di una o più righe nel file HOSTS, è sufficiente aggiungere, come primo carattere, il cancelletto (#). In questo modo, la riga con il cancelletto come primo carattere sarà considerata alla stregua di un commento.

Per ciascuno degli indirizzi mnemonici specificati è possibile indicare un IP remoto ma anche indirizzi come 127.0.0.1 oppure 0.0.0.0.

Differenza tra gli indirizzi 127.0.0.1 e 0.0.0.0

L'IP 127.0.0.1 è chiamato indirizzo di loopback ed in tutti i sistemi operativi fa riferimento all'interfaccia di rete "fittizia" (interfaccia di loopback) che risponde alle richieste di connessione sullo stesso sistema.
Detto anche localhost, l'IP 127.0.0.1 risponde alle richieste di connessione sulla medesima macchina anche qualora non fossero presenti schede di rete "fisiche".
Si provi a digitare, al prompt dei comandi di Windows, ping 127.0.0.1: si otterrà comunque risposta.


Si pensi di aver installato un server database su una certa macchina. Alle applicazioni che necessitano di attingere al contenuto dei database memorizzati sul server locale basterà fornire l'IP 127.0.0.1. In questo modo, la connessione sarà diretta e in locale, senza passare attraverso la rete Internet o la rete LAN.
È così possibile far funzionare (ad esempio a mo´ di test) un server web ed un'applicazione web che accede, ad esempio, ad un database locale senza neppure dover essere connessi ad Internet.

Se sulla macchina locale fosse in esecuzione un server web, si può addirittura far puntare un qualunque dominio al server web in esecuzione in locale aggiungendo nel file HOSTS, ad esempio, quanto segue:

127.0.0.1 www.nomedeldominio.org

Se, viceversa, sul sistema locale non fosse installato alcun componente server, tutte le richieste dirette, ad esempio, al dominio www.nomedeldominio.org, cadrebbero "nel vuoto".

Ecco perché per bloccare tutti i tentativi di connessione diretti ad un sito web, è possibile aggiungere 127.0.0.1 seguito dall'indirizzo mnemonico del sito da bloccare nel file HOSTS.
Per rendere il blocco ancor più "performante", è possibile sostituire l'indirizzo 0.0.0.0 all'IP di loopback 127.0.0.1.
Mentre, infatti, le richieste di connessione verso l'IP 127.0.0.1 vengono dirette alla fittizia interfaccia di loopback, nel caso dell'IP 0.0.0.0 tutte le richieste cadono nel vuoto, indipendentemente dal fatto che sulla macchina locale fosse o meno in esecuzione un componente server.
L'IP 0.0.0.0 è un meta-indirizzo "non routable" che può essere utilizzato per invalidare qualunque indirizzo mnemonico.
Ecco perché, ad esempio, nel file HOSTS presentato nell'articolo Windows 10 e la privacy: disattivare la telemetria, si sono utilizzati IP 0.0.0.0 anziché 127.0.0.1.


Si provi ad esempio ad aggiungere le due righe seguenti al file HOSTS:

0.0.0.0 www.facebook.com
0.0.0.0 facebook.com

Il social network di Mark Zuckerberg non risulterà più visitabile da qualunque browser installato sulla macchina.

Modificare il file HOSTS di Windows e bloccare le app che

In ambito server l'IP 0.0.0.0 sta a significare "tutti gli indirizzi IP sulla stessa macchina". Se il sistema dispone di due interfacce di rete, l'una rispondente all'IP 192.168.1.100 e l'altra all'IP 10.1.2.10, un server posto in ascolto sull'IP 0.0.0.0 sarà raggiungibile usando entrambi gli IP.

Evitare che un'applicazione "chiami casa"

Il file HOSTS può essere utilizzato per bloccare le comunicazioni di un'app verso server remoti.
Aggiungendo 0.0.0.0 al file HOSTS, seguito dall'indirizzo mnemonico da bloccare, tutti i tentativi di connessione dell'applicazione verso il dominio indicato non andranno a buon fine.

L'utilizzo del file HOSTS è un po´ un'alternativa oltre che una misura di protezione aggiuntiva (e di più immediato impiego) rispetto al firewall di Windows: Windows Firewall: evitare che un programma si connetta ad Internet.

Per stabilire a quanti e quali indirizzi remoti si collega un qualunque programma, è possibile usare Fiddler, scaricabile gratuitamente da questa pagina.

Fiddler è uno sniffer di pacchetti dati, simile al noto Wireshark (Controllare quali attività sono in corso nella rete locale con Wireshark).
Dopo aver lanciato Fiddler, si può avviare il programma da monitorare e stabilire quali comunicazioni vengono poste in essere.
Esaminando la finestra principale di Fiddler si noteranno anche connessioni non strettamente necessarie per il corretto funzionamento del programma. Utilizzando il file HOSTS (anteponendo 0.0.0.0) si potrà bloccare tali tentativi di connessione.


Lo svantaggio derivante dall'utilizzo di Fiddler è che il programma monitora solamente i tentativi di connessione effettuati usando i protocolli HTTP e HTTPS.
Per monitorare tutti i protocolli e le porte, invece, è bene ricorrere al software Wireshark, nettamente superiore e più completo:

- Controllare quali attività sono in corso nella rete locale con Wireshark
- Wireshark: alcuni esempi di utilizzo del famoso analizzatore di protocollo


  1. Avatar
    matt62
    29/04/2016 09:26:48
    Grazie, gentilissimo, inoltre confermo che le notifiche via email arrivano, buona giornata!
  2. Avatar
    Michele Nasi
    29/04/2016 09:20:59
    Esattamente, altrimenti la riga aggiunta non verrebbe presa in considerazione.
  3. Avatar
    matt62
    29/04/2016 09:20:32
    Ciao e grazie per l'articolo dettagliato a tal punto di riuscire a seguirne solo parte ... ma quello che basta. Volevo porti una domanda, quindi se io aggiungo dei domini Esempio: # 102.54.94.97 rhino.acme.com dovrei evitare il "cancelletto" iniziale? ... così: 102.54.94.97 rhino.acme.com Grazie per una tua risposta, buona giornata. OT. Ho abilitato le notifiche e spero mi arrivino. Fai anche la cortesia di eliminare il mio messaggio precedente non essendo ancora iscritto in quel momento, grazie.
  4. Avatar
    @matt62
    29/04/2016 09:00:45
    Ciao e grazie @Michele. Quindi fammi capire, quando devo inserire un mio personale Host non dovrò mai metterlo in coda con il cancelletto come quelli originali già presenti? Esempio: # 127.0.0.1 localhost Ma dovrò aggiungerlo in coda così? 127.0.0.1 localhost Grazie infinite per la gentile risposta, Buona giornata!
Modificare il file HOSTS di Windows e bloccare le app che