Estação de trabalho VPN Gateway não acessível

Estação de trabalho VPN Gateway não acessível

Eu gostaria de usar uma estação de trabalho Linux como gateway VPN para minha rede local. A mesma estação de trabalho está sendo usada como servidor web. Quando conecto a estação de trabalho à VPN, não é mais possível acessar este servidor web de uma rede externa.

Minha configuração é a seguinte:

Roteador ISP - ip 192.168.0.1 (gateway padrão, mapeamento de porta habilitado para usar porta pública não padrão)

Estação de trabalho Linux - ip fixo 192.168.0.20 (servidor dhcp pois meu roteador não permite alterar o endereço do gateway, openvpn, apache, servidor dns)

saída de "ip route show"

0.0.0.0/1 via 10.8.3.1 dev tun0 
default via 192.168.0.1 dev eth0 src 192.168.0.20 metric 202 
10.8.3.0/24 dev tun0 proto kernel scope link src 10.8.3.12 
37.120.143.221 via 192.168.0.1 dev eth0 (VPN external IP)
128.0.0.0/1 via 10.8.3.1 dev tun0 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.20 metric 202 

Configuração da seguinte forma:

net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p icmp -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

Uma coisa que noto é que quando a VPN está habilitada na estação de trabalho, meu roteador ISP não lista o endereço IP local correto para minha estação de trabalho Linux na lista de clientes conectados. Às vezes está correto, mas às vezes parece apenas um IP aleatório.

Se eu adicionar a seguinte rota: EXTERNAL_IP via 192.168.0.1 dev eth0 (onde EXTERNAL_IP é WAN ip), poderei acessar o servidor web na rede local, mas ainda não de outra rede.

Responder1

Não há nada de errado com sua configuração, o erro está no seu roteamento.

Se o seu servidor funcionaramboscomo um servidor webecomo cliente VPN para um servidor remoto, qualquer usuário que tentar acessar o servidor web receberá uma resposta do servidor VPN remoto (nãodiretamente do servidor web) porque a tabela de roteamento do seu servidor local o instrui a roteartudoatravés do servidor OpenVPN remoto. Qualquer máquina que envie uma consulta ao site A, mas receba uma resposta de B, descarta automaticamente a resposta, por razões óbvias de segurança. Conseqüentemente, o servidor web fica inacessível.

Existem muitas maneiras de resolver seu problema. Meu favorito seria deixar o servidor web intacto e mover o cliente OpenVPN para um contêiner Linux hospedado no mesmo servidor e, em seguida, alterar a configuração do roteador para o servidor DHCP/dnsmasq (qualquer que seja) para rotear toda a comunicação LAN através do contêiner Linux . É muito mais fácil do que parece.

Outra possibilidade é configurardoistabelas de roteamento, deixando a principal para os clientes OpenVPN, enquanto configuramos a segunda comoidênticoà tabela de roteamento que você tem quando a VPN énãoativo e então instruir seu kernel para rotear todo o tráfego originado do servidor (ele mesmo!) através desta segunda tabela de roteamento. O tráfego restante (aquele que se origina na sua LAN e que você deseja rotear através do OpenVPN) usará por padrão a tabela de roteamento principal.

Isso também é muito fácil de fazer, você pode encontraraquiuma excelente e muito breve introdução ao Linuxpolítica(oufonte) roteamento.

Ou você pode decidir hospedar seu servidor web na mesma máquina que hospeda seu servidor OpenVPN, o que também resolveria seu problema. Neste caso, o mais simples seriaespelhoseu site local no servidor remoto, para que você possa fazer qualquer alteração localmente.

A escolha é realmente toda sua.

informação relacionada