Installation de Squid sous FreeBSD
Date: 16/12/2009 | Catégories: Open-source,Reseau | Tags: freebsd,proxy,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:
[shell]
pkg_add -r squid30
[/shell]
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:
[shell]
squid_enable="YES"
[/shell]
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:
[shell]
http_access allow all
visible_hostname proxy
[/shell]
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:
[shell]
squid -z
[/shell]
Gestion du processus Squid
Quelques commandes utiles...
Vérifier la syntaxe du fichier de configuration:
[shell]
squid -f /usr/local/etc/squid/squid.conf -k parse
[/shell]
Démarrer Squid:
[shell]
/usr/local/etc/rc.d/squid start
[/shell]
Vérifier que Squid est bien démarré:
[shell]
/usr/local/etc/rc.d/squid status
[/shell]
Arrêter Squid:
[shell]
/usr/local/etc/rc.d/squid stop
[/shell]
Redémarrer Squid (attention, les connexions en cours seront cassés):
[shell]
/usr/local/etc/rc.d/squid restart
[/shell]
Relire le fichier de configuration (les connexions ne seront pas cassés):
[shell]
/usr/local/etc/rc.d/squid reload
[/shell]
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][/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][/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.