Acessando um servidor web hospedado por trás do vpn com portas fechadas remotamente?

2

Atualmente, tenho a seguinte configuração:

Win Server 2008

------- > Mint 16 Cinnamon VM encapsulada através de VPN externa (usando OpenVPN)

--------------- > Servidor Web dentro para acesso à rede local

Existe alguma maneira possível de acessar esse servidor da web usando o meu endereço IP do provedor externo quando o servidor da web é encapsulado atrás de uma VPN ... sem precisar redirecionar a porta 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 atua como um ponteiro (... como mod_rewrite ou redirect?) para esse servidor local, para que possa ser acessado externamente sem precisar ter acesso à configuração de regras de firewall no servidor VPN?

EG:

SO do host

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

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

Atualmente, todos os dispositivos na rede local podem acessar este servidor da web com precisão.

Não existe essa idéia, para forçar certos programas a enviar tráfego somente através de interfaces específicas (ou seja, a interface ethernet local), ou forçar certas portas a rotear através do gateway ISPs em vez das VPNs (em um nível OS) .

Aprecie seu feedback.

    
por anditpaintsme 15.05.2014 / 11:44

1 resposta

3

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

Quando você configura uma VPN, ela altera sua tabela de roteamento, estabelecendo (no seu caso) que todo o tráfego deve passar por um servidor diferente. Se uma conexão entrar pelo seu roteador local, a VM Mint tentará responder seguindo as instruções de roteamento da única tabela que ela conhece, isto é, através da VPN. No entanto, o PC que tentar entrar em contato com seu servidor da Web verá que sua consulta ao seu endereço não VPN foi respondida por um servidor VPN distinto, 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 manipular duas (ou mais) tabelas de roteamento distintas, com regras especificando quando cada uma deve ser usada. Então, o que você quer fazer é criar uma segunda interface na sua VM Mint (vamos chamá-la de eth1), e ter certeza de que ela tem um endereço IP na sua LAN (se você estiver usando o VirtualBox, significa criar uma interface bridged .

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 seja respondida pela tabela de roteamento configurada pelo OpenVPN, mas se ela entrar pelo LAN (a NIC que chamamos de eth1 ) é respondida por uma tabela de roteamento diferente que roteia o tráfego de onde veio, ou seja, seu roteador local, não o servidor OpenVPN.

Você faz isso da seguinte maneira:

antes de iniciar a VPN, crie duas tabelas: vamos chamá-las de main (aquela 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 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ê define 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 assumi que seu túnel OpenVPN tem endereços no intervalo 10.0.0.0/24, modifique de acordo.

Você terminou.

    
por 15.05.2014 / 13:12