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 }
}