Creé un servidor proxy basado en nginx que redirige el tráfico a algunas máquinas para que puedan tener un único filtro de seguridad que pueda mantener. Nada loco, solo lo suficiente para bloquear algunas agencias de seguimiento de anuncios y ahorrar un poco en mis planes de datos limitados.
De todos modos, nginx fue perfecto en términos de rendimiento y de hecho aceleró algunos de mis dispositivos mientras usaba la web. Sin embargo, las soluciones de filtrado para nginx no han sido fáciles de conseguir, por lo que tuve que trabajar con Ubuntu para ver dónde más podría existir un filtro.
Agregué algunas listas de código abierto de IP maliciosas y listas anti-seguimiento al archivo de hosts y descubrí que a veces nginx funcionaba alrededor del archivo de hosts, por lo que se fue por el desagüe, así que comencé a buscar una solución basada en firewall.
Si bien sé que ufw no fue diseñado para bloquear dominios, fue el único que logró bloquear completamente a nginx para que no solicitara el enlace no deseado, así que preparé un script de shell que tiene la dirección IP de todos los dominios enumerados junto con datos maliciosos registrados. Direcciones IP que mi máquina está procesando ahora.
# Example of the script
ufw deny out to 1.2.3.4;
ufw deny out to 1.2.3.5;
ufw deny out to 1.2.3.6;
Mi pregunta para ustedes es, dado que el script está tardando tanto en procesarse en mi gotita de digitalocean, que no está muy ocupada, ¿notaré una disminución en el rendimiento debido a que habrá tantas reglas de IPtables? ¿O es UFW solo una capa de configuración que no tiene influencia en cómo se ejecuta IPtables y posiblemente podría ser un poco voluminosa considerando que es una aplicación centrada en la interfaz de usuario? Me imagino que con lo maduras que son las tablas de IP, eso no va a sufrir tanta sobrecarga y no me importa esperar una sola vez, pero estoy un poco preocupado sólo por cuánto tiempo le toma al script cargar cada regla en las reglas. .
Supongo que podría haber canalizado esto a uno de los archivos de configuración, pero sentí que ejecutarlo a través de la interfaz de comando fácil de usar era la solución estable y segura. ¿Qué piensan ustedes?