Acessando um servidor da web hospedado atrás de VPN com portas fechadas remotamente?

3

Atualmente, tenho a seguinte configuração:

Win Server 2008

-------> Mint 16 Cinnamon VM em túnel através de VPN externa (usando OpenVPN)

---------------> Servidor da Web interno para acesso à rede local

Existe alguma maneira possível de acessar esse servidor da Web usando o meu endereço IP de provedor de serviços de Internet externo quando o servidor da Web é encapsulado por trás de uma VPN ... sem a necessidade de avançar no lado da VPN?

Como exemplo, seria possível hospedar um servidor da web em outra VM ou no sistema operacional host que redireciona ou age como um ponteiro (... como mod_rewrite ou redireciona?) Para esse servidor local, para que possa ser acessado externamente sem a necessidade de ter acesso à configuração de regras de firewall no servidor VPN?

POR EXEMPLO:

SO Host

-----> VM 1, VPN + servidor da Web, o IP do adaptador local é 192.168.1.2 (rede doméstica), o IP do túnel da VPN é 10.xxx, todo o tráfego externo roteado pela VPN.

--------------> VM 2, IP do adaptador local é 192.168.1.3, servidor Web em execução na porta 80, aponta para a página hospedada em 192.168.1.2:80 e permite visualização externa via encaminhamento de porta roteador local.

Atualmente, todos os dispositivos na rede local podem acessar bem este servidor da web.

Na falta dessa ideia, existe alguma maneira de forçar determinados programas a enviar apenas tráfego por interfaces específicas (por exemplo, a interface Ethernet local) ou forçar determinadas portas a rotearem através do gateway ISPs em vez das VPNs (no nível do SO).

Agradecemos seus comentários.

anditpaintsme
fonte
Você pode usar o servidor da Web real na VM2 como 'proxy' solicitando dados deste host.
Nippey
Você é um usuário não registrado nos dois casos - Registre-se e use o link Fale conosco na parte inferior para mesclar suas contas.
Journeyman Geek
Você tem 2 contas 1. superuser.com/users/319950/anditpainsme 2. superuser.com/users/323002/anditpaintsme , use o formulário de contato e selecione "Preciso mesclar" para mesclar suas contas. Dessa forma, você pode obter controle sobre sua pergunta e postar comentários.
Sathyajith Bhat

Respostas:

3

Sim, isso pode ser feito graças ao fato de você estar executando seu servidor Web em uma VM Linux . O primeiro fato (que você está usando Linux) é um pré-requisito absoluto, o segundo (que é uma VM, não uma máquina física) torna mais fácil e mais barato.

Quando você configura uma VPN, ela muda sua tabela de roteamento, estabelecendo (no seu caso) que todo o tráfego deve passar por um servidor diferente. Se uma conexão chegar através do roteador local, a Mint VM tentará responder seguindo as instruções de roteamento da única tabela que ele conhece, ou seja , através da VPN. No entanto, o computador que tentar entrar em contato com o servidor da Web verá que sua consulta ao seu endereço não VPN foi respondida por um servidor VPN distinto e de terceiros. Por razões óbvias de segurança, essas respostas são descartadas imediatamente.

Para resolver esse problema, o Linux tem a capacidade de lidar com duas (ou mais) tabelas de roteamento distintas, com regras especificando quando cada uma deve ser usada. Então, o que você deseja fazer é criar uma segunda interface na sua VM Mint (vamos chamá-la de eth1 ) e garantir que ele tenha um endereço IP na sua LAN (se você estiver usando o VirtualBox, isso significa criar uma interface em ponte ).

Agora, tudo o que você precisa fazer é configurar duas tabelas de roteamento, de modo que, se uma comunicação chegar através do OpenVPN, ela for atendida pela tabela de roteamento configurada pelo OpenVPN, mas se entrar pela LAN (a NIC que chamamos de eth1 ) é respondida por uma tabela de roteamento diferente que direciona o tráfego de onde veio, ou seja , seu roteador local, não o servidor OpenVPN.

Faça o seguinte:

Antes de iniciar a VPN, crie duas tabelas: nós as chamaremos de principais (a destinada a ser usada pelo OpenVPN) e NONVPN:

 echo 200 main >> /etc/iproute2/rt_tables
 echo 201 NONVPN >> /etc/iproute2/rt_tables

Adicione um gateway a cada tabela de roteamento (se necessário):

 ip route add 192.168.1.0/24 dev eth0 src <SRC1> table main
 ip route add 192.168.1.0/24 dev eth1 src <SRC2> table NONVPN

Em seguida, uma rota padrão:

 ip route add default via 192.168.1.1 table main
 ip route add default via 192.168.1.1 table NONVPN

onde eu assumi 192.168.1.1 é o seu roteador local e 192.168.1.0/24 a LAN.

Agora você pode iniciar sua VPN: ela modificará sua tabela de roteamento principal.

Por fim, você tem as regras para selecionar a tabela de rotas com base no endereço de origem:

 ip rule add from 10.0.0.0/24 table main
 ip rule add from 192.168.1.0/24 table NONVPN  

onde eu assumi que o seu túnel OpenVPN tem endereços no intervalo 10.0.0.0/24, modifique de acordo.

Você terminou.

MariusMatutiae
fonte