Forçar o tráfego de sub-rede local do Windows através de um gateway

2

Estamos tentando rotear todo o tráfego de uma determinada máquina para um gateway. Isso funciona bem para o tráfego destinado a sub-redes fora da sub-rede da máquina. No entanto, o tráfego para máquinas na mesma sub-rede que a máquina de origem passa por um gateway On-Link no Windows. Isso significa que o gateway padrão é ignorado e o tráfego em uma sub-rede (por exemplo, 192.168.50.10 - > 192.168.50.11) flui.

Destination Netmask     Gateway     Interface   Metric
192.168.50.0    255.255.255.0   On-link     192.168.50.214  276
  1. Esta rota pode ser excluída do Windows, mas quando a máquina é reinicializada, ela sempre volta.
  2. A adição de uma rota estática persistente ao gateway com uma métrica mais baixa não funciona, pois ainda tentará o gateway On-Link após a falha da rota persistente.
  3. Adicionar cada máquina em uma VLAN não é uma opção devido à configuração que temos
  4. Adicionar um script de inicialização para excluir o gateway também não é uma ótima opção, pois os usuários terão acesso de administrador total à máquina e poderão desativar o script.
  5. Não podemos transperantemente interceptar todo o tráfego de rede na sub-rede usando ARPs Gratuitos ou proxy transparente, pois há outras máquinas na sub-rede que usam um gateway diferente

A única maneira de fazer isso funcionar é adicionar uma rota persistente ao gateway para o tráfego de sub-rede e excluir a rota no link durante a reinicialização.

A questão é então.

  1. Existe uma maneira de remover permanentemente esta rota no link
  2. Se não, existe uma maneira de forçar o tráfego de sub-rede local a passar por um gateway?
por Beerey 17.02.2011 / 07:44

3 respostas

3

Há uma diferença entre forçar o tráfego por meio de um gateway e impedir que os dispositivos se vejam em uma sub-rede. Eu acho que o que você está tentando fazer é o último. Provavelmente porque você deseja hospedar servidores para vários clientes externos. Você está procurando no lugar errado se estiver editando a tabela de roteamento para atingir esse objetivo.

Minha recomendação seria lidar com isso no switch usando ACLs. O que especificamente você pode bloquear / permitir dependerá das capacidades do seu switch. Outra alternativa é bloquear transmissões ARP e, em seguida, definir entradas ARP estáticas para o gateway padrão (tecnicamente, alguém poderia adicionar mais entradas estáticas para conversar com outros dispositivos ainda).

Além disso, lembre-se de que, a menos que o gateway esteja configurado para bloquear o tráfego desse segmento, o tráfego será encaminhado diretamente para a mesma rede.

    
por 04.03.2011 / 01:45
3

Bem, seu host provavelmente está recebendo sua rota padrão de um servidor DHCP. Em caso afirmativo, defina uma reserva DHCP. Eu suponho que você poderia definir a máscara de sub-rede para essa reserva de hosts para 255.255.255.255, o que tecnicamente impediria o host de entregar pacotes diretamente para outros hosts na sub-rede. Todo o tráfego passaria pelo gateway padrão. Os hacks ainda precisam seguir as regras da rede, e esta quebrará muitas regras, a menos que sua rede seja adequadamente segmentada. Geralmente não é suficiente apenas fingir que a máscara de sub-rede é / 32 em um segmento / 24 e esperar que o usuário não a altere. Não é realmente seguro.

Imagine um datacenter hospedando milhares de servidores. Os administradores não confiam apenas que todos configuraram seus endereços IP e máscaras de sub-rede corretamente, não causando conflitos, etc. A qualquer momento em que os hosts estejam no mesmo segmento de rede, eles podem conversar entre si. O desafio neste caso parece forçar o host no segmento de rede correto, um segmento solitário nulo de quaisquer outros nós, mas a porta no seu switch.

A melhor solução é um switch gerenciado, provavelmente o Camada 3. Como um Cisco 3550. O switch se comportará como um roteador, roteando o tráfego entre todas as suas sub-redes locais. Conforme recomendado anteriormente, use as ACLs para impedir a comunicação entre redes. Mas, você mencionou vlans não eram uma opção, então você provavelmente não controla o switch.

Mais criativamente:

Estabeleça um segmento de rede real ou virtual, como 10.x.y.z / 30 com apenas um único gateway e nenhuma rota padrão oferecida pelo dhcp. / 30 cidr block requer uma boa compreensão da sub-rede. permita que os hosts na sub-rede que você controla façam o encapsulamento para o seu gateway vpn, autentiquem e só então obtenham um gateway padrão. Pelo menos, o OpenVpn permite limitar a comunicação entre o host e o host, já que todo o tráfego é roteado através do servidor vpn. Isso é análogo ao uso de wifi em um hotspot público, onde eles bloqueiam o tráfego entre hosts sem fio.

Ou você pode usar um proxy transparente, novamente com regras acl para impedir a comunicação entre o host e o host. Não tenho certeza se isso atenderia às suas necessidades.

Resumo, o verdadeiro desafio é impedir que o host hospede a comunicação na mesma sub-rede. Sub-redes discretas são simplesmente uma maneira de filtrar pacotes arp. Possível algum arp hack poderia realizar isso.

    
por 03.04.2012 / 22:16
0

Por fim, não encontramos uma maneira de fazer qualquer uma dessas coisas sem um script de inicialização. Remover a rota On-Link não persistiria, não importando o que fizemos, e não poderíamos usar nenhuma das outras opções (proxy de transperant, VLAN, etc) pelas razões mencionadas acima.

No final, adicionamos um script de inicialização para executar

 ROUTE DELETE 192.168.50.0

na inicialização. O script foi colocado em um diretório restrito apenas ao nosso usuário (não admin) e executado na inicialização. Também adicionamos um script Nagios personalizado que executava esse comando e verificamos que a tabela de roteamento não mudou depois desse ponto.

    
por 04.03.2011 / 01:00