Eu fiz um servidor proxy baseado em nginx que redireciona o tráfego para algumas máquinas para que eles 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 realmente acelerou alguns dos meus dispositivos ao usar a web. No entanto, soluções de filtragem para o nginx não foram fáceis de encontrar, então tive que trabalhar com o Ubuntu para ver onde mais um filtro poderia existir.
Eu adicionei algumas listas de código aberto de listas maliciosas de ip e anti-rastreamento ao arquivo de hosts e descobri que às vezes o nginx funcionava ao redor do arquivo de hosts, então eu comecei a olhar para uma solução baseada em firewall.
Embora eu saiba que o ufw não foi projetado para bloquear domínios, foi o único que conseguiu bloquear completamente o nginx ao solicitar o link indesejado, então eu juntei um script de shell que possui o ip de todos os domínios listados juntamente com os arquivos maliciosos gravados. Endereços IP dos quais minha máquina está passando 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 é que isso está demorando tanto para que o script seja analisado na minha gotinha digitalocean não muito ocupada, será que vou notar um desempenho diminuído, já que haverá tantas regras de IPtables? Ou é 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 entendo como as tabelas de IP são maduras, isso não vai sofrer muito de uma sobrecarga e não se importa com uma espera de uma única vez, mas estou um pouco preocupado apenas com o tempo que está levando o script para carregar todas as regras nas regras .
Eu suponho que eu poderia ter acabado de ter este canalizado em um dos arquivos de configuração, mas eu senti como se executá-lo através do comando fácil de usar interfase era a solução estável e segura. O que é que vocês acham?