Como elegantemente excluir seletivamente o tráfego de rede do FreeBSD da interface do OpenVPN pela porta

1

sysadmin inexperiente aqui.

Estou planejando executar um daemon net dentro de uma cadeia do FreeBSD através do OpenVPN, mas quero ser capaz de usar o SSH diretamente na cadeia e usar o daemon de interface da web do daemon sem passar pela VPN. Pelo que entendi, um túnel OpenVPN é normalmente configurado como uma interface de internet virtual padrão, e assim o tráfego de entrada vai sair na interface OpenVPN por padrão (o que é problemático, pois isso gera latência).

Eu pensei "bem, obviamente, já que todo esse tráfego está saindo em um punhado de portas, vou redirecioná-las para o gateway não-VPN". Eu tentei procurar por soluções, mas quase todas elas envolvem iptables ao invés de ipfw (que é o padrão para o FreeBSD) e resolvem problemas ligeiramente diferentes. E soluções alternativas como usando várias rotas padrão garantir que o tráfego de entrada em qualquer interface seja sempre enviado na mesma interface, parece ser de grande alcance e requer conhecimento profundo de todas as ferramentas envolvidas.

Existe uma maneira elegante de garantir que o tráfego que sai em portas específicas saia em uma interface não padrão especificada usando o ipfw?

    
por Polygonica 23.08.2014 / 11:34

1 resposta

1

A menos que algo como Multipath TCP seja usado, as conexões TCP nunca alterarão sua interface. Se o tráfego chegar do host remoto A na interface Y, as respostas sairão (geralmente) pela interface Y, mesmo que a melhor rota correspondente (para o host A) possa levar a outro lugar. Desde que, claro, a interface Y tenha uma rota que leva ao host A.

O OpenVPN na sua configuração redirect-gateway def1 mais utilizada não substitui as rotas. Em vez disso, ele alavanca como a correspondência de rota é feita: A rota de correspondência mais específica é selecionada. Geralmente, você teria uma rota 0.0.0.0/0 (como rota padrão) apontando para o seu gateway da Internet (ou qualquer outro). Esta rota corresponde a tudo. Rotas mais específicas geralmente também estão presentes, levando à sua rede local. O OpenVPN cria duas novas rotas: 0.0.0.0/1 e 128.0.0.0/1 . Novamente, essas rotas correspondem a tudo, mas são selecionadas na sua rota padrão anterior, porque são mais específicas. Conclusão: A interface Y ainda pode alcançar "tudo".

Geralmente, uma conexão VPN não impede o tráfego de entrada em outras interfaces. Como tal, deve funcionar sem configuração adicional.

    
por 23.08.2014 / 11:49