squid est un proxy, c'est à dire qu'il permet de donner l'accès au web à des postes clients, il garde en mémoire (dans un cache ou espace disque) les pages les plus fréquemments et dernièrement visitées, ce qui permet des "surfs" plus rapides.
Installer squid sur votre système, il se trouve sur le CD-ROM d'install d'une RedHat et de ses dérivés. Sur une Mandrake 6.1, vous installerez, par exemple, squid-2.2.STABLE4-2mdk.i586.rpm.
rpm -ivh squid-2.2.STABLE4-2mdk.i586.rpm
Le fichier de configuration se trouve sous /etc/squid et a pour nom squid.conf, le fichier est très long, rassurez vous il n'y a que deux, trois trucs à rajouter ou à modifier pour que ça fonctionne.
Vous pouvez modifier la taille du répertoire de cache de squid en jouant sur le premier paramètre numérique de la variable cache_dir, ici il est limité à 40Mo.
cache_dir /var/spool/squid 40 16 256
Par défaut les erreurs de squid sont mailés à l'utilisateur webmaster qu'il existe ou pas sur votre système, pour mettre un autre utilisateur, modifier la variable cache_mgr, pour ma part j'ai choisi l'utilisateur root comme destinataire.
cache_mgr root
Maintenant on va définir les autorisations d'accès (ACL Access ControLs), on va définir le réseau qui a le droit d'accéder à votre système, ici c'est le réseau privé d'adresse 192.168.13.0
acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl all src 0.0.0.0/0.0.0.0 acl allowed_hosts src 192.168.13.0/255.255.255.0
On définit maintenant les autorisations d'accés HTTP, on autorise uniquement les allowed_hosts qu'on a défini précédemment.
http_access deny manager all http_access allow allowed_hosts http_access deny all
La dernière étape maintenant est d'éditer le fichier /etc/hosts.allow et de rajouter la ligne suivante:
ALL: 192.168.13.0/255.255.255.0
Rebootez votre système, normalement dans les messages de boot, vous devriez voir squid se lancer.
Si squid n'est pas lancé automatiquement sur votre système, installer le fichier squid que vous mettrez sous /etc/rc.d/init.d (proprio root, groupe root, droits 755). Voici son contenu:
#!/bin/bash # squid This shell script takes care of starting and stopping # Squid Internet Object Cache # # chkconfig: - 90 25 # description: Squid - Internet Object Cache. Internet object caching is \ # a way to store requested Internet objects (i.e., data available \ # via the HTTP, FTP, and gopher protocols) on a system closer to the \ # requesting site than to the source. Web browsers can then use the \ # local Squid cache as a proxy HTTP server, reducing access time as \ # well as bandwidth consumption. # pidfile: /var/run/squid.pid # config: /etc/squid.conf PATH=/usr/bin:/sbin:/bin:/usr/sbin export PATH # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 # check if the squid conf file is present [ -f /etc/squid/squid.conf ] || exit 0 # determine the name of the squid binary [ -f /usr/sbin/squid ] && SQUID=squid [ -z "$SQUID" ] && exit 0 # determine which one is the cache_swap directory CACHE_SWAP=`sed -e 's/#.*//g' /etc/squid/squid.conf | \ grep cache_dir | sed -e 's/cache_dir//' | \ cut -d ' ' -f 2` [ -z "$CACHE_SWAP" ] && CACHE_SWAP=/var/spool/squid # default squid options # -D disables initial dns checks. If you most likely will not to have an # internet connection when you start squid, uncomment this SQUID_OPTS="-D" case "$1" in start) echo -n "Starting $SQUID: " for adir in $CACHE_SWAP; do if [ ! -d $adir/00 ]; then echo -n "init_cache_dir $adir... " $SQUID -z -F 2>/dev/null fi done $SQUID $SQUID_OPTS & echo $SQUID touch /var/lock/subsys/$SQUID ;; stop) echo -n "Stopping $SQUID: " $SQUID -k shutdown & rm -f /var/lock/subsys/$SQUID while : ; do [ -f /var/run/squid.pid ] || break sleep 2 && echo -n "." done echo "done" ;; restart) $SQUID $SQUID_OPTS -k reconfigure exit $? ;; status) status $SQUID $SQUID -k check exit $? ;; probe) exit 0; ;; *) echo "Usage: $0 {start|stop|status|restart}" exit 1 esac exit 0
puis vous créerez les liens suivants:
ln -s /etc/rc.d/init.d/squid /etc/rc.d/rc2.d/K25squid ln -s /etc/rc.d/init.d/squid /etc/rc.d/rc3.d/S90squid ln -s /etc/rc.d/init.d/squid /etc/rc.d/rc4.d/K25squid ln -s /etc/rc.d/init.d/squid /etc/rc.d/rc5.d/S90squid
Pour lancer squid, il suffit maintenant de rebooter ou de lancer /etc/rc.d/init.d/squid start
Si vous avez modifié /etc/squid/squid.conf, vous pouvez faire prendre en compte les modifs, en tapant:
/etc/rc.d/init.d/squid stop /etc/rc.d/init.d/squid start
Maintenant vous pouvez configurer vos postes clients, en configurant le browser pour qu'il se serve du proxy que vous venez de configurer sur votre poste Linux (mettre le nom de votre poste linux et le port 3128 (port par défaut)). Connectez vous sur le net, et normalement ça devrait marcher.