Enviar solicitação HTTP por meio do servidor proxy para a Internet

1

Eu tenho um cliente que não tem acesso direto à internet. Mas ele está conectado a um servidor em uma conexão LAN, enquanto o servidor tem acesso à Internet.

Gostaria de enviar uma solicitação HTTP do cliente pelo servidor para a Internet. Como posso fazer isso?

+--------+        +--------+        +--------+
|        |  LAN   | Ubuntu |   WAN  |        |
| Client <--------> 16.04  <-------->  WWW   |
|        |        | Server |        |        |
+--------+        +--------+        +--------+

Etapas:

  1. O cliente envia uma solicitação ao servidor na LAN, no link
  2. O servidor encaminha a solicitação ao ponto de extremidade remoto no link

Nota: só preciso encaminhar a solicitação HTTP para um único endpoint

Eu tenho procurado executar o squid ou tinyproxy no servidor, mas não sei como configurá-los corretamente ou se é a abordagem mais simples. Um servidor proxy é necessário aqui?

    
por Ryan R 20.12.2017 / 20:55

1 resposta

2

Existem duas soluções. Primeiro - configure o NAT no servidor, Segundo - configure o Proxy HTTP. Então, do meu ponto de vista, para a sua situação melhor - configure o NAT, você não precisa instalar nenhum software adicional, apenas configure o firewall.

Para configurá-lo em iptables , você deve fazer duas etapas:

Antes de tudo, certifique-se de que o encaminhamento de pacotes esteja ativado no kernel

# echo 1 > /proc/sys/net/ipv4/ip_forward

Você também pode torná-lo permanente adicionando a linha abaixo a /etc/sysctl.conf

net.ipv4.ip_forward = 1

Então você deve adicionar à regra iptables duas regras:

-A PREROUTING -p tcp -m tcp --dport 1234 -j DNAT --to-destination internet-ip:1234
-A POSTROUTING -p tcp -m tcp --dport 1234 -j MASQUERADE

Poderia ser feito por comando:

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 1234 -j DNAT --to-destination internet-ip:1234
iptables -t nat -A POSTROUTING -p tcp -m tcp --dport 1234 -j MASQUERADE

Com isso, você deve verificar se não há uma regra para o bloqueio de encaminhamento, parece com isso -A FORWARD -j REJECT --reject-with icmp-host-prohibited . Se existir, pode ser removido pelo comando:

iptables -t filter -D FORWARD -j REJECT --reject-with icmp-host-prohibited

Você também pode ler artigos para ativar o encaminhamento em ufw na Internet. Aqui dois [1] [2] .

    
por 20.12.2017 / 21:13