Bloquear Facebook con pfSense sin Squid

En esta oportinudad se trata con evitar que Facebook sea la aplicación más utilizada por los clientes de una red empresarial. Nuestro aliado es la distribución pfSense, la distribución open source firewall / router basada en FreeBSD.

Facebook viaja por el puerto TCP:443. Esto quiere decir que si queremos bloquearlo con un proxy, como por ejemplo squid, va a ser mejor que sea la versión 3

Otra posibilidad es creando reglas de firewall para los clientes (generalmente ubicados en la LAN) que intentan navegar en Facebook. Para crear estas reglas, será fundamental crear aliases donde contener todas las direcciones ip o de red de estos sitios (o de los que se quiera bloquear).

Obtener todas las ip de los servidores de Facebook

Con una simple consulta a whois.radb.net podremos recibir todas las direcciones de un servicio a través de su número AS (Autonomous system)

Un Sistema Autónomo (en inglés, Autonomous System: AS) se define como “un grupo de redes IP que poseen una política de rutas propia e independiente”. Esta definición hace referencia a la característica fundamental de un Sistema Autónomo: realiza su propia gestión del tráfico que fluye entre él y los restantes Sistemas Autónomos que forman Internet. Un número de AS o ASN se asigna a cada AS, el que lo identifica de manera única a sus redes dentro de Internet

Wikipedia

Buscando en DuckDuckGo ASN Lookup vamos a encontrar una serie de sitios que nos permitirán encontrar el número AS correspondiente al nombre de una empresa o dominio. Uno de ellos es networktools.nl ... seleccionamos AS Info e ingresamos facebook.com. Desde la consola ejecutamos el siguiente comando

whois -h whois.radb.net -- '-i origin AS32934' | awk '/^route:/ {print $2;}' | sort | uniq

El resultado será más o menos este:

103.4.96.0/22
129.134.0.0/16
157.240.0.0/16
173.252.64.0/18
173.252.64.0/19
173.252.70.0/24
173.252.96.0/19
179.60.192.0/22
179.60.192.0/24
179.60.193.0/24
179.60.194.0/24
179.60.195.0/24
185.60.216.0/22
185.60.216.0/24
185.60.217.0/24
185.60.218.0/24
185.60.219.0/24
204.15.20.0/22
31.13.24.0/21
31.13.64.0/18
31.13.64.0/19
31.13.64.0/24
31.13.65.0/24
31.13.66.0/24
31.13.67.0/24
31.13.68.0/24
31.13.69.0/24
31.13.70.0/24
31.13.71.0/24
31.13.72.0/24
31.13.73.0/24
31.13.74.0/24
31.13.75.0/24
31.13.76.0/24
31.13.77.0/24
31.13.78.0/24
31.13.79.0/24
31.13.80.0/24
31.13.81.0/24
31.13.82.0/24
31.13.83.0/24
31.13.84.0/24
31.13.85.0/24
31.13.86.0/24
31.13.87.0/24
31.13.88.0/24
31.13.89.0/24
31.13.90.0/24
31.13.91.0/24
31.13.92.0/24
31.13.93.0/24
31.13.94.0/24
31.13.95.0/24
31.13.96.0/19
45.64.40.0/22
66.220.144.0/20
66.220.144.0/21
66.220.152.0/21
66.220.159.0/24
69.171.224.0/19
69.171.224.0/20
69.171.239.0/24
69.171.240.0/20
69.171.253.0/24
69.171.255.0/24
69.63.176.0/20
69.63.176.0/21
69.63.176.0/24
69.63.178.0/24
69.63.184.0/21
69.63.186.0/24
74.119.76.0/22

Ahora, en el pfSense creamos un nuevo alias yendo a Firewall → Aliases y luego entramos en la pestaña IP. En tipo seleccionamos network y pegamos todas las direcciones de red del resultado anterior. Podemos pegar todas en el primer campo, pfSense automáticamente las separará una por una cuando guardemos el alias.

pfSense aliases para las redes de Facebook

Desgraciadamente, en el caso de YouTube no es posible utilizar el mismo procedimiento. La mejor solución sería implementando squid3.