ADeLLA.org , ADeLLA.org
Accueil du site > Documentation > Réseau > Service proxy http filtrant transparent sur votre machine perso ou votre (...)

Service proxy http filtrant transparent sur votre machine perso ou votre serveur perso

mercredi 28 mars 2007, par ghost


Un serveur proxy ou serveur mandataire est un serveur qui sert d’intermédiaire entre un réseau local et Internet. Son rôle est la plupart du temps proxy http, Il effectue les requêtes qu’on lui demande sur Internet (si les données ne sont pas déja dans le cache), stocke les nouvelles données en mémoire et les renvoie au poste éméteur d’origine sur le réseau. L’avantage est que si les pages ont déja été consultées il puise alors dans son cache ce qui est plus rapide sans utilisation de la bande passante du réseau vers Internet. Un autre avantage est le filtrage des informations avec la possibilité de définir des acl et de filtrer le contenu avec un programme externe.

Installation du proxy Squid

Aprés avoir configuré les règles de notre firewall nous récupérons et installons les paquets de squid en tapant les commandes suivante :

root@serveur:/home/pierre# apt-get install squid

La configuration est des plus simple pour une utilisation classique de proxy http , nous éditons donc le fichier /etc/squid/squid.conf et rajoutons les lignes suivantes :

...
acl our_networks src 192.168.1.0/255.255.255.0
...
http_access allow our_networks
...
visible_hostname serveur.pguilhem.org
...

Ceci est bien sur un exemple, les adresses du réseau et le nom du serveur sont bien sùr différents sur votre réseau local.

Dans cet exemple je laisse le port 3128 pour squid car je compte utiliser le programme dansguardian pour le filtrage de contenu.

Maintenant nous pouvons donc redemarrer le service en tapant /etc/init.d/squid restart .

Installation de Dansguardian

Le programme dansguardian est un programme de filtrage de contenu. Il permet de filtrer les url , le contenu des sites Internet et de vérifier la présence de virus informatique dans les données transmises.

La récupération et l’installation des paquets s’effectuent avec la commande suivante :

root@serveur:/home/pierre# apt-get install dansguardian

Maintenant nous allons procéder à l’activation et à la modification du fichier de configuration /etc/dansguardian/dansguardian.conf :

...
# placer en commentaire la ligne ci-dessous pour activer dansguardian
# UNCONFIGURED
...
# language to use from languagedir. langue utilisé à modifier car par défaut c'est l'anglais bien sùr
language = 'french'
...
# the port that DansGuardian listens to. ceci est le port à utiliser pour l'accés au proxy
filterport = 8080

# the ip of the proxy (default is the loopback - i.e. this server)
proxyip = 127.0.0.1

# the port DansGuardian connects to proxy on. Laisser le port 3128 car squid n'a pas été modifié lors de l'installation
proxyport = 3128
...

Par défaut dansguardian utilise clamav pour le filtrage des virus, il est donc conseillé de l’installer. Libre à vous de le faire.

Pour installer clamav tapez les commandes apt-get install clamav .

Nous pouvons donc redémarrer le programme comme ci-dessous :

root@serveur:~# /etc/init.d/dansguardian restart
Restarting DansGuardian: LibClamAV Warning: ********************************************************
LibClamAV Warning: ***  This version of the ClamAV engine is outdated.  ***
LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/faq.html ***
LibClamAV Warning: ********************************************************
LibClamAV Warning: ********************************************************
LibClamAV Warning: ***  This version of the ClamAV engine is outdated.  ***
LibClamAV Warning: *** DON'T PANIC! Read http://www.clamav.net/faq.html ***
LibClamAV Warning: ********************************************************
dansguardian.

Clamav n’est pas à jour, mais ce n’est pas génant pour l’exemple.

Les règles de filtrage se trouvent dans le répertoire /etc/dansguardian/ :

root@serveur:/etc/dansguardian# ls
bannedextensionlist  bannedregexpurllist  contentregexplist    exceptionphraselist  exceptionvirusextensionlist  filtergroupslist
phraselists          bannediplist         bannedsitelist       dansguardian.conf    exceptionsitelist    exceptionvirusmimetypelist
greysitelist         pics                 bannedmimetypelist   bannedurllist        dansguardianf1.conf  exceptionurllist
exceptionvirussitelist                    greyurllist          transparent1x1.png   bannedphraselist     banneduserlist
exceptioniplist      exceptionuserlist    exceptionvirusurllist                     languages            weightedphraselist

Et la liste des mots douteux dans /etc/dansguardian/phraselist/ :

root@serveur:/etc/dansguardian/phraselists# ls
badwords  drugadvocacy  games        googlesearches  illegaldrugs  legaldrugs   news    peer2peer     pornography  sport
warezhacking            webmail      chat            gambling      goodphrases  gore    intolerance   malware      nudism
personals proxies       violence     weapons

Tous ces paramêtres sont modifiables et on peut même utiliser les rêgles de squidguard si on le désire.

Proxy transparent

Pour que l’utilisation de notre proxy http soit transparent pour les utilisateurs et pour éviter aussi une modification fastidieuse de chaque poste client, nous allons rajouter les lignes suivantes dans notre fichier d’initialisation de netfilter :

...
iptables -t nat -F PREROUTING
iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-port 8080
...

Ce qui enverra toutes les requêtes (du réseau local) du port 80 vers le 8080 (sur dansguardian) et ensuite elles seront renvoyées sur le port 3128 (sur squid).

Une fois que squid , dansguardian et les rêgles netfilter sont rechargés, le proxy est opérationnel. Il place en cache les pages visitées et filtre le contenu selon les rêgles définies.

Exemple de page interdite suite à une recherche dans google.fr des caractères XXX :

Répondre à cet article


Suivre la vie du site | Valid HTML 4.01! | Valid CSS! | Plan du site | Espace privé | SPIP