Você pode bloquear todos os IPs do facebook no seu firewall. O problema é que existem muitos e podem mudar com o tempo. Em nossa organização, temos um script de uma linha que nos fornece uma lista de todos os IPs do Facebook que bloqueamos no firewall.
Para o facebook, usamos o número AS. Parece que o Facebook tem 3 deles AS63293 AS54115 AS32934. Procure por facebook no kit de ferramentas de BGP do Serviço de Internet Hetrican Eletric
Para obter todos eles, usamos este comando:
{ whois -h whois.radb.net -- '-i origin AS32934' ; whois -h whois.radb.net -- '-i origin AS63293'; whois -h whois.radb.net -- '-i origin AS54115'; } | grep ^route | grep -v route6 | awk '{print $2}' > /var/www/block_lists/facebook.txt
Essa lista é gerada uma vez por dia e compartilhada por HTTP. O firewall / roteador (pfsense) lê e bloqueia todos os IPs listados. Se você faz bem com um pouco mais de trabalho manual, pode gerar essa lista periodicamente e conectá-la ao seu software de roteador / firewall. Veja a lista atual do Facebook (07.04.2015 IPv4) :
O Whatsapp não possui um número AS, portanto você precisaria obter os IPs do domínio. por exemplo:
{ host -t a whatsapp.com ; host -t a web.whatsapp.com; host -t a www.whatsapp.com; } | awk '{print $4}' > /var/www/block_lists/whatsapp.txt
O problema é que você precisará obter todos os domínios e subdomínios.