
Para los que nos gusta proteger nuestra privacidad, es muy posible que nos interese bloquear cualquier acceso de los gigantes de Internet a nuestro equipo, pero no solo bloquear su acceso a nosotros sino también nuestro acceso a ellos, de tal forma que no puedan hacer un seguimiento a través de nuestra navegación por ninguno de sus servicios. Hoy os vamos a enseñar a bloquear todas las IP de gigantes como Google, Facebook y Microsoft en tu servidor basado en Linux con el firewall iptables.
Sistemas Autónomos, ¿qué son?
Un Sistema Autónomo es un grupo de redes basadas en IPv4 y IPv6 que poseen una política de rutas propias e independientes. Internet está constituido por una gran cantidad de Sistemas Autónomos, o también denominados AS (Autonomous System), por ejemplo, cada operador ISP tiene un AS diferente el cual está perfectamente identificado por su número de Sistema Autónomo. Los gigantes de Internet también tienen un número de Sistema Autónomo, ¿cómo sabemos qué número de Sistema Autónomo utiliza Google o Microsoft? Simplemente debemos preguntarle a RIPE, la organización que se encarga de gestionar el direccionamiento IP.
A continuación tenéis algunos AS de las empresas más populares:
- Google: AS15169
- Facebook: AS32934
- Microsoft: AS8075
- Yahoo: AS10310
¿Cómo bloquear en nuestro firewall con iptables todas las IP y subredes?
Para bloquear todas las IP en nuestro firewall deberemos introducir todas y cada una de las subredes IPv4 y IPv6 que tiene dicho servicio. Debido a la cantidad de direcciones IP que tienen estos gigantes de Internet, se hace complicado poder realizarlo manualmente.
Para automatizar dicho proceso, basta con una simple sentencia preguntando a RIPE qué direcciones IP y subredes utilizan estos gigantes para posteriormente configurar el firewall de Linux.
De la siguiente sentencia, únicamente debemos modificar el ASN, sustituyendo las XXXXX por el número de sistema autónomo utilizado.
ASN=XXXXX; for s in $(whois -H -h riswhois.ripe.net -- -F -K -i $ASN | grep -v "^$" | grep -v "^%" | awk '{ print $2 }' ); do echo "Bloqueando $s"; sudo iptables -A INPUT -s $s -j DROP &> /dev/null || sudo ip6tables -A INPUT -s $s -j DROP; done
Por ejemplo, si queremos bloquear Google deberemos poner simplemente 15169 en lugar de las XXXXX.
ASN=XXXXX; for s in $(whois -H -h riswhois.ripe.net -- -F -K -i $ASN | grep -v "^$" | grep -v "^%" | awk '{ print $2 }' ); do echo "Bloqueando $s"; sudo iptables -A INPUT -s $s -j DROP &> /dev/null || sudo ip6tables -A INPUT -s $s -j DROP; done
Tal y como podéis ver, la orden de iptables es la de bloquear cualquier origen que tengan esas direcciones IP y en la tabla INPUT, no en OUTPUT, pero tampoco podremos acceder a ellas debido a que cualquier respuesta suya será bloqueada. Podéis cambiar esta sentencia para que en lugar de hacer un DROP con los paquetes que satisfagan esta condición, hacer un REJECT. Tienes la opción de bloquear aplicaciones con un cortafuegos.
Esta orden se puede usar tanto en el equipo local (tabla INPUT) como también en cualquier otra tabla que nosotros creemos específicamente para bloquear estas IP y subredes. Si estamos usando un Linux como router, también podremos bloquearlo directamente con esta orden.
Os recomendamos leer el tutorial cómo configurar e instalar el servidor FTP ProFTPd para Linux.