logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 [04/11/2014 16:39]
Hypathie [Introduction]
utilisateurs:hypathie:tutos:proxy-transparent [15/11/2014 12:39]
Hypathie [Introduction]
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 configurationOn 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>​ 
-  * Pour faire choses proprement on flush les tables concernées et on ajoute :+Si vous avez suivi "​iptables:​un pare-feu pour une passerelle"​ et installé [[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 :
  
 <code root> <code root>
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
 </​code>​ </​code>​
  
Ligne 47: Ligne 62:
  
 <​note>​ <​note>​
-**Ne pas oublier d'​ouvrir éventuellement le port 3128 si un pare-feu posé précédemment met à DROP les chaînes INPUT FORWARD et OUTPUT à DROP la table FILTER**+**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 58: 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+
  
 +  * É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 88: 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>​
  
 ===Configurer /​etc/​sysctl.conf === ===Configurer /​etc/​sysctl.conf ===
-La première ligne est probablement déjà ​configurer ​tel que ce-dessous. Modifier aussi la seconde+La première ligne est probablement déjà ​configurée ​tel que ci-dessous. Modifier aussi la seconde
 <​code>​ <​code>​
 # Controls IP packet forwarding # Controls IP packet forwarding
Ligne 125: Ligne 122:
   * contrôle d'​accès au proxy par login et mot de passe.   * contrôle d'​accès au proxy par login et mot de passe.
   * contrôle d'​accès en fonction des heures.   * contrôle d'​accès en fonction des heures.
-Néanmoins un proxy transparent permettra de ne rien avoir à configurer dans le navigateur du client qui "​ignorera"​ qu'il passe par un proxy quand il navigue. Cela place donc hors sujet la question l'​accès par login et mot de passe...+Néanmoins un proxy transparent permettra de ne rien avoir à configurer dans le navigateur du client qui "​ignorera"​ qu'il passe par un proxy quand il navigue. Cela place donc hors sujet la question ​de l'​accès par login et mot de passe...
  
-===Faire une sauvegarde du fichier de configuration ===+=== Faire une sauvegarde du fichier de configuration ===
 Le fichier est commenté quasiment entièrement,​ et contient tous les paramètres de lancement de Squid ainsi qu’une description très complète de chacun d’eux. Le fichier est commenté quasiment entièrement,​ et contient tous les paramètres de lancement de Squid ainsi qu’une description très complète de chacun d’eux.
   * **On sauvegarde l'​original** :   * **On sauvegarde l'​original** :
Ligne 140: Ligne 137:
  
 ====Vérifier le proxy ==== ====Vérifier le proxy ====
-===Bloquer ​tous le trafic du LAN === + 
-Dans un premier temps on va simplement vérifier que le proxy bloque le trafic du LAN, pour ce faire on ajoute seulement une acl pour le réseau de la passerelle 192.168.0.0/​24 et on prévient squid qu'il sert de proxy transparent ''​http_port ​3128 transparent''​ :+=== Bloquer ​tout le trafic du LAN === 
 +Dans un premier temps on va simplement vérifier que le proxy bloque le trafic du LAN, pour ce faire on ajoute seulement une acl pour le réseau de la passerelle 192.168.0.0/​24 et on prévient squid qu'il sert de proxy transparent ''​http_port ​3129 transparent''​ :
   * **On édite /​etc/​squid3/​squid.conf**   * **On édite /​etc/​squid3/​squid.conf**
 <code root>vim /​etc/​squid3/​squid.conf</​code>​ <code root>vim /​etc/​squid3/​squid.conf</​code>​
Ligne 171: Ligne 169:
 http_access allow localnet http_access allow localnet
 http_access deny all http_access deny all
-http_port ​3128 transparent+http_port ​3129 transparent
 coredump_dir /​var/​spool/​squid3 coredump_dir /​var/​spool/​squid3
 refresh_pattern ^ftp:           ​1440 ​   20%     10080 refresh_pattern ^ftp:           ​1440 ​   20%     10080
Ligne 206: 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 211: 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 256: 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  bind,rw,​noatime,​async 0 0</​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>​
 ===Paramétrage du cache dans /​etc/​squid3/​squid.conf=== ===Paramétrage du cache dans /​etc/​squid3/​squid.conf===
 Avec squid3 le cache n'est pas activer par défaut, pour mettre en place le cache, il faut récupérer les lignes commentées du fichiers d'​origine /​etc/​squid3/​squid.conf_back.\\ ​ Avec squid3 le cache n'est pas activer par défaut, pour mettre en place le cache, il faut récupérer les lignes commentées du fichiers d'​origine /​etc/​squid3/​squid.conf_back.\\ ​
Ligne 294: Ligne 294:
 icp_access allow localhost icp_access allow localhost
 icp_access deny all icp_access deny all
- +http_port 3128 
-http_port 3128 transparent+http_port 3129 transparent
  
 cache_mem 256 MB cache_mem 256 MB
Ligne 327: Ligne 327:
 refresh_pattern -i (/​cgi-bin/​|\?​) 0     ​0% ​     0 refresh_pattern -i (/​cgi-bin/​|\?​) 0     ​0% ​     0
 refresh_pattern .               ​0 ​      ​20% ​    4320 refresh_pattern .               ​0 ​      ​20% ​    4320
- 
-visible_hostname routeur-debian 
  
 dns_timeout 10 seconds dns_timeout 10 seconds
 dns_nameservers 192.168.0.1 212.27.40.240 212.27.40.241 dns_nameservers 192.168.0.1 212.27.40.240 212.27.40.241
 +
 +visible_hostname routeur-debian
 +hosts_file /etc/hosts
 </​code>​ </​code>​
  
Ligne 451: Ligne 452:
   *Il faut un certain temps pour obtenir des HIT   *Il faut un certain temps pour obtenir des HIT
  
-<code root>/​var/​log/​squid3/​access.log | grep  ​TCP_HIT</​code>​ +<code root> ​tail -f /​var/​log/​squid3/​access.log | grep HIT 
-<​code></​code>​+</​code>​ 
 +<​code>​1415119957.532 ​     0 192.168.1.10 TCP_MEM_HIT/​200 15385 GET http://​blog.tfrichet.fr/​wp-content/​uploads/​2013/​09/​owncloud_acces_mobile-600x150.jpg - NONE/- image/jpeg</​code>​
 <note tip> <note tip>
 **__Détail sur  /​var/​log/​squid3/​access.log__ :**\\  **__Détail sur  /​var/​log/​squid3/​access.log__ :**\\ 

Pied de page des forums

Propulsé par FluxBB