Network Layer 7 Solução de linux profunda de inspeção de pacotes que não é uma distro all-in-one?

2

Visão geral:

Eu tenho um software que possui nossos servidores de borda / DNS codificados neles, as consultas DNS retornadas dos servidores DNS não estão sendo mascaradas corretamente. Eu preciso que as entradas DNS que são retornadas das solicitações de consulta BIND sejam mascaradas com o servidor de origem que solicitou a consulta e não o IP dos servidores DNS. A razão pela qual eu quero o mascaramento é que se um invasor se apossar de um dos IPs do meu servidor de borda e do DDoS, eles não poderão obter os outros IPs e DDoS de servidores ou atacá-los também.

O diagrama abaixo ilustra uma versão simples do que estou tentando realizar.

Existem dois tipos de formas pelas quais os usuários podem se conectar:

  • Diretamente para o IP do servidor de borda que é fornecido a eles / codificado em

OR

  • Conectam-se diretamente ao servidor de borda atribuído e, por meio de uma interface web, selecionam qual escritório / servidor se conectar ao qual no back-end faz um iptables REDIRECT em seu servidor de borda que passa por um túnel VPN.

Problema:

Sequência de eventos:

  1. O usuário2 se conecta ao servidor de borda (server2)
  2. edge server2 redireciona sua consulta para o edge server1
  3. o edge server1 retorna de volta ao edge server2 a resposta da consulta com o IP do edge server1 embutido no pacote DNS.
  4. O usuário recebe o IP do servidor de borda oculta de que não deveria saber.

Problema principal:

O IP do servidor de borda é incorporado ao pacote de resposta do DNS e precisa ser mascarado para o IP do servidor de borda original ao qual o usuário está conectado

SaídadeexemplodepesquisadeDNS:

  • consultasdoUser2paragoogle.ca
  • ODNSServer1processaaconsultaeretornaoresultadodeseupróprioIPenãodoIPdoGoogle.

Pedidodepesquisa(errado):

nslookupgoogle.caServer:UnKnownAddress:2.2.2.2Name:google.caAddress:1.1.1.1

Solicitaçãodepesquisaquedeveestarsendoexibida:

nslookupgoogle.caServer:UnKnownAddress:2.2.2.2Name:google.caAddress:2.2.2.2

Abaixoestáumaversãoemgrandeescaladarede/sistemaqueéconstruída.

Osescritóriospodemterumoumaisservidores,dependendodequantosusuários.

(Issoéapenasilustradoparadarumaideiadecomoeleprecisaserdimensionado)

O que eu tentei:

  • Roteamento pré / pós do iptables (não mascara)
  • Reproduzida com a configuração do BIND (alterou o arquivo db.override para retornar o IP dos servidores) que funcionava, mas exigiria um servidor individual por servidor de borda, pois esse arquivo não podia ser atualizado em tempo real.

Teoria de potenciais soluções:

  • Solução da Camada 7 que pode alterar o IP dos resultados da consulta do DNS, seja um firewall ou um script sniffer / injection que força determinadas consultas a mostrar o IP dos servidores de borda originais.
por RCG 07.10.2014 / 21:16

0 respostas