Reencaminhamento do tráfego do cliente OpenVPN para acesso apenas local

0

Instalei o OpenVPN no meu servidor, no qual também executo o git e o servidor web. Minha ideia inicial antes da instalação era poder habilitar a visita de alguns sites apenas a clientes VPN e permitir o acesso ao SSH do git apenas para eles. Eu pensei que só permitiria o acesso às portas dos IPs locais do VPS - 10.254.1.0/24, mas descobri que o pacote parece ser encaminhado com meu IP real, não o IP da VPN. Minha regra atual para o reencaminhamento da interface tun (estou usando o UFW e isso faz parte da regra do iptables que reside no before.rules do ufw):

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 10.254.1.0/24 -o eth0 -j MASQUERADE
COMMIT

Eu não entendo muito bem por que o IP real do cliente é atribuído ao pacote que é enviado através da VPN, eu prefiro esperar que esse pacote seja enviado pela rede da VPN. Eu estava pensando em solução para isso e a única idéia que tive foi instalar o OpenVPN no meu segundo servidor e conectar-se a ele. No entanto, a razão pela qual eu postei esta pergunta é que eu preferiria fazer isso do servidor atual, onde eu já tenho o OpenVPN instalado. Qualquer sugestão é bem-vinda.

    
por user1257255 31.08.2016 / 22:43

1 resposta

1

Presumo que * você está tentando acessar o servidor vpn em seu endereço público e esperando que essa conexão passe pelo túnel.

Isto não acontecerá, o seu cliente precisa se conectar ao seu servidor vpn através da rede pública para estabelecer e manter o túnel.

Você tem várias opções, a mais simples delas parece ser configurar uma espécie de DNS split-horizon usando o Dnsmasq.

  1. Instale o Dnsmasq no servidor
  2. Defina uma entrada /etc/hosts apontando o nome do seu servidor para o endereço vpn
  3. Em vez de enviar DNS 8.8.8.8 para os clientes, envie DNS 10.254.1.1

Dessa forma, seus clientes resolverão o nome do servidor internamente enquanto estiverem conectados à VPN.

Se você quiser que o próprio servidor continue a resolver seu próprio nome para o endereço público, use um arquivo de hosts adicional para o Dnsmasq em vez do sistema em /etc/hosts .

* : se a suposição estiver errada, toda a resposta é inútil, então por favor me avise: -)

    
por 02.09.2016 / 15:27