Supponiamo che un sito web non abbia un nome di dominio come www.google.com
e l'unico modo per connettersi ad esso è utilizzare un indirizzo IP come 216.58.212.68
. Se aggiungo una voce in /etc/hosts
che assomiglia a 0.0.0.0 216.58.212.68
, bloccherà le connessioni a quel sito web? Verrebbe impedito anche a un browser web di visitarlo?
Inoltre, ciò si applicherebbe anche agli indirizzi locali come 192.168.0.1
?
Risposta accettata:
No. Il file hosts non influisce sul routing. Influisce solo sulla ricerca dei nomi. Dal 216.58.212.68
è un indirizzo IP, il sistema non lo cercherà nella tabella degli host.
Leggi qui per maggiori informazioni sul file hosts:http://manpages.ubuntu.com/manpages/trusty/man5/hosts.5.html
Se desideri bloccare le connessioni a un indirizzo IP dal tuo sistema, ci sono un paio di modi per farlo, ad esempio:
-
Traffico blackhole utilizzando il
route
comando:route add 216.58.212.68 gw 127.0.0.1 lo
-
Rifiuta il traffico utilizzando il
route
comando:route add -host 216.58.212.68 reject
-
Percorso nullo utilizzando
ip
comando:ip route add blackhole 216.58.212.68/32
Ora, se vuoi bloccare il traffico verso un sistema in base al nome, puoi aggiungere una voce falsa al file hosts che punta quel nome all'indirizzo di loopback:
127.0.0.1 badactor.evil.com
Quindi tutto il traffico che tenta di raggiungere quell'host dal tuo sistema verrà simulato, purché il tuo sistema sia impostato per utilizzare la ricerca del file hosts prima del DNS. Qualsiasi ricerca specifica basata su DNS funzionerà comunque, anche se potresti utilizzare un server DNSMASQ come un Pi Hole per bloccare anche le ricerche DNS.
Assicurati di leggere le pagine man per il route
e ip
comandi, così capirai come rendere persistenti questi comandi durante i riavvii, se necessario.