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 14:44] Hypathie [configuration d'iptables (NAT)] |
utilisateurs:hypathie:tutos:proxy-transparent [16/10/2014 15:14] Hypathie [configuration d'iptables (NAT)] |
||
---|---|---|---|
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. | 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. | ||
Ligne 109: | Ligne 110: | ||
>''httpd_accel_with_proxy on'': poser squid comme proxy local et comme accélérateur http | >''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 | >''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 | + | >''acl lan src 192.168.0.1 192.168.1.0/24'': Liste de contrôle : le lan seulement utilise squid |
>''http_access allow localhost'': accès à squid permis au localhost | >''http_access allow localhost'': accès à squid permis au localhost | ||
>''http_access allow lan'': idem | >''http_access allow lan'': idem | ||
+ | >''http_port 3128'' : "http_port 3128" devient "http_port 3128 transparent" | ||
Ligne 159: | 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 177: | Ligne 179: | ||
coredump_dir /var/spool/squid | coredump_dir /var/spool/squid | ||
</code> | </code> | ||
+ | S'il n'y a pas d'erreur : | ||
+ | <code>[ ok ] Restarting Squid HTTP proxy: squid.</code> | ||
===Redémarrer squid=== | ===Redémarrer squid=== | ||
Ligne 183: | Ligne 187: | ||
Nous n'avons pour l'instant que l'IP masquerade mis en place : | Nous n'avons pour l'instant que l'IP masquerade mis en place : | ||
- | * On ajoute à iptables: | + | <code># proxy IP |
- | ''iptables -t nat -A PREROUTING -i interface_LAN -p tcp --dport 80 -j DNAT --to SQUID_SERVEUR:SQUID_PORT'' | + | SQUIDIP=192.168.0.1 |
- | <code root> | + | |
- | iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3128 | + | #port du proxy |
+ | SQUIDPORT=3128 | ||
+ | |||
+ | iptables -t nat -A PREROUTING -s $SQUIDIP -p tcp --dport 80 -j ACCEPT | ||
+ | |||
+ | iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination $SQUIDIP:$SQUIDPORT | ||
+ | |||
+ | iptables -t nat -A POSTROUTING -j MASQUERADE | ||
+ | |||
+ | iptables -t mangle -A PREROUTING -p tcp --dport $SQUIDPORT -j DROP | ||
</code> | </code> | ||
- | ''iptables -t nat -A PREROUTING -i interface_WEB -p tcp --dport 80 -j REDIRECT --to-port SQUID_PORT'' | + | * Ce qui donne par exemple pour notre configuration: |
<code root> | <code root> | ||
- | iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 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 -o eth0 -j MASQUERADE (déjà dans le pare-feu, sinon à décommenter) | ||
+ | iptables -t mangle -A PREROUTING -p tcp --dport 3128 -j DROP | ||
</code> | </code> | ||
- | iptables -t nat -A PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128 | + | |
* Ce qui donne : | * Ce qui donne : | ||
<code root>iptables -L -t nat</code> | <code root>iptables -L -t nat</code> | ||
Ligne 211: | Ligne 227: | ||
target prot opt source destination | target prot opt source destination | ||
MASQUERADE all -- anywhere anywhere</code> | MASQUERADE all -- anywhere anywhere</code> | ||
+ | |||
+ | ===Configurer /etc/sysctl.conf === | ||
+ | * Vérifier que les lignes suivantes comportes ces valeurs : | ||
+ | |||
+ | <code> | ||
+ | # Controls IP packet forwarding | ||
+ | net.ipv4.ip_forward = 1 | ||
+ | |||
+ | # Controls source route verification | ||
+ | net.ipv4.conf.default.rp_filter = 0 | ||
+ | |||
+ | # Do not accept source routing | ||
+ | #net.ipv4.conf.default.accept_source_route = 0 | ||
+ | </code> | ||
+ | * Faire rendre en compte une éventuelle modification : | ||
+ | <code root>sysctl -p</code> | ||
===== Utilisation ===== | ===== Utilisation ===== | ||