Anthonix.fr – High Tech/Informatique : Tutoriels & actualité, insolite, geek !
1Jan/100

Debian – Mise en place d’un serveur proxy squid

Liminaire

Nous allons installer et configurer un serveur proxy squid.

I - Logiciels et matériel requis

Voici ce qu'il vous faut :
- OS : Linux | Distribution : Debian *

II - Installation des paquets

Nous allons commencer par installer le service squid :

apt-get install squid squidguard

III - Configuration de Squid

Il faut se rendre dans le dossier /etc/squid et modifier le fichier squid.conf comme ceci :


acl localsrc src 127.0.0.1 192.168.1.0/255.255.255.0
acl localdst dst 127.0.0.1 192.168.1.0/255.255.255.0
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

http_access allow manager localsrc
http_access deny manager
http_access allow purge localsrc
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localsrc
http_access deny all

icp_access allow all

http_port 3128

# maximum_object_size 4096 KB # enlever le dieze pour limiter la taille des fichiers maximum.

access_log /var/log/squid/access.log squid

error_directory /usr/share/squid/errors/French

redirect_program /usr/bin/squidGuard


En remplacant 192.168.1.0 par l'addresse du réseau du client ^^

Ensuite se rendre dans squidGuard.conf et modifier en prenant en compte cet exemple :


dbhome /var/lib/squidguard/db # répertoire qui contient les fichiers de blacklists logdir /var/log/squid # répertoire où se situe les logs
dest ads {
domainlist /ads/domains
urllist /ads/urls
redirect http://intel.com
}

acl {
default {
pass !ads
redirect http://192.168.1.30/cgi-bin/squidGuard.cgi?clientaddr=a&srcclass=%s&targetclass=%t&url=%u
}
}


explication de


dest ads {
domainlist /ads/domains
urllist /ads/urls
redirect http://blah.foo
}


C'est les noms de filtrage :
En gros, on donne un nom après dest, dans ce cas ads (c'est le nom que l'on met dans les règles ACL (du genre !ads !warez….))
Ensuite on donne le chemin de la liste de domaines ainsi que de l'urllist (ce qui suit le chemin dbhome qui est spécifier dans ce même fichier) et on donne un site de redirection (dans ce cas, si on va sur une url qui est contenu dans $dbhome/ads/domains, nous sommes redirigés sur http://blah.foo

Ensuite on peut faire les filtrages par IP par exemple du genre:


source admin {
ip 192.168.1.30
}
source LAN {
ip 192.168.1.31-192.168.1.254
}
acl {
LAN {
pass !ads
}
admin {
all
}
}


Dans ce cas l'ip client 192.168.1.30 aura accés à tout le web, et la plage d'addresse ip client 31 à 254 se verra filtrer toutes les urls contenu dans les fichiers de 'ads' (voir ci avant)

On peut aussi assurer les filtrages par heures comme ceci (avec exemple ci dessus 'LAN') :


time heure {
weekly s 06:00 - 23:30
}
LAN within heure {
pass !ads !porn !violence !warez all
}
else {
pass none
redirect off.html
}


Explications : Si les ordinateurs se situant dans le groupe 'LAN' se connecte sur le web via le proxy dans les heures entrées (on peut mettre plusieurs horaires (1 par ligne)), le filtrage s'applique (tous ce qui est filtré a "!" devant lui) (all c'est le reste), si le client se co au delà des heures, il sera redirigé vers une page (que l'on doit spécifier) dans ce cas : off.html.

IV - Configuration des blacklists

Pour que ça fonctionne, il faut aussi avoir la base de données squidguard (ici : http://www.squidguard.org/blacklists.html)
Dés que nous l'avons télécharger, il faut l'extraire dans /var/lib/squidguard/db (voir le lieu dans "dbhome" ci dessus).

V - Démarrage de Squid

Pour que tout soit pris en compte : il faut redémarrer squid grâce à la commande :

/etc/init.d/squid restart

VI - Configuration du navigateur

Il faut maintenant configurer le navigateur comme suit :

Mozilla Firefox/iceweasel : Édition (ou Outils sous windows) ⇒ PréférencesAvancéParamètres ⇒ Cliquer sur configuration manuelle du proxy ⇒ Cocher Utiliser ce serveur proxy pour tous les protocoles après avoir insérer l'adresse IP du serveur sur lequel se trouve le service squid et avoir insérer le port (par défaut 3128)

Internet explorer : OutilsOptions Internet ⇒ Onglet ConnexionsParamètres réseau… ⇒ Cocher Utiliser un serveur proxy pour tout votre réseau local ⇒ Entrer l'adresse IP du serveur ainsi que le port. Ensuite cliquer sur Avancé puis cocher Utiliser le même serveur proxy pour tous les protocoles.

Bien sur, ceci n'est pas sécurisé… Afin d'empêcher des changements, vous pouvez par exemple configurer les stratégies de groupe sur windows mais là encore, je pense qu'il doit être possible de les contourner…. Afin de garantir un total filtrage, il faut passer squid en proxy transparent, c'est à dire utiliser le PAT pour rediriger tout le traffic du port 80 sur le port 3128 de votre serveur proxy.

Votre proxy est maintenant prêt ! il vous reste plus qu'à filtrer les accès comme bon vous semble !!!!!!!

Posted by antho