Outils personnels

Filtrage HTTPS et portail captif : PFsense et Squid+SquiGuard : Différence entre versions

De wikiGite

(Introduction)
 
(4 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 2 : Ligne 2 :
 
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.
 
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.
+
On doit donc installer Squid et SquidGuard sur une machine Ubuntu 14.04, et PFsense avec le portail captif sur une autre machine (qui peuvent être virtuelles).
  
 
== Configuration de base ==
 
== Configuration de base ==
Ligne 31 : Ligne 31 :
 
   cp /etc/squid3/squid.conf /etc/squid3/squid.bak
 
   cp /etc/squid3/squid.conf /etc/squid3/squid.bak
  
Modification du fichier de conf, ajouter les lignes suivantes :
+
'''Modification du fichier de conf, ajouter les lignes suivantes :'''<br/>
 
Autoriser le réseau lan à se connecter par le proxy
 
Autoriser le réseau lan à se connecter par le proxy
 
   acl lannet src 192.168.1.0/24
 
   acl lannet src 192.168.1.0/24
 
   http_access allow lannet
 
   http_access allow lannet
  
A cause d'un bug extrêmement handicapant, Squid préfère parfois les requètes DNS6 à celles DNS4. Pour le forcer à toujours utiliser DNS4 en premier
+
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
 
   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'''<br/>
 +
 +
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
 +
          }
 +
 +
  }
 +
 +
== Configuration finale et tips ==
 +
Des droits doivent être donnés, notamment à l'utilisateur "proxy"
 +
  chown -R proxy:proxy  /var/log/squid3 /var/lib/squidguard
 +
  chown proxy:proxy /etc/squid/squidGuard.conf
 +
 +
On peut maintenant générer la base de données squidguard
 +
  sudo squidGuard -C all
 +
 +
Vérifier la config Squid3 (doit être arrêté) :
 +
  sudo squid3 -z
 +
 +
Mode verbose pour squidGuard (debuggage) avec l'option -d
 +
  sudo squidguard -d

Version actuelle datée du 18 août 2015 à 10:02

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 doit donc installer Squid et SquidGuard sur une machine Ubuntu 14.04, et PFsense avec le portail captif sur une autre machine (qui peuvent être virtuelles).

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

Configuration finale et tips

Des droits doivent être donnés, notamment à l'utilisateur "proxy"

 chown -R proxy:proxy  /var/log/squid3 /var/lib/squidguard
 chown proxy:proxy /etc/squid/squidGuard.conf

On peut maintenant générer la base de données squidguard

 sudo squidGuard -C all

Vérifier la config Squid3 (doit être arrêté) :

 sudo squid3 -z

Mode verbose pour squidGuard (debuggage) avec l'option -d

 sudo squidguard -d