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 [05/11/2014 17:16] martinux_qc [Configuration de squid comme proxy transparent] |
utilisateurs:hypathie:tutos:proxy-transparent [10/11/2014 18:35] Hypathie [Configuration détaillée du proxy] |
||
---|---|---|---|
Ligne 7: | Ligne 7: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Voir : [[http://www.squid-cache.org/|le site de squid]]\\ | + | 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. |
- | [[http://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxDnat|proxy transparent]]\\ | + | |
- | Voir aussi : [[http://www.sput.nl/software/squid33.html]]\\ | + | |
- | [[http://www.linux-france.org/prj/edu/archinet/systeme/ch40s02.html]] | + | |
+ | <code> | ||
+ | |BOX_adsl|________(192.168.0.1:eth0)-|ROUTEUR-DEBIAN-(eth1:192.168.1.1) | ||
+ | | |PROXY | | ||
+ | | | | ||
+ | sous-réseau A sous-réseau B | ||
+ | | | | ||
+ | |_CLIENT-A1 (eth0:192.168.0.10) |_CLIENT-B1 (eth0:192.168.1.3) | ||
+ | |_CLIENT-AX (eth0:192.168.0.xx) |_CLIENT-BX (eth0:192.168.1.x) | ||
+ | </code> | ||
+ | Les clients du réseau B de profitent du proxy de la passerelle sans avoir à configurer leurs navigateurs. | ||
- | 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. | + | ===Références=== |
+ | * [[http://www.squid-cache.org/|le site de squid]] | ||
+ | * [[http://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxDnat|proxy transparent]] | ||
+ | * [[http://www.sput.nl/software/squid33.html]] | ||
+ | * [[http://www.linux-france.org/prj/edu/archinet/systeme/ch40s02.html]] | ||
====Prérequis==== | ====Prérequis==== | ||
Ligne 25: | Ligne 36: | ||
=== Configuration d'iptables (NAT) === | === Configuration d'iptables (NAT) === | ||
+ | <note important> | ||
+ | Si vous avez suivi "iptables:un pare-feu pour une passerelle" et installer [[atelier:chantier:iptables-un-pare-feu-pour-une-passerelle?&#le-script-de-la-passerelle|ce script]], passez directement au pre-requis [[utilisateurs:hypathie:tutos:proxy-transparent?&#table-de-routage|Table de routage]] | ||
+ | </note> | ||
* Pour faire les choses proprement on flush les tables concernées et on ajoute : | * Pour faire les choses proprement on flush les tables concernées et on ajoute : | ||
Ligne 41: | Ligne 54: | ||
iptables -t mangle -A PREROUTING -p tcp --dport 3128 -j DROP | iptables -t mangle -A PREROUTING -p tcp --dport 3128 -j DROP | ||
- | |||
iptables -t mangle -A PREROUTING -p tcp --dport 3129 -j DROP | iptables -t mangle -A PREROUTING -p tcp --dport 3129 -j DROP | ||
Ligne 50: | Ligne 62: | ||
<note> | <note> | ||
- | **Port 3128 et 3129 car j'utiliserai les deux ports.** | + | **Port 3129 pour transparent ; port 3128 pour le réseau local.** |
- | **Pour mangle**, une petite citation extrait du [[http://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxDnat|site officiel de squid]] : | + | **Pour mangle**, une petite citation extrait du [[http://wiki.squid-cache.org/ConfigExamples/Intercept/LinuxDnat#iptables_configuration]] : |
Due to the NAT security vulnerabilities it is also a very good idea | Due to the NAT security vulnerabilities it is also a very good idea | ||
Ligne 61: | Ligne 73: | ||
</note> | </note> | ||
- | ===On conserve nos règles iptables pour le proxy=== | + | * On sauvegarde les règles iptables et on les restaure avec /etc/network/interfaces |
- | + | ||
- | * Méthode 1 : on sauvegarde les règles iptables et on les restaure avec /etc/network/interfaces | + | |
<code root> | <code root> | ||
iptables-save > /etc/iptables.squid | iptables-save > /etc/iptables.squid | ||
echo "post-up iptables-restore < /etc/iptables.squid" >> /etc/network/interfaces</code> | echo "post-up iptables-restore < /etc/iptables.squid" >> /etc/network/interfaces</code> | ||
- | * Méthode 2 : on utilise le script /etc/rc.local | ||
- | <code root>vim /etc/rc.local</code> | ||
- | <code>/sbin/iptables -t nat -F | ||
- | /sbin/iptables -t nat -X | + | ===Table de routage=== |
- | + | ||
- | /sbin/iptables -t mangle -F | + | |
- | + | ||
- | /sbin/iptables -t mangle -X | + | |
- | + | ||
- | /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE | + | |
- | + | ||
- | /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.0.1:3129 | + | |
- | + | ||
- | /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3129 | + | |
- | + | ||
- | /sbin/iptables -t mangle -A PREROUTING -p tcp --dport 3128 -j DROP | + | |
- | + | ||
- | /sbin/iptables -t mangle -A PREROUTING -p tcp --dport 3129 -j DROP | + | |
+ | * Éditer le fichier /etc/rc.local | ||
+ | <code root>vim /etc/rc.local</code> | ||
+ | <code> | ||
/sbin/route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0 | /sbin/route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0 | ||
Ligne 93: | Ligne 89: | ||
exit 0</code> | exit 0</code> | ||
- | + | <note>On peut aussi créer un script init.d (update-rc.d) pour sauvegarder les règles de routage.\\ Ou encore préciser dans /etc/network/interfaces la route pour chaque interface.\\ La méthode ci-dessus n'a d'intérêt que dans le cas où l'IP est attribuée par DHCP au niveau de /etc/network/interfaces.</note> | |
- | Pour activer le script : | + | |
- | <code root> | + | |
- | /sbin/route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth1</code> | + | |
- | + | ||
* Côté client l'adresse IP du proxy squid3 comme route par défaut : | * Côté client l'adresse IP du proxy squid3 comme route par défaut : | ||
+ | Par exmple : | ||
<code root>route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0 | <code root>route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 dev eth0 | ||
</code> | </code> | ||
Ligne 212: | Ligne 204: | ||
<code root>fdisk -l</code> | <code root>fdisk -l</code> | ||
<code>Périphérique Amorce Début Fin Blocs Id Système | <code>Périphérique Amorce Début Fin Blocs Id Système | ||
+ | <...> | ||
/dev/sdg1 63 1336206374 668103156 83 Linux | /dev/sdg1 63 1336206374 668103156 83 Linux | ||
/dev/sdg2 1336206375 3907024064 1285408845 83 Linux</code> | /dev/sdg2 1336206375 3907024064 1285408845 83 Linux</code> | ||
Ligne 217: | Ligne 210: | ||
* Formater le périphérique en ext3 ou reiserfs : | * Formater le périphérique en ext3 ou reiserfs : | ||
On démonte la partition : | On démonte la partition : | ||
+ | <note important>Modifier sdg1 par le nom de votre partition</note> | ||
<code>umount /dev/sdg1</code> | <code>umount /dev/sdg1</code> | ||
Ligne 262: | Ligne 256: | ||
<code root>vim /etc/fstab</code> | <code root>vim /etc/fstab</code> | ||
On ajoute à la fin du fichier : | On ajoute à la fin du fichier : | ||
- | <code>UUID=3e2a6d44-5373-4e69-8c35-54f05443e78d /data none rw,noatime,async 0 2</code> | + | <code>UUID=3e2a6d44-5373-4e69-8c35-54f05443e78d /data ext3 rw,noatime,async 0 2</code> |
<note>Ne pas oublier de modifier l'ordre d'amorçage du BIOS, si "usb" est positionnée avant le disque dur, pour qu'elle soit positionnée après celui.</note> | <note>Ne pas oublier de modifier l'ordre d'amorçage du BIOS, si "usb" est positionnée avant le disque dur, pour qu'elle soit positionnée après celui.</note> |