Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format
PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
utilisateurs:hypathie:tutos:proxy-transparent [16/10/2014 10:16] Hypathie [Configuration de squid comme proxy transparent] |
utilisateurs:hypathie:tutos:proxy-transparent [16/10/2014 14:58] Hypathie [Introduction] |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Voir : [[http://www.squid-cache.org/|le site de squid]] | + | Voir : [[http://www.squid-cache.org/|le site de squid]]\\ |
+ | [[http://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxDnat|proxy transparent]] | ||
+ | |||
+ | Lorsqu'un serveur mandataire est installé, on configure souvent le routage du réseau pour que l'utilisateur final soit orienté vers le serveur mandataire sans avoir à modifier sa configuration. On parle alors de « proxy transparent ». Cette configuration est obtenue par translation d'adresse IP. | ||
===Prérequis=== | ===Prérequis=== | ||
Ligne 92: | Ligne 96: | ||
eth1 (vers lan) : 192.168.1.1 | eth1 (vers lan) : 192.168.1.1 | ||
<code> | <code> | ||
+ | acl localnet src 192.168.1.0/24 | ||
httpd_accel_host virtual | httpd_accel_host virtual | ||
httpd_accel_port 80 | httpd_accel_port 80 | ||
Ligne 100: | Ligne 105: | ||
http_access allow lan | http_access allow lan | ||
</code> | </code> | ||
+ | > ''acl localnet src 192.168.1.0/24'' : le réseau qui doit avoir accès au serveur proxy | ||
+ | >''httpd_accel_host virtual'': Squid comme un accélérateur de http((Dans ce mode, Squid est capable de se substituer à un serveur http, il fonctionne alors en "reverse proxying". Il ne sert donc plus à partager "le monde" pour un réseau, mais à partager une machine (ou plusieurs) "au monde". Ainsi, les clients n'accéderons plus au serveur http, mais à Squid. Dans une configuration classique, Squid devra donc écouter sur le port 80 et avoir connaissance du serveur http qu'il remplace. )) | ||
+ | >''httpd_accel_port 80'': choix du port 80 comme port contrôlé par le proxy | ||
+ | >''httpd_accel_with_proxy on'': poser squid comme proxy local et comme accélérateur http | ||
+ | >''httpd_accel_uses_host_header on'': activer le nom d'hôte | ||
+ | >''acl lan src 192.168.1.1 192.168.2.0/24'': Liste de contrôle : le lan seulement utilise squid | ||
+ | >''http_access allow localhost'': accès à squid permis au localhost | ||
+ | >''http_access allow lan'': idem | ||
+ | >''http_port 3128'' : "http_port 3128" devient "http_port 3128 transparent" | ||
+ | |||
* Ce qui donne : | * Ce qui donne : | ||
Ligne 107: | Ligne 122: | ||
acl localhost src 127.0.0.1/32 # par défaut | acl localhost src 127.0.0.1/32 # par défaut | ||
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 # par défaut | acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 # par défaut | ||
- | acl localnet src 10.0.0.0/8 # RFC1918 possible internal network | + | acl localnet src 192.168.1.0/24 # RFC1918 possible internal network |
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network | acl localnet src 172.16.0.0/12 # RFC1918 possible internal network | ||
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network | acl localnet src 192.168.0.0/16 # RFC1918 possible internal network | ||
Ligne 146: | Ligne 161: | ||
icp_access allow localnet | icp_access allow localnet | ||
icp_access deny all | icp_access deny all | ||
- | http_port 3128 | + | http_port 3128 transparent |
hierarchy_stoplist cgi-bin ? | hierarchy_stoplist cgi-bin ? | ||
cache_mem 8 MB | cache_mem 8 MB | ||
Ligne 164: | Ligne 179: | ||
coredump_dir /var/spool/squid | coredump_dir /var/spool/squid | ||
</code> | </code> | ||
- | ===== Installation ===== | ||
+ | ===Redémarrer squid=== | ||
+ | <code root>/etc/init.d/squid restart</code> | ||
+ | ===== configuration d'iptables (NAT) ===== | ||
+ | Nous n'avons pour l'instant que l'IP masquerade mis en place : | ||
+ | |||
+ | <code># proxy IP | ||
+ | SQUIDIP=192.168.0.1 | ||
+ | |||
+ | #port du proxy | ||
+ | SQUIDPORT=3128 | ||
+ | |||
+ | |||
+ | iptables -t nat -A PREROUTING -s 192.168.0.1 -p tcp --dport 80 -j ACCEPT | ||
+ | iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1:3128 | ||
+ | iptables -t nat -A POSTROUTING -j MASQUERADE | ||
+ | iptables -t mangle -A PREROUTING -p tcp --dport 192.168.0.1 -j DROP</code> | ||
+ | |||
+ | * Ce qui donne : | ||
+ | <code root>iptables -L -t nat</code> | ||
+ | |||
+ | <code>Chain PREROUTING (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | DNAT tcp -- anywhere anywhere tcp dpt:http to:192.168.1.1:3128 | ||
+ | REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3128 | ||
+ | |||
+ | Chain INPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | |||
+ | Chain OUTPUT (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | |||
+ | Chain POSTROUTING (policy ACCEPT) | ||
+ | target prot opt source destination | ||
+ | MASQUERADE all -- anywhere anywhere</code> | ||
===== Utilisation ===== | ===== Utilisation ===== | ||