Permitir conexão local com o cliente executando o OpenVPN

0

Para fins de simplicidade, suponha que uma rede tenha dois computadores atrás de um gateway e firewall, o computador A e o computador B.

O computador A está executando o openvpn como um cliente. Seu tráfego é encaminhado para um servidor openvpn em um local remoto. Assim, o computador A tem dois endereços IP: 192.168.1.1 (eth0) e 10.20.10.20 (tap). O arquivo de configuração openvpn do computador A é exibido na parte inferior. O computador A executa o Windows 7.

O computador B não executa a vpn aberta. Apenas tem o IP 192.168.1.2 (eth0). O computador B executa o linux. É acessível ao mundo exterior.

Como se encaminha uma única porta do Computador A para o Computador B? (Usando putty ou não). Existe um serviço em execução no Computador A, porta XYZ, que precisa estar acessível ao mundo externo. Acessá-lo no ponto de extremidade do servidor openvpn não é possível. Então, é possível encaminhar uma única porta de A para B sobre o putty? Os usuários poderiam então acessar o Computador B do mundo externo, cuja conexão com a porta XYZ seria roteada para o Computador A. Assim, embora o Computador A ainda esteja conectado ao túnel openvpn, ele pode ser alcançado do Computador B na rede local.

Por favor, deixe-me saber se você tem uma solução, obrigado.

client
dev tun
proto tcp
remote XX.XX.XXX.XXX 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
tls-client
remote-cert-tls server
auth-user-pass
comp-lzo
verb 1
reneg-sec 0
    
por Oddworld 14.12.2012 / 00:18

2 respostas

1

Lats supõe que o computador B está executando o Linux (a distribuição não mede). Lats assume que o computador B tem 2 interfaces. eth0 um que tem endereço IP 192.168.1.2 e interface de internet (como você mencionou, é acessível a partir da internet.) Lats assume que precisamos redirecionar a porta XY da internet para a porta A do computador XY.

No computador B, precisaremos ativar o encaminhamento de ipv4 (do comentário anterior)

 sysctl net.ipv4.ip_forward=1

agora, precisamos redirecionar todo o tráfego que chega à interface da Internet (eth1) para a porta XY para o computador Uma porta da interface eth0 XY

iptables -t nat -A PREROUTING -i eth1 -p tcp --dport XY  -j DNAT --to COMPA_ETH0_IP:XY

esta configuração já funcionará, se o gateway padrão do computador A for o computador B Caso contrário, precisaremos ocultar nosso IP de origem do computador A.

iptables -t nat -A POSTROUTING -j MASQUERADE

após este comando todo o tráfego visível na porta XY no computador A será visível a partir do endereço IP do computador B.

    
por 14.12.2012 / 10:02
0

Aqui está a solução

sysctl net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport port -j DNAT --to-destination ip:port
iptables -t nat -A POSTROUTING -j MASQUERADE
    
por 14.12.2012 / 04:44