Installation de Squid sous FreeBSD

Date: 16/12/2009 | Catégories: Open-source,Reseau | Tags: ,,

squid
Squid est un proxy supportant les protocoles HTTP, HTTPs et FTP. Nous allons dans ce billet voir comment installer et configurer Squid 3.0.20 sur un serveur FreeBSD 8.0 (qui est je le répète le meilleur OS pour les services réseaux - fin de troll).

Installation de Squid

L'installation est relativement simple car disponible dans les ports de FreeBSD. Elle se résume à la commande suivante:

Celle-ci va créer:

  • un utilisateur squid avec lequel le processus Squid sera lancé
  • un répertoire de cache /usr/local/squid/cache (permettant d'accélérer le fonctionnement du proxy)
  • un fichier de configuration /usr/local/etc/squid/squid.conf rejetant toutes les requêtes

Pour automatiser le lancement de Squid au prochain redémarrage du serveur, il faut ajouter la ligne suivante à votre fichier /etc/rc.conf:

Configuration de Squid

Toute la configuration de Squid est centralisée dans le fichier /usr/local/etc/squid/squid.conf, il faut l'adapter à vos besoins (voir quelques exemples de configurations ici). Personnellement, j'ai modifié les lignes suivantes:

PS: je préfère déporter la sécurité d'accès à mon serveur Squid au niveau réseau en filtrant le port d'écoute TCP/3128 (pour par défaut dans Squid modifiable par l'option "http_port 3128").

L'étape suivante consiste à initialiser le répertoire de cache avec la commande:

Gestion du processus Squid

Quelques commandes utiles...

Vérifier la syntaxe du fichier de configuration:

Démarrer Squid:

Vérifier que Squid est bien démarré:

Arrêter Squid:

Redémarrer Squid (attention, les connexions en cours seront cassés):

Relire le fichier de configuration (les connexions ne seront pas cassés):

Configuration des clients

Sur Firefox, il faut aller dans le menu Preférences/Avancé/Réseau/Paramètres… puis saisir les informations:
Paramètres de connexion Squid Firefox

Surveiller l'activité de son Squid

Vous pouvez suivre l'activité de votre proxy en regardant le fichier /usr/local/squid/logs/access.log (une ligne est affichée à chaque requête HTTP).

1260959842.489 194 192.168.29.148 TCP_MISS/200 3448 POST http://safebrowsing.clients.google.com/safebrowsing/downloads? - DIRECT/74.125.39.100 application/vnd.google.safebrowsing-update
1260959844.332 233 192.168.29.148 TCP_MISS/304 229 GET http://blog.nicolargo.com/wp-content/themes/largo/style.css - DIRECT/209.172.41.53 -
1260959844.444 243 192.168.29.148 TCP_MISS/304 230 GET http://blog.nicolargo.com/wp-includes/js/jquery/jquery.js? - DIRECT/209.172.41.53 -
1260959844.542 342 192.168.29.148 TCP_MISS/304 228 GET http://blog.nicolargo.com/wp-content/plugins/wp-pagenavi/pagenavi-css.css? - DIRECT/209.172.41.53 -
1260959844.542 337 192.168.29.148 TCP_MISS/304 228 GET http://blog.nicolargo.com/wp-content/plugins/openid/f/openid.js? - DIRECT/209.172.41.53 -
1260959844.548 348 192.168.29.148 TCP_MISS/304 228 GET http://blog.nicolargo.com/wp-content/plugins/openid/f/openid.css? - DIRECT/209.172.41.53 -
1260959844.559 354 192.168.29.148 TCP_MISS/304 228 GET http://blog.nicolargo.com/wp-content/plugins/google-analyticator/external-tracking.min.js? - DIRECT/209.172.41.53 -
1260959844.560 355 192.168.29.148 TCP_MISS/304 230 GET http://blog.nicolargo.com/wp-content/plugins/degradable-html5-audio-and-video/incl/audio-player.js - DIRECT/209.172.41.53 -
1260959844.681 78 192.168.29.148 TCP_MISS/200 1148 GET http://www.google.com/coop/cse/brand? - DIRECT/74.125.39.105 text/html
...

Il existe bien sûr de nombreux logiciel permettant de présenter ces informations sous la forme de rapports plus lisibles. On peut notamment citer SquidStats.