J'ai une application qui ne supporte pas le proxy mais j'ai besoin d'envoyer son trafic à un proxy local. Je veux configurer IPTABLES pour rediriger de manière transparente le trafic vers une IP et un PORT donnés (80) qui seront interceptés et redirigés vers le proxy local. Malheureusement, tous les exemples que j'ai trouvés supposent que le proxy trasnsparent est défini dans un GW faisant du NATTING. Est-il possible de rediriger le trafic vers un proxy transparent (SQUID) sans avoir à effectuer de NAT ? J'apprécierais un exemple
Réponses
Trop de publicités?Oui, c'est possible. Vous pouvez utiliser le routage de politique dans la machine Linux pour rediriger le trafic vers le proxy Squid, comme indiqué dans l'image ci-dessous. cette page .
Pour résumer les étapes :
- Configurez la règle mangle dans iptables pour marquer le trafic à rediriger.
- Configurez une autre table de routage avec une route par défaut vers la machine Squid.
- Configurer une règle IP pour utiliser la nouvelle table de routage définie lorsque le paquet est marqué selon la valeur utilisée dans la règle mangle.
- Assurez-vous que iptables autorise le trafic depuis les IP des clients vers la machine squid.
Exécutez la commande suivante pour rediriger tout le trafic dirigé vers (depuis les processus locaux) le port 80 :
sudo iptables -t nat -A OUTPUT -p tcp \
-m owner ! --uid-owner root --dport 80 \
-j REDIRECT --to-port 8080
Ensuite, assurez-vous que votre processus de proxy local est exécuté en tant que root. Cela permet au proxy de ne pas voir son trafic redirigé vers lui-même. Si vous ne souhaitez pas exécuter le proxy en tant que root, exécutez-le en tant qu'autre utilisateur et modifiez la commande iptables afin de changer les paramètres suivants root
au nouveau nom d'utilisateur.
La commande suppose que votre proxy écoute sur le port 8080.
De plus, cette question est similaire à une autre qui J'ai répondu .