Como enviar um pedido HTTP emitido por cURL através de VPN?

1

Por favor, desculpe-me por (provavelmente) a pergunta noob, mas eu sou muito novo em redes Linux. Já passei alguns dias pesquisando na Internet por uma resposta à minha pergunta, mas não consegui encontrar uma, então decidi postar uma pergunta por aqui, porque conheço muitos profissionais qualificados que visitam este site.

Enfim, para a pergunta: tenho dois servidores disponíveis. Vamos chamá-los de Servidor-A e Servidor-B. Eu estabeleci um túnel VPN entre o Servidor-A e o Servidor-B usando o OpenSWAN. Eu atribuí os IPs de origem: 192.168.2.1 para o Servidor-A e 172.16.2.1 para o Servidor-B. Eu sou capaz de pingar 172.16.2.1 do Server-A e 192.168.2.1 do Server-B, então estou assumindo que configurei a VPN corretamente e ambos os servidores podem se comunicar.

Agora, no Server-A, eu quero ser capaz de fazer isso:

Quando eu emito um pedido HTTP através do libcurl assim:

curl http://checkip.dyndns.com/

Eu gostaria de ver a solicitação saindo pelo endereço IP público do Server-A.

No entanto, quando eu emito:

curl --interface 192.168.2.1 same_url_as_in_the_above_request

Eu gostaria que a solicitação passasse pela VPN, para usar o acesso à Internet do Server-B, portanto, esperaria ver o endereço IP público do Server-B listado na resposta do check-in.

Neste momento, quando eu faço uma solicitação como essa, estou recebendo o seguinte erro:

curl(7) : couldn't connect to host

O que posso fazer para conseguir isso, ou estou totalmente no caminho errado? Tudo o que eu quero ser capaz de fazer é usar o acesso à Internet do Server-B do Server-A para acessar apenas determinados sites, ou quando o ISP for Server-A está inativo por algum motivo. Eu não preciso automatizar isso, só quero poder fazer isso manualmente, sempre que necessário.

Eu suponho que eu precise fazer algum roteamento ou NAT, mas eu não tenho ideia do que fazer exatamente - eu li muitos materiais nos últimos dias, mas é difícil para mim entender o que os comandos exatos do iptables e / ou route devem ter, e se configurar a VPN é a solução correta.

Eu realmente espero que alguém aqui possa me dar um conselho, e eu realmente sinto muito se eu fiz você rir com uma pergunta como noob.

Atenciosamente!

    
por maringtr 25.04.2013 / 10:38

1 resposta

0

for accessing only certain websites

Realmente a maneira mais simples de fazer isso seria através de proxies HTTP - e empurre as opções de roteamento para o navegador por meio de um arquivo PAC.

or when the ISP for Server-A is down for some reason

Isso precisa de uma solução muito diferente - usando o roteamento (no iptables ou via iproute2).

A VPN não é realmente exigida - mas se você quiser executar um proxy HTTP remoto e não usá-lo por todos os fraudadores interent que podem encontrá-lo (*), então você DEVE tem algum método para restringir o acesso do cliente ao serviço - uma VPN é uma boa maneira de conseguir isso.

*) Agora vejo mais tentativas de encontrar proxies da web abertos do que abrir retransmissões SMTP nas caixas que eu cuido

    
por 25.04.2013 / 14:46