Squid est un proxy. Il est surtout utilisé comme proxy web.
Il écoute par défaut sur le port 3128.
Installation:
aptitude install squid
Configuration
Serveur
Configuration: dans /etc/squid/squid.conf
Dans la ligne:
http_port 3128
peut être changée en
http_port 3128 8080
Squid bloque tout par défaut.
Pour débloquer pour son réseau, décommenter et modifier les lignes:
#acl our_networks src 192.168.1.0/24 192.168.2.0/24
#http_access allow our_networks
en
acl our_networks src 192.168.2.0/24
http_access allow our_networks
Ensuite, redémarrer le service:
/etc/init.d/squid restart
Les pages cachées sont stockées dans /var/squid/.
Les fichiers de log sont dans /var/log/squid:
[[R]]ègles d'accès
Interdire l'accès à un site
Dans /etc/squid/squid.conf, sous la ligne
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
acl badSite dstdomain microsoft.com
http_access deny badSite
Ici, il interdira l'accès aux pages sur http://microsoft.com/
acl canonplus dstdom_regex belgacom
http_access deny canonplus
Ici, si dans le nom du serveur il y a belgacom, il interdit l'accès (ex: http://www.belgacom.be/, http://belgacom.skynet.be/)
acl regle3 url_regex -i linux
http_access deny regle3
bloque l'accès aux URL contenant la chaine linux (-i = case insensitive)
Authentification: accès par mot de passe
Lorsqu'on essaie d'accéder à un site via le proxy, il y a une fenêtre demandant login et mot de passe.
Sous la ligne:
#auth_param basic casesensitive off
Ajouter la ligne:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/squid.passwd
où /etc/squid/squid.passwd est le fichier contenant les logins et mots de passe
Ajouter sous la ligne
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
la ligne:
acl password proxy_auth REQUIRED
http_access allow password
Créer le fichier avec login / password.
Cela se fait à l'aide de la commande htpasswd, comme dans 1) tourne bien.
Ensuite, vérifier qu'il y a un fichier /usr/lib/cgi-bin/squidGuard.cgi.
Si ce n'est pas le cas, on peut reprendre celui dans les exemples:
zcat /usr/share/doc/squidguard/examples/squidGuard.cgi.gz > /usr/lib/cgi-bin/squidGuard.cgi
chown www-data /usr/lib/cgi-bin/squidGuard.cgi
chmod 700 /usr/lib/cgi-bin/squidGuard.cgi
Et pour bien faire, il faut aussi personnaliser les lignes suivantes de /usr/lib/cgi-bin/squidGuard.cgi:
$image = "/images/blocked.gif"; # RELATIVE TO DOCUMENT_ROOT
$redirect = "http://admin.your-domain/images/blocked.gif"; # "" TO AVOID REDIRECTION
$proxy = "proxy.your-domain"; #
$proxymaster = "operator\@your-domain"; #
On peut faire un essai sur http://www.hotmail.com/ (hotmail.com est dans la catégorie forums qui est interdite par défaut).