Aller au contenu

iptables --> squid


tsetse

Messages recommandés

Bonjour,

j'ai un souci avec la config d'iptable avec squid

mon but est de rediriger toutes les requêtes sur le port 80 de mon réseau LAN sur mon serveur proxy qui est sur le port 8080

J'utilise webmin pour la config ce qui me donne dans mon fichier sur iptables-save sous /etc/sysconfig/iptables

-A PREROUTING -p tcp -m tcp -i eth0 --dport 80 -j DNAT --to-destination 10.250.100.100:8080

la config est en PREROUTING ACCEPT

Impossible d'aller sur le web depuis un poste client.

Merci d'avance de votre réponse

Lien vers le commentaire
Partager sur d’autres sites

il y a une différence entre une requête HTTP adressée à un site web et une requête HTTP adressée à un proxy

sur un site web on se connecte sur http://www.pcinpact.com et on demande /index.html

sur un proxy on se connecte sur le proxy et on demande http://www.pcinpact.com/index.html

il faut donc que le navigateur soit au courant qu'il s'adresse à un proxy, ou que la requête soit modifiée à la volée ...

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Je comprends que tu veux faire une passerelle pour partager ton accès à Internet avec une cache SQUID qui soit totalement transparente pour les postes clients (en redirigeant les requêtes HTTP du port 80 vers le port de ta cache SQUID).

C'est possible de le faire... puisque je fonctionne comme cela !

Premièrement, SQUID ne fonctionne pas sur le port 8080, mais 3128. À moins que tu modifies cette valeur dans ton squid.conf. Je te conseille de conserver le port 3128, Squid est capricieux parfois.

Avant de configurer ton partage via le proxy transparent (requête redirigé vers SQUID par Iptables), assures-toi que tu peux sans problème utiliser SQUID en version proxy standard. Depuis un client Web comme FireFox ou Internet Explorer, spécifie l'adresse IP et le port TCP de ton serveur de cache/passerelle (adresse IP côté local).

Lorsque ça fonctionnera bien, tu pourras ensuit t'attaquer à la configuration du mode transparent (qui n'empêche pas de fonctionner en mode proxy standard en même temps).

Il faut premièrement modifier quelques lignes dans squid.conf

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
ie_refresh on
acl all src 192.168.1.1-192.168.1.254/255.255.255.255 127.0.0.1/255.255.255.255 (afin de bloquer les requêtes externes)
http_access allow all (première ligne dans les http_access pour activer l'acl précédente correctement)

Ensuite ajouter une règle NAT pour Iptables pour l'ensemble des requêtes Internet et ajouter une redirections de requêtes du port 80 vers le port 3128. Voici un bash script que je lance au démarrage de l'ordi (je n'utilise pas de logiciel pour gérer Iptables):

#Déclaration des variables
IPT="/sbin/iptables"
LI="ethX (local)"
WI="ethX (WAN)"
#remise à zéro des tables
$IPT -F
$IPT -t nat -F
$IPT -X
$IPT -t nat -X
#autorisation du loopback en tout temps
$IPT -I INPUT 1 -i lo -j ACCEPT
$IPT -I OUTPUT 1 -o lo -j ACCEPT
#Activation de la NAT et redirection
$IPT -t nat -A POSTROUTING -o $WI -j MASQUERADE
$IPT -A FORWARD -i $LI -j ACCEPT
$IPT -t nat -A PREROUTING -i $LI -p tcp --dport 80 -j REDIRECT --to-port 3128
# blocage des requêtes depuis l'internet (firewall) (ports à bloquer)
$IPT -A INPUT -i $WI -p tcp --dport 80 -s 0/0 -j DROP
$IPT -A INPUT -i $WI -p tcp --dport 3128 -s 0/0 -j DROP
....

Ça devrait fonctionner !!!

Lien vers le commentaire
Partager sur d’autres sites

Rassure moi ton proxy est bien passerelle de tes clients?

Je fais fonctionner sans aucun soucis squid sur le port 8080...mais par contre je rejoins gbce dans le fait de tester ton proxy en dur (indiquer le proxy et le port dans la config du client) et ensuite le basculer en transparent...

ce qui nous permettrait d'identifier l'erreur plus precisement...

++

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...