1 votes

Envoyer une requête HTTP à Internet via un serveur proxy

J'ai un client qui n'a pas d'accès direct à l'internet. Mais il est connecté à un serveur sur une connexion LAN, alors que le serveur a accès à l'Internet.

J'aimerais envoyer une requête HTTP du client vers l'Internet via le serveur. Comment puis-je le faire ?

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

Des pas :

  1. Le client envoie une demande au serveur sur le réseau local à https://user:pass@local-server:1234
  2. Le serveur transmet la demande au point de terminaison distant à https://user:pass@remote-server

Note : Je n'ai besoin de transmettre la requête HTTP qu'à un seul point d'accès.

J'ai cherché à courir calmar o tinyproxy sur le serveur, mais je ne sais pas comment les configurer correctement ou si c'est l'approche la plus simple. Un serveur proxy est-il nécessaire ici ?

3voto

Ryan De Gannes Points 31

Il y a deux solutions. Premièrement - configurer NAT sur le serveur, Deuxièmement - configurer HTTP Proxy. Donc, de mon point de vue, pour votre situation, la meilleure solution est de configurer le NAT, vous n'avez pas besoin d'installer un logiciel supplémentaire, il suffit de configurer le pare-feu.

Pour le configurer sur iptables vous devez faire deux étapes :

Tout d'abord, assurez-vous que le transfert de paquets est activé dans le noyau.

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

Vous pouvez également le rendre permanent en ajoutant la ligne ci-dessous à l'adresse suivante /etc/sysctl.conf

net.ipv4.ip_forward = 1

Ensuite, vous devez ajouter à iptables configuration deux règles :

-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

Cela pourrait être fait par commande :

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

Avec cela, vous devez vérifier qu'il n'y a pas de règle pour le bloc de transfert, cela ressemble à ceci -A FORWARD -j REJECT --reject-with icmp-host-prohibited . S'il existe, il peut être supprimé par commande :

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

Vous pouvez également lire les articles permettant d'activer la redirection en ufw sur Internet. Voici deux [1] [2] exemples.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X