User Tools

Site Tools


coursieps:20060324

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:

  • access.log: enregistre les access (data (format epoch = secondes écoulées depuis 01/01/1970, IP source, URL, …
  • cache.log: logs de fonctionnement du service
  • store.log: les éléments cachés

[[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
  • créer une liste de sites (acl)
  • interdire l'accès à l'acl
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).

1)
/Apache2 Apache). Elle se trouve dans le paquet apache2-utils.
htpasswd -c /etc/squid/squid.passwd toto
et redémarrer le service. Pour les suivants, c'est pareil sauf qu'on met pas le -c. ==== Browser client == Utiliser le proxy avec /MozillaFirefox: File → Preferences → tab General → clic Connexion settings === Proxy transparent == Sur le firewall, tout le trafic sortant sur le port 80 est redirigé sur le proxy. On fait cela avec du NAT. Dans le cas où le routeur / firewall est aussi proxy squid:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
où eth1 = l'interface vers l'internet Si squid est sur une autre machine:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 192.168.2.44:3128
=== Squid Guard == C'est une base de données cataloguant des URL par thème, par exemple pour évite que les utilisateurs ne surfent sur des sites qui sont pas bien.
aptitude install squidguard
Cependant, la base de données n'est plus mise à jour depuis longtemps. Donc, on installe un autre paquet:
aptitude install chastity-list
Mise à jour de la base de données lorsqu'on a modifié les fichiers (qui se trouvent dans /var/lib/chastity/):
/usr/sbin/update-chastity-list
Ensuite, éditer /etc/squid/squid.conf: au dessus de la ligne:
#  TAG: redirect_children
ajouter:
redirect_program /usr/bin/squidGuard -c /etc/chastity/squidGuard-chastity.conf
Par défaut, il interdit l'accès aux URLs dans tous les sous-répertoires /var/chastity/ On peut modifier cela dans le fichier /etc/chastity/squidGuard-chastity.conf. Il y a déjà des ACLs prévus:
  • privilegedsource: un acl permettant de voir plus que les autres :)
  • bannedsource: rien qui passe: accès interdit à tout
  • lansource: interdit un peu
  • default: interdit beaucoup
Quand on essaie de le faire tourner, il n'affiche pas la page “access forbidden” comme il devrait. D'abord, vérifier que ((/Apache2 Apache
coursieps/20060324.txt · Last modified: 2013/01/30 17:50 (external edit)