Outils pour utilisateurs

Outils du site


netadmin:filtrage-web-squidguard

Ceci est une ancienne révision du document !


Filtrage du web avec SquidGuard

Installation du proxy

Squidguard est un plugin de filtrage d'URL à associer au programme squid. Il faut installer et paramétrer le proxy squid en premier lieu.

$ sudo apt-get install squid

Configuration de squid

Editer le fichier /etc/squid3/squid.conf

On définit ci-dessous un réseau local lan auquel on donnera le droit d’accès.

acl lan src 192.168.0.0/24

Avant la directive d'interdiction globale, autoriser le réseau lan précédemment déclaré

http_access allow lan
http_access deny all

Contrôle du service

Le démarrage/arrêt/redémarrage dus service squid ce fait via la commande service:

$ sudo service squid3 restart

Pour prendre en compte les modifications du fichier de configuration sans arrêter le service:

$ sudo squid3 -k reconfigure

Filtrage

Le module squidguard permet de filtrer l’accès au contenu web.

$ sudo apt-get install squidguard

A l'installation le fichier de configuration consulte le dossier /var/lib/squidguard/db

Modifier la configuration de squid pour qu'il utilise squidguard:

url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
url_rewrite_children 10 startup=0 idle=1 concurrency=0

Modifier le fichier de configuration /etc/squidguard/squidGuard.conf.

Indiquer le répertoire conteneur des listes:



Déclarer les sources



Déclarer les destinations



Déclarer les ACL mettant en relation les sources et des destinations autorisées:



Lorsque une ressource destination non autorisée est demandée, la directive redirect est utilisée par squiGuard. Des fichiers cgi d'exemples sont disponibles sous /usr/share/doc/squidguard/examples. Pour servir ces fichiers cgi, un serveur web doit être installé/fonctionnel. Pour ces modestes besoins lighttpd a été installé.

Script de mise à jour des listes

Le script:

  • Récupère les liste maintenues par l'académie sous forme d'archive.
  • Décompresse l'archive et donne les droit a l'utilisateur proxy.
  • Lance la construction des bases Berkeley DB

Rendre le proxy transparent

Le mode transparent permet de filtrer les postes clients sans configuration spécifique coté client. Il a cependant ces limites notamment avec https. Le filtrage transparent ne fonctionnera pas pour tous les sites en https qui considéreront une attaque “man in the middle”. Pour que cela fonctionne, des règles de NAT devront autoriser systématiquement le flux https et donc rendre le filtrage inopérant.

Configurer squid

Activer le mode transparent en modifiant le fichier de configuration de squid3:

http_port 3128 transparent 

Modifier la configuration du système pour autoriser le routage de paquets. La procédure est décrite dans le wiki activer-routage.

Règles iptables

Dans les règles présentées ci-dessous:

  • lan est le nom de l'interface écoutant sur le LAN
  • wan est le nom de l'interface reliée à Internet
  • 192.168.0.254 est l'adresse sur le LAN du serveur

Règles de bypass du flux https

iptables -t filter -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t filter -A FORWARD -i lan -p tcp --dport 443 -j ACCEPT
iptables -t nat -A POSTROUTING -o wan -j SNAT --to-source 192.168.0.254

Règle de NAT rendant squid transparent:

iptables -t nat -A PREROUTING -i lan -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.254:3128
iptables -t nat -A PREROUTING -i wan -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128

Configuration des clients

Les fichiers pac, à placer sur un serveur web permettent de configurer automatiquement le proxy sur le navigateur demandant l'URL (javascript).

function FindProxyForURL(url, host) {
        if (
            isInNet(myIpAddress(), "127.0.0.0", "255.0.0.0") ||
            isInNet(myIpAddress(), "192.168.0.0", "255.255.255.0")) {
            return "DIRECT";
        } else {
            if (shExpMatch(url, "http:*"))
                return "PROXY 192.168.1.28:3128" ;
            if (shExpMatch(url, "https:*"))
                return "PROXY 192.168.1.28:3128" ;
            return "DIRECT";
        }
    }

Le mime-type associé au fichiers .pac doit être modifié si nécessaire dans la configuration du serveur web:

application/x-ns-proxy-autoconfig .pac;

Références

netadmin/filtrage-web-squidguard.1514556932.txt.gz · Dernière modification : 2021/02/01 21:51 (modification externe)