Aggiornamento (4/7/2010): sono stati aggiornati gli indirizzi IP perché sembra che il blocco non funzioni del tutto.
Facebook è un social network che sta andando molto di moda.
Ci sono molti facebook-dipendenti e se una cosa la dice faccia di libro (lo so che sarebbe libro di faccia) allora è verita.
Perfetto. Se non siamo dipendenti, blocchiamolo dal router!
È necessario avere l’accesso a un terminale su router (esempio telnet o ssh) e che il router sia basato su linux quindi abbia iptables.
Troviamo tutti gli indirizzi ip di facebook con il comando host:
$ host facebook.com facebook.com has address 69.63.189.16 facebook.com has address 69.63.181.11 facebook.com has address 69.63.181.12 facebook.com has address 69.63.189.11 facebook.com mail is handled by 10 mx.snc1.tfbnw.net. facebook.com mail is handled by 10 mx.sf2p.tfbnw.net. $ host www.facebook.com www.facebook.com has address 66.220.147.44 $ host it.facebook.com it.facebook.com is an alias for www.facebook.com. www.facebook.com has address 66.220.147.11
Eccoli qui. Ora possiamo bloccarli, ecco come fare (da root del router):
iptables -I FORWARD -d 69.63.181.11 -j DROP iptables -I FORWARD -d 69.63.181.12 -j DROP iptables -I FORWARD -d 69.63.187.17 -j DROP iptables -I FORWARD -d 69.63.187.19 -j DROP iptables -I FORWARD -d 69.63.184.142 -j DROP iptables -I FORWARD -d 69.63.189.11 -j DROP iptables -I FORWARD -d 69.63.189.16 -j DROP iptables -I FORWARD -d 69.63.189.34 -j DROP iptables -I FORWARD -d 66.220.146.25 -j DROP iptables -I FORWARD -d 66.220.147.2 -j DROP iptables -I FORWARD -d 66.220.147.11 -j DROP iptables -I FORWARD -d 66.220.147.21 -j DROP iptables -I FORWARD -d 66.220.147.22 -j DROP iptables -I FORWARD -d 66.220.147.33 -j DROP iptables -I FORWARD -d 66.220.147.44 -j DROP iptables -I FORWARD -d 66.220.153.19 -j DROP
Ricordatevi di metterlo in un file che si carichi sempre all’avvio.
Volendo potete anche farlo sui singoli computer linux: basta sostituire FORWARD con OUTPUT (in teoria).
Ora l’unico modo per andarci è usare un proxy.
Non ho usato il blocco DNS perché se no bastava cambiare DNS.
Se non avete iptables salvabili magari potete lo stesso fare la modifica, cercatelo nella gui del router e tenete conto che quelli sono gli indirizzi ip.
Se volete comunque vedere se facebook ha un qualsiasi tipo di server - il cui DNS è quindi *.facebook.com o *.tfbnw.net - in un range di IP (cosa che ha tipo per 66.220.153.0 mi pare), usate uno script simile a questo:
#!/bin/bash class="" for i in `seq 1 254`; do test=`host "$class.$i" | awk '{print $5}'` if echo $test | grep -q facebook.com; then echo "$class.$i" elif echo $test | grep -q tfbnw.net; then echo "$class.$i" fi done
Con class i primi tre numeri (esempio 69.220.147) e lui vi stamperà solo gli ip “incriminati”. Come vedete è di facilissima modifica.