Criei um servidor proxy baseado em nginx que redireciona o tráfego para algumas máquinas para que elas possam ter um único filtro de segurança que eu possa manter. Nada maluco, apenas o suficiente para bloquear algumas agências de rastreamento de anúncios e economizar um pouco em meus planos de dados limitados.
De qualquer forma, o nginx foi perfeito em termos de desempenho e acelerou alguns dos meus dispositivos enquanto usava a web. No entanto, soluções de filtragem para nginx não têm sido fáceis de encontrar, então tive que trabalhar com o Ubuntu para ver onde mais poderia existir um filtro.
Eu adicionei algumas listas de código aberto de IP malicioso e listas anti-rastreamento ao arquivo hosts e descobri que às vezes o nginx funcionava em torno do arquivo hosts, então isso foi por água abaixo, então comecei a procurar uma solução baseada em firewall.
Embora eu saiba que o ufw não foi projetado para bloquear domínios, ele foi o único que conseguiu bloquear completamente o nginx de solicitar o link indesejado, então criei um script de shell que contém o IP de todos os domínios listados junto com arquivos maliciosos registrados Endereços IP que minha máquina está analisando agora.
# 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;
Minha pergunta para vocês é, já que está demorando muito para o script ser processado em meu droplet digitalocean não muito ocupado, notarei uma diminuição no desempenho, já que haverá tantas regras de IPtables? Ou o UFW é apenas uma camada de configuração que não tem influência sobre como o IPtables é executado e pode ser um pouco volumoso, considerando que é um aplicativo focado na interface do usuário? Eu acho que com o quão maduras as tabelas IP são, isso não vai sofrer muita sobrecarga e não me importo de esperar uma única vez, mas estou um pouco preocupado apenas por causa de quanto tempo leva para o script carregar todas as regras nas regras .
Suponho que poderia ter canalizado isso para um dos arquivos de configuração, mas senti que executá-lo por meio da interface de comando fácil de usar era a solução estável e segura. O que é que vocês acham?