nShield: Uma Medida de Proteção Open Source contra o Ddos baseada em IpTables

nShield
Figura Central - nShield

Em um cenário em que constantemente vemos organizações sendo atacadas por hacker’s, precisamos tomar contra-medidas para nossa infraestrutura e também nossos serviços. Atualmente dispomos de diversas opções de serviços para pelo menos minimizar estes ataques.

Entre eles estão: Cloudflare, Incapsula, AWS Shield, Akamai, F5, entre outros. Porém, essas soluções são pagas. nShield é uma solução de código aberto e bastante acessível.
E para nós, meros mortais, como ter acesso a essa maravilhosa solução? É bem simples!

nShield e IpTables

nshield
Figura 1 – nShield e IpTables – Uma Ferramenta Anti-Ddos.

O nShield é uma solução simples Anti-DDoS baseada em iptables para VPS (Virtual Private Server), servidores dedicados e dispositivos IoT (Internet das Coisas). O Iptables é a ferramenta que permite a criação de regras de firewall.

O Netfilter é um módulo do kernel do Linux que fornece as funções de firewall, NAT e log dos dados para o Iptables. Iptables não é um firewall, e sim uma interface para trabalhar com os recursos de firewall fornecidos pelo Netfilter.

Requerimentos para Instalação

  • Uma distribuição Linux com Iptables (Debian, Fedora, CentOS, Ubuntu);
  • Python;
  • Nginx (Será instalado automaticamente pelo script install.sh).

Instalação Simples, Rápida, Estilo Linux.

siga os passos:

nshield
Figura 2 – Primeiro Passo
Lembrando que o script install.sh substituirá as regras atuais do seu iptables.

Modo de Uso

O script da instalação acima instalará o suporte ao Python (caso não esteja presente) e fará o download de todo o repositório com exemplos de arquivos de configuração, em seguida executará o script para realizar algumas configurações e uma rotina na cron que executará a cada 30 minutos para checar as conexões com bases nas configurações de IPs (IPSET). Você pode encontrar exemplos de arquivos de configuração no diretório examples.

A verificação manual do HTTPS é executada com o comando abaixo, dentro do diretório do repositório.
nshield
Figura 3 – Verificação Manual do HTTPS.

O script Python após verificar a configuração, solicitará que você informe um endereço de e-mail (para o Let´s Encrypt por exemplo) e mudará o domínio de seu DNS para o nShield Server e fará um pedido de confirmação para o SSL DNS. Exemplo:

nShield
Figura 4 – Exemplo da solicitação HTTPS manual.

Agora seu domínio está verificado e um certificado SSL é emitido para a configuração do Nginx (Lembrando que ele será instalado consequentemente no script). Você poderá alterar o registro A de seu DNS para este servidor.

Como vai funcionar?

nShield
Figura 5 – nShield em funcionamento.

O script vem configurado para trabalhar em default (por padrão), com isso, ele será executado a cada 30 minutos para verificar o arquivo de configuração afim de que as seguintes operações sejam executadas:

  • Obter as últimas listas de BOT’s, Spammers, reputação de IPs/Redes suspeito(a)s e verificar se esses caras estão atacando seu servidor (valeu FireHol);
  • Habilitar métodos Anti-DDoS básicos para negar tráfego indesejado/mal-intencionado;
  • Limitar a taxa da banda quando estiver sob ataque;
  • Permitir que seja executado um proxy HTTPS para proteger o seu site através de um proxy/servidor externo (Você precisa executar manualmente a verificação do SSL pela primeira vez).

nShield Script Install.sh

Abaixo um vídeo intuitivo mostrando como baixar e instalar o script:

Lembrando que esse script não é meu, ele é um fork do git abaixo:

nShield

Para Mais detalhes:

Fontes:
https://n0where.net/anti-ddos-solution-based-on-iptables-nshield/
https://www.thalesesecurity.com/products/general-purpose-hsms/nshield-solo