20/02/2010

EeeGW – ZE retour du détour ! – Proxycache.

Vous vous souvenez dans l’article : http://geekfault.org/2009/12/31/construire-sa-gateway-from-scratch/ Je vous ai parlé de plein de petits ajouts afin de rendre votre eeegw MUST.

Je vous avais parlé de :

Pouvoir mettre en place un proxy transparent pour votre connexion pour mettre en cache les pages les plus souvent demandées et ainsi économiser de la bande passante.

Finalement j’ai trouvé le soft parfait pour faire ça : http://www.pps.jussieu.fr/~jch/software/polipo/

Choix du soft de proxy cache

Pourquoi ne pas avoir choisi squid ?

– Parce qu’il est trop gourmand en ressource pour la eeegw.
– Parce que sa conf est imbittable pour un non initié.

Pourquoi avoir choisi Polipo ?

– Parce qu’il consomme que dalle en ressource et en espace disque.
– Parce que sa configuration est assez implicite.
– Polipo à toutes les fonctions d’un bon web proxy.
– Polipo est parfaitement adapté aux petits reseaux, mais pourrait parfaitement fonctionner sur un gros réseau bien qu’il n’ai pas spécialement été design dans ce but.
– Polipo sait filtrer, ainsi si on souhaite totalement interdire facebook.com ou msn.con/live.com sur son reseau :) On peut très facilement.
– Polipo sait causer ipv4 et ipv6, Ainsi polipo peut être utilisé en tant que bridge pour permettre aux clients ipv6 d’accéder à l’internet v4 et vis et versa.
– Polipo sait parler SOCKS, ainsi il peut très facilement se coupler (ou s’accoupler au choix :p) avec tor afin de surfer de façon anonyme.

Installation et configuration de Polipo

Sur eeegw rien de plus simple :

apt-get install polipo

Allé on va le configurer : /etc/polipo/config

proxyAddress = "::0"        # both IPv4 and IPv6
# proxyAddress = "0.0.0.0"    # IPv4 only
proxyPort = 8118
# If you are enabling 'proxyAddress' above, then you want to enable the
# 'allowedClients' variable to the address of your network, e.g.
allowedClients = 127.0.0.1, 10.0.69.0/24  
# Uncomment this if you want your Polipo to identify itself by
# something else than the host name:
proxyName = "polipo.eeegw.bragon.info"
# Uncomment this if you want to use a parent SOCKS proxy:
# socksParentProxy = "localhost:9050"
# socksProxyType = socks5
### Memory
### ******
# Uncomment this if you want Polipo to use a ridiculously small amount
# of memory (a hundred C-64 worth or so):
# chunkHighMark = 819200
# objectHighMark = 128
# Uncomment this if you've got plenty of memory:
chunkHighMark = 50331648
objectHighMark = 16384
## me permet d'acceder a http://10.0.69.250:8118/polipo/index pour voir ce qui est mis en cache
disableIndexing = false
disableServersList = false
### HTTP
### ****
# Note that PMM is somewhat unreliable.

pmmFirstSize = 16384
pmmSize = 8192

# Suggestions from bragon
maxConnectionAge = 10m
maxConnectionRequests = 1024
serverMaxSlots = 16
serverSlots = 4
tunnelAllowedPorts = 1-65535

/etc/polipo/forbidden

microsoft.com
live.com
msn.com
hotmail.fr
hotmail.com
facebook.fr
facebook.com

Laissez le fichier option de base.

On peut faire feu

/etc/init.d/polipo start

http://ip.eeegw:8118/polipo/
Vous pourrez ainsi voir la configuration ainsi que pas mal de chose étant mis en cache.
http://ip.eeegw:8118/polipo/index?

Le choix s’offre à vous

Deux solutions :
– Soit vous dites à vos clients d’utiliser dans leur firefox/chromium comme proxy : ip.polipo:8118
– Soit via une règle iptables vous dites simplement à votre eeegw que tout traffic sortant via le port 80 doit d’abord passer par polipo.

Croyez moi vous allez économiser de la bande passante :)

  1. | #1

    Prochain article dans la serie eeegw.
    Mettre en place de la QOS sur sa eeegw.
    J’espère que vous serez encore nombreux à me lire.

  2. Khemael
    | #2

    “Soit via une règle iptables vous dites simplement à votre eeegw que tout traffic sortant via le port 80 doit d’abord passer par polipo”

    iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 8118

    Histoire de rendre ca vraiment transparent 😉

  3. Khemael
    | #3

    Je double Post (parce que l’édition semble déconner chez moi), pour ajouter que malgré la regle précédente, le “proxy transparent” par interception du traffic, c’est mal :

    http://article.gmane.org/gmane.comp.web.polipo.user/856
    http://www.faqs.org/rfcs/rfc3143.html (section 2.2.2 particulierement)

  1. | #1