Acesso Externo aos clientes de um servidor de VPN

Iniciado por eduardoborim, 13 de Março de 2017, 20:21

tópico anterior - próximo tópico

eduardoborim

Boa tarde Caros Amigos,

Gostaria de pedir um Help para vocês e esclarecer uma dúvida que tenho. Vou expor abaixo o cenário:

Tenho um servidor linux, onde nele tenho um servidor de VPN (OPENVPN) instalado nele, nesse servidor de VPN tenho os clientes da VPN.

Cada Cliente VPN tem um banco de dados instalado(postgres).

O que eu preciso é, exemplo:

De qualquer IP da internet pela porta 10001 chegue no IP 10.0.0.3:5432 da VPN.

No servidor na interface que tem comunicação com a internet é um IP Externo. A outra interface é a interface virtual da VPN que o IP dela é 10.0.0.1.

Os clientes da VPN, onde eu preciso conectar na porta 5432, eles começam em 10.0.0.3... 4... 5.... 6

Ou seja as entradas vão ser seguintes:

entrada:10001 -> redirecionar para o IP 10.0.0.3:5432 (da vpn)
entrada:10002 -> redirecionar para o IP 10.0.0.4:5432 (da vpn)

e assim por diante...

fiz uns testes abaixo mas acredito que está faltando algo.

iptables -t nat -A PREROUTING -d 0/0 -p tcp --dport 5432 -j DNAT --to 10.0.0.4:5432
iptables -t nat -A PREROUTING -i tap0 -p tcp -m tcp --dport 5432 -j DNAT --to-destination 10.0.0.4:5432

Alguém poderia me dar um help, para ver se seria isso mesmo ou eu teria que fazer mais algum procedimento?

Obrigado,
Grande Abraço.
Att,
Eduardo.

**Obs.: Estou fazendo isso para mascarar o acesso a rede que não é ipv6, para acessar a rede que é ipv6.

zekkerj

CitarNo servidor na interface que tem comunicação com a internet é um IP Externo.
Se o servidor tem acesso direto à internet, vc não precisa de NAT, basta mandar conectar os clientes. Quem conectar já vai receber o IP 10.0.0.X, e se vc explicou direito, já pode conectar no servidor de banco de dados no endereço do servidor (10.0.0.1:5432).
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

eduardoborim

Olá amigo, obrigado pela resposta, mas acho que não me expressei direito.

Eu preciso conectar de fora do servidor, por exemplo você tentando conectar no meu servidor IP 200.200.200.200 na porta 10001.

Quando você fizer isso, eu preciso que você conecta no IP 10.0.0.3 (da vpn) na porta 5432.Ex.: 10.0.0.3:5432.

Do servidor para os clientes e assim vice-versa, vai normal. Só preciso liberar o acesso externo do servidor da VPN direto para os clientes da VPN que estão conectador neste servidor.

zekkerj

Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

eduardoborim

#4
Sim, não tem nada a ver com os clientes da VPN.

Através do servidor da VPN eu preciso acessar os clientes, sem estar na rede.

Por exemplo, nos meus clientes VPN eles tem um banco de dados postgres, e ele estão conectador no meu servidor na minha empresa.

Vamos supor que minha empresa seja em SP e eu estou na Bahia, preciso conectar em um cliente meu que está conectado na minha VPN no meu servidor na minha empresa. Não tem outra forma de acessar se não for por lá.

E no meu servidor eu preciso configurar que quando eu quiser conectar no cliente a eu use o IP EXTERNO 200.200.200.200:10001, quando eu fizer isso lá na Bahia, vai cair no meu servidor e ele vai redirecionar esse acesso para o IP interno da VPN 10.0.0.3:5432.

Seria isso amigo... rsrsrs  :D

É isso que não estou conseguido fazer no iptables, ele está parando na porta 10001 e dando timout.

zekkerj

Isso fica cada vez mais confuso.

Quem conecta onde? Qual software está sendo usado pra essa conexão?
Onde o banco de dados está rodando?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

eduardoborim

Vixi kkkkkkkkk

Estou usando PGAdmin para conectar.

O banco fica nos clientes da VPN no IP 10.0.0.3:5432

Deixa eu ver se consigo explicar melhor.

Servidor:
IP EXTERNO=200.200.200.200
IP da OPENVPN Server no mesmo servidor= 10.0.0.1
Portas Liberadas para cada Cliente VPN:

10001 -> Cliente VPN 1;
10002 -> Cliente VPN 2;
10003 -> Cliente VPN3;
etc... etc.. etc..




Cliente da VPN 1 :
IP=10.0.0.3
O banco de dados postgres esta escutando na porta 5432

Ai vou ter vários clientes assim, o que muda é o ip da VPN:

Cliente da VPN 2 :
IP=10.0.0.4
O banco de dados postgres esta escutando na porta 5432

Cliente da VPN 3 :
IP=10.0.0.5
O banco de dados postgres esta escutando na porta 5432

Cliente da VPN 4 :
IP=10.0.0.6
O banco de dados postgres esta escutando na porta 5432

Quando qualquer IP da internet de fora da rede, externo, WAN, tentar conectar no meu servidor no IP externo dele usando a seguinte porta 200.200.200.200:10001 tem que cair direto no banco de dados do cliente 1 -> 10.0.0.3:5432.




zekkerj

Mas o cliente externo conecta com que software?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

eduardoborim

Cara me desculpe, mas essa sua pergunta esta de sacanagem... mas detalhado que coloquei acima....

De que cliente você está falando.... eu só preciso conectar no banco de dados que está em uma vpn conforme dito acima...

Me desculpe, preciso de ajuda para resolver... não para confundir mais...

Acredito que está bem detalhado ai...

zekkerj

Todas as minhas perguntas são sérias. Se você não quer responder, tudo bem; mas seu tópico está confuso, e pra ser sincero, eu não estou recebendo nada pra fazer seu servidor trabalhar pra seus clientes. Já que eu não estou cobrando nada pelo suporte técnico que estou tentando te dar, você poderia pelo menos me pagar com um pouco mais de respeito.

Tchau.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

hipplerlx

Viva, em primeiro lugar verifica se IP forwarding esta activado.


Citação de: eduardoborim online 13 de Março de 2017, 20:21
Boa tarde Caros Amigos,

Gostaria de pedir um Help para vocês e esclarecer uma dúvida que tenho. Vou expor abaixo o cenário:

Tenho um servidor linux, onde nele tenho um servidor de VPN (OPENVPN) instalado nele, nesse servidor de VPN tenho os clientes da VPN.

Cada Cliente VPN tem um banco de dados instalado(postgres).

O que eu preciso é, exemplo:

De qualquer IP da internet pela porta 10001 chegue no IP 10.0.0.3:5432 da VPN.

No servidor na interface que tem comunicação com a internet é um IP Externo. A outra interface é a interface virtual da VPN que o IP dela é 10.0.0.1.

Os clientes da VPN, onde eu preciso conectar na porta 5432, eles começam em 10.0.0.3... 4... 5.... 6

Ou seja as entradas vão ser seguintes:

entrada:10001 -> redirecionar para o IP 10.0.0.3:5432 (da vpn)
entrada:10002 -> redirecionar para o IP 10.0.0.4:5432 (da vpn)

e assim por diante...

fiz uns testes abaixo mas acredito que está faltando algo.

iptables -t nat -A PREROUTING -d 0/0 -p tcp --dport 5432 -j DNAT --to 10.0.0.4:5432
iptables -t nat -A PREROUTING -i tap0 -p tcp -m tcp --dport 5432 -j DNAT --to-destination 10.0.0.4:5432

Alguém poderia me dar um help, para ver se seria isso mesmo ou eu teria que fazer mais algum procedimento?

Obrigado,
Grande Abraço.
Att,
Eduardo.

**Obs.: Estou fazendo isso para mascarar o acesso a rede que não é ipv6, para acessar a rede que é ipv6.

eduardoborim

Citação de: zekkerj online 13 de Março de 2017, 23:28
Todas as minhas perguntas são sérias. Se você não quer responder, tudo bem; mas seu tópico está confuso, e pra ser sincero, eu não estou recebendo nada pra fazer seu servidor trabalhar pra seus clientes. Já que eu não estou cobrando nada pelo suporte técnico que estou tentando te dar, você poderia pelo menos me pagar com um pouco mais de respeito.

Tchau.

Não vou te responder a altura, somente um muito obrigado.

Para mim, não tem nada de confuso.

eduardoborim

obrigado a todos pela ajuda.

consegui resolver.

segue abaixo.

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -d eth0 -p tcp --dport 10001 -j DNAT --to-dest 10.0.0.3:5432
iptables -A FORWARD -p tcp -d eth0 --dport 10001 -s 10.0.0.3 -j ACCEPT

Abraços.