Outils personnels

Filtrage HTTPS et portail captif : PFsense et Squid+SquiGuard

De wikiGite

Introduction

Les paquets Squid de l'interface PFsense remplissent de nombreuses fonctionnalités malgrès quelques bugs mineurs. En revanche, il est impossible de faire fonctionner un proxy non-transparent en même temps que le portail captif. S'en résulte une avalanche de bug et aucun accès internet.

On installera ici Squid et SquidGuard sur une machin Ubuntu 14.04 et un PFsense sur un autre machine.

Configuration de base

On commence par configurer l'Ubuntu fraîchement installé

 sudo apt-get update && sudo apt-get upgrade

Configurer ensuite le réseau, avec une adresse fixe et le PFsense en gateway et DNS

 $vim /etc/network/interfaces
 
 auto lo
 iface lo inet loopback
 
 auto eth1
 iface eth1 inet static
 address 192.168.1.253
 netmask 255.255.255.0
 gateway 192.168.1.254
 dns-nameservers 192.168.1.254

Squid

Installer Squid3

 sudo apt-get install squid

Sauver le fichier de conf par défaut

 cp /etc/squid3/squid.conf /etc/squid3/squid.bak

Modification du fichier de conf, ajouter les lignes suivantes :
Autoriser le réseau lan à se connecter par le proxy

 acl lannet src 192.168.1.0/24
 http_access allow lannet

A cause d'un bug extrêmement handicapant, Squid préfère parfois les requètes DNS6 à celles DNS4. Du coup, certaines pages comme Google entre autres ne répondent pas. Pour le forcer à toujours utiliser DNS4 en premier

 dns_v4_first

Messages d'erreur en Français :

 error_directory /usr/share/squid3/errors/French

Ici on a normalement un proxy qui fonctionne. A vérifier en configurant un navigateur


SquidGuard

Installer squidGuard

 sudo apt-get install squidguard

Télécharger et extraire la blacklist :

 cd /var/lib/squidguard/db
 sudo wget http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
 sudo tar -xzf blacklists.tar.gz
 sudo cp -R blacklists/* .
 sudo rmdir blacklists

Modification du fichier de conf, /etc/squidguard/squidgard.conf

Changer le logdir

 logdir /var/log/squid3

On peut alors supprimer tout le contenu qui vient après cette ligne.

Créer le groupe source correspondant au réseau local :

 src lan {
 ip      192.168.1.0/24
 }

Remplir les classes de destination : 2 attributs importants "domainlist" et "urllist". Ces paramètres correspondent à un chemin relatif à celui défini par "dbhome", au début du fichier. Fait référence aux blacklists extraites plus haut.

 dest adult {
       domainlist adult/domains
       urllist adult/urls
 }

Enfin, créer l'acl qui définira qui à accès à quoi.

 acl {
       lan {
               pass !adult all
               redirect http://google.fr
 }
 default {
               pass !all
         }
 }