Installation et configuration d’un Proxy Squid

A quoi sert un proxy ?

Un proxy est un serveur informatique dont le rôle est de servir de relais entre un client (vous) et un serveur (le site web que vous souhaitez consulter). Les entreprises utilisent très souvent un proxy afin de pouvoir contrôler les sorties de leurs employés sur internet.

Quelle est son utilité ?

Il vous permettra de gérer l’accès à internet aux utilisateurs de votre parc informatique en fonction des heures d’accès, des ports de destination d’un service, d’ip sources, etc. Il permet aussi de mettre en cache les sites visité afin d’accélérer le trafic.

Le logiciel que nous utiliserons est Squid.

Dans cette article, nous apprendrons à gérer et comprendre Squid de manière simple.

Pré-requis :

Avoir quelques base de linux et le réseaux.

Objectif :

Réaliser et comprendre toutes les étapes de la configuration d’un proxy avec Squid en tant que proxy web.

Matériel nécessaire :

Deux ordinateurs (virtuel ou physique). Une sous linux et l’autre sous n’importe quel OS.
Un switch, câble Ethernet etc…

Squid est disponible sous deux versions avec Debian. Squid 2.7 et Squid 3.

Nous prendrons donc Squid 3 pour configurer notre proxy et vous verrez que c’est extrêmement simple.

1
aptitude install squid3

Nous allons donc le sauvegarder et ensuite l’éditer.

1
2
cp /etc/squid3/squid.conf  /etc/squid3/squid.conf.old
vim /etc/squid3/squid.conf

Dans ce fichier nous allons mettre ces différentes lignes :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Cette première ligne veut dire que Squid écoute sur le port 3128 et
# qu'il s'attendra à recevoir des requêtes redirigées sans que l'utilisateur
# client en ait conscience
http_port 3128 transparent

# Cette ligne affichera le nom de machine spécifié lors des messages
# d'erreurs
visible_hostname squid.test.local

# Access List. Ici on crée un groupe qui sera utilisé pour gérer l'IP
# source des clients qui utiliserons le proxy.
acl localnet src 192.168.2.0/24

# Squid fonctionne un peu comme Iptables. La première règle qui est
# concordante avec le paquet qui arrive sera utilisée et n'ira pas plus
# loin. Ainsi donc, dans notre cas, l'ACL qui regroupe les ip du lan
#seront autorisées et toutes les autres refusées
http_access allow localnet
http_access deny all

# Spécifie le chemin vers les logs d’accès créé pour chaque page
# visitée
access_log /var/log/squid3/access.log

# Indique à Squid d'attendre 4 secondes avant de se couper quand on
# essaye de le stoper ou de le redémarrer. Par défaut c'est 30 secondes
shutdown_lifetime 4 secondes


Une fois que notre fichier squid.conf est édité, vous pouvez redémarrer Squid sans problème.

1
/etc/init.d/squid3  restart

Normalement vous avez une interface vers internet et une vers le Lan. Pour que internet puisse répondre aux requêtes qui ne viennent pas du proxy, donc celle du Lan avec une IP 192.168.1.0/24, il faudra faire du Nat. Et pour que le requêtes vers le proxy arrivent en transparent, il faut rediriger le port 80 vers le port 3128 quand elles arrivent.

1
2
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

De cette façon, toutes les requêtes vers un site en Http depuis le Lan vers le Wan passerons par le proxy.

Il existe une multitude d’acl existante pour filtrer non pas juste l’adresse ip source mais aussi celle de destination, le domaine de destination, l’URL, la MAC adresse, l’heure de connexion ainsi que les jours. Bref, beaucoup de chose que vous pouvez utiliser pour gérer les connexions à internet. N’oubliez pas que pour rendre les règles d’Iptables persistante, il faut faire ceci.

1
2
iptables-save > /etc/iptables
echo "post-up iptables-restore < /etc/iptables" >> /etc/network/interfaces

Vous aimerez aussi...

5 réponses

  1. izic dit :

    excellent tuto

    mon regret il laisse sur sa faim :

    aucun petit truc pour savoir comment bloquer telle ou telle destination
    par exemple j’aurais aimé limiter un pc et laisser les autres focntionner normalement
    interdire le p2p ou diminuer la bande passante de tel pc afin de décourager cela…

    sinon clair et
    précis

    merci

  2. manu dit :

    +1 pour savoir bloquer une liste de domaine ou le téléchargement

  3. Benyahya dit :

    merci bcp

  4. linux dit :

    bonjour ; comment fait-on pour faire une blacklist svp?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Time limit is exhausted. Please reload CAPTCHA.