Installation de Squid sous FreeBSD

Publié le 16 décembre 2009 par Nicolargo


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:

pkg_add -r squid30

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:

squid_enable="YES"

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:

http_access allow all
visible_hostname proxy

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:

squid -z

Gestion du processus Squid

Quelques commandes utiles…

Vérifier la syntaxe du fichier de configuration:

squid -f /usr/local/etc/squid/squid.conf -k parse

Démarrer Squid:

/usr/local/etc/rc.d/squid start

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

/usr/local/etc/rc.d/squid status

Arrêter Squid:

/usr/local/etc/rc.d/squid stop

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

/usr/local/etc/rc.d/squid restart

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

/usr/local/etc/rc.d/squid reload

Configuration des clients

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

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).

[/shell]
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
...
[shell]

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.