config firewall et proxy
TRANSCRIPT
Mise en place de Squid avec Squidguard
Introduction:Dans ce tutoriel nous allons voir comment mettre en place un proxy Squid avec filtrage d'url grâce a Squidguard un plugin permettant de filtrer les URL avec de multiples options.Pour cela j'utilise Vmware Player avec une Ubuntu 12.04 installé.
Tout d'abord il faut être en mode root sur la machine pour cela ouvrez un terminal et faite:sudo su -
Taper votre mot de passe et le prompt devrait se trouver comme ceci:root@votre_machine:~#
Ensuite télécharger le paquet squid:apt-get install squid3
Une fois installé faites un copie de votre squid.conf d'origine ( ceci est lefichier de configuration de Squid)cp /etc/squid3/squid.conf /etc/squid3/squid.conf.bak
Ensuite editer le fichier squid.conf, nous allons faire le ménage pour le rendrebien plus lisible étant donné qu'il contient beaucoup de possibilité qui ne noussont pas utile pour ce tuto:gedit /etc/squid3/squid.conf
Effacer tout ce qu'il y a dans ce fichier et y mettre ceci :____________________________________________________________________#port utilisé par Squidhttp_port 3128cache_dir ufs /var/spool/squid3 1024 256 256# Les journaux de Squidcache_access_log /var/log/squid3/access.log commoncache_log /var/log/squid3/cache.logcache_store_log /var/log/squid3/store.logcache_swap_log /var/log/squid3/cache_swap.logemulate_httpd_log on# Configuration minimum recommandéeacl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftpacl Safe_ports port 443 563 # https, snewsacl Safe_ports port 70 # gopheracl Safe_ports port 210 # waisacl Safe_ports port 1025-65535 # ports non réservésacl Safe_ports port 280 # http-mgmtacl Safe_ports port 488 # gss-httpacl Safe_ports port 591 # filemakeracl Safe_ports port 777 # multiling httpacl CONNECT method CONNECT# Définition des réseaux, les adresses ip seront à mettre en fonction de la#configuration de votre réseauacl mon_reseaueth src 192.168.1.0/255.255.255.0acl mon_reseauwifi src 192.168.2.0/255.255.255.0# Définition des accès# autorise le groupe mon_reseaueth, mon_reseauwifi précédemment crééshttp_access allow mon_reseauethhttp_access allow mon_reseauwifihttp_access deny all# La redirection sur SquidGuard pour le contrôle à commenter si vous n'utilisez pas SquidGuardredirect_program /usr/bin/squidGuard -c /etc/squid3/squidGuard.confredirect_children 5# On renseigne le nom de machine qui fait serveurvisible_hostname votre_machine
Enregistrer, une fois les modifications effectuées, le fichier Squid.conf.Faire un restart de Squid pour que les changements soit pris en compte:/etc/init.d/squid3 restart
Nous avons donc à présent le proxy d'installé cependant pour le filtrage nous devons installé squidGuard ( vous devez être toujours en mode root pour effectuer ce qui suit).apt-get install squidguard
Ensuite on se place donc dans le dossiers /var/lib/squidguard/db/cd /var/lib/squidguard/db/
On récupère la blacklist grâce a cette commandewget ftp://ftp.univtlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
On des-archive le fichier et on génère les bases de listes noires.tar xzf blacklists.tar.gz
chown -R proxy:proxy blacklistsln -s /etc/squid/squidGuard.conf /etc/squid3/squidGuard.confsu proxysquidGuard -d -c /etc/squid3/squidGuard.conf -C all
SquidGuard étant prévu pour fonctionner avec une ancienne version de squid onétabli un lien symbolique du squidguard.conf dans le dossier squid/ avec unsquidguard.conf dans le dossier squid3/ grâce a la commande ln -s
Une fois tout ceci faites une copie de votre squidguard.conf d'origine.cp /etc/squid/SquidGuard.conf /etc/squid/SquidGuard.conf.bak
Et éditer le fichier SquidGuard.conf nous allons faire le ménage pour le rendrebien plus lisible étant donné qu'il contient beaucoup de possibilité qui ne noussont pas utile pour ce tuto:gedit /etc/squid3/SquidGuard.conf____________________________________________________________________Effacer tout ce qu'il y'a dans ce fichier et y mettre ceci:## CONFIG FILE FOR SQUIDGUARD#dbhome /var/lib/squidguard/db/blacklistslogdir /var/log/squid3## TIME RULES:# Jour de la semaine:# s = sun, m = mon, t =tue, w = wed, h = thu, f = fri, a = sat# Du 24 au 25 décembre de 21h00 à 5h00 ok pour touttime JoursSpecifique {date *.12.24 21:00 - 00:00date *.12.25 00:00 - 05:00}# on peut par exemple définir des horaires de travail avec les jours concernéstime workhours {weekly mtwhf 08:30 - 19:00}#on indique ici les différents groupes que l'on veut proposer(remplacer les ip#par les paramètres de votre réseau)src admin {ip 192.168.1.235}src PDG {ip 192.168.1.11}
src workers {ip 192.168.1.0/24}src all {ip 192.168.2.0/24}dest adulte {# Sites adultes à proscrireurllist adult/urlsdomainlist adult/domainsexpressionlist adult/very_restrictive_expression}
dest drogues {# Sites drogues à proscrireurllist drugs/urlsdomainlist drugs/domains}dest phishing {# Site de phishingurllist phishing/urlsdomainlist phishing/domains}dest marchands_de_guerre {# Marchands d'armesurllist marketingware/urlsdomainlist marketingware/domains}rewrite test {s@fuck@ooops@irs@blonde@ooops@irs@Hot@ooops@irs@sex@ooops@irs@porns@ooops@irs@bikini@ooops@ir}acl {admin {pass any}PDG {pass any}workers within workhours {pass !adulte !drogues !phishing !marchands_de_guerre any
#redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientident=%i&srcclass=%s&targetclass=%t&url=%uredirect http://debian/interdit.html}all {pass !adulte !drogues !phishing !marchands_de_guerre any#redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientident=%i&srcclass=%s&targetclass=%t&url=%uredirect http://debian/interdit.html}all within JoursSpecifique {pass any#redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientident=%i&srcclass=%s&targetclass=%t&url=%uredirect http://debian/interdit.html}default {pass none#redirect http://127.0.0.1/cgi-bin/squidGuard.cgi?clientaddr=%a&clientname=%n&clientident=%i&srcclass=%s&targetclass=%t&url=%uredirect http://debian/interdit.html}}
Enregistrer le fichier et relancer Squid3:/etc/init.d/squid3 restart
Faites un test avec une machine cliente (la première connexion peut être longue).
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 1
Guide Pfsense 2.0
Suivi du document :
Mai 2012 : Version 0.1 – Installation et paramétrages de Pfsense avec les règles sur les ports et le filtrage squid
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 2
1) Installation et premiers paramétrages de Pfsense ......................................................................... 3
1.1) Installation de PfSense ............................................................................................................ 3
1.2) Premiers paramétrages de Pfsense ......................................................................................... 6
2) Les règles d’accès .......................................................................................................................... 14
2.1) Paramétrer les règles de base .................................................................................................... 14
2.2) Bloquer l’accès au https de facebook ........................................................................................ 19
2.2.1) Création d’un alias facebook ............................................................................................... 19
2.2.2) Définir les plages horaires d’accès à Facebook ................................................................... 20
2.2.3) Règle pour le blocage de l’accès https à Facebook ............................................................. 22
2.3) Règles à définir dans le cas de plusieurs LAN ............................................................................. 23
3) Le filtrage Internet ......................................................................................................................... 24
3.1) Installation des paquets pour le filtrage Internet ...................................................................... 25
3.2) Configuration du serveur proxy ................................................................................................. 26
3.3) Configuration du filtrage ............................................................................................................ 27
3.3.1) Configuration générale du filtrage ...................................................................................... 27
3.3.2) Filtrage en fonction des horaires ........................................................................................ 30
3.3.3) Filtrage en fonction des adresses IP .................................................................................... 32
3.3.4) La page de redirection du proxy ......................................................................................... 33
3.3.5) Mise à jour automatique de la blacklist .............................................................................. 34
3.4) Les journaux du proxy ................................................................................................................ 35
4) Les VPNs ........................................................................................................................................ 35
4.1) VPN entre un pare-feu Pfsense et un pare-feu ipcop ................................................................ 35
4.2) VPN entre deux pare-feu Pfsense .............................................................................................. 35
4.3) VPN avec des clients « mobiles » à l’aide du logiciel ................................................................. 35
5) Mise en place d’une DMZ .............................................................................................................. 35
6) Les mises à jour de PfSense ........................................................................................................... 36
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 3
1) Installation et premiers paramétrages de Pfsense
1.1) Installation de PfSense
Ce document traite de l’installation de la version 2.0.1 de Pfsense (la dernière à la date de rédaction)
sur une nouvelle machine.
Tout d'abord, il faut se rendre sur le site http://www.pfsense.org afin de récupérer les images ISO à
graver sur CDs pour installer PfSense :
o pfSense-2.0.1-RELEASE-i386.iso.gz pour les Pcs anciens avec des processeurs ne gérant pas le 64 bits
o pfSense-2.0.1-RELEASE-amd64.iso.gz pour les Pcs avec des processeurs 64 bits
Une fois l'image gravée, on boot sur le CD et on arrive aux menus suivants :
Pressez « Entrée » pour démarrer sur l'option par défaut (1)
L’installation va se poursuivre un moment, avec un défilement de commandes, jusqu’à s’arrêter sur l’écran suivant :
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 4
Tapez la lettre I pour lancer l'installation (sinon on boot sur le live-cd Pfsense mais on ne l'installe pas)
Placez-vous sur « Accept these Settings » et tapez « Entrée »
NB : J’ai choisi de garder ces paramètres car mes nombreuses tentatives pour changer la langue se
sont révélées infructueuses.
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 5
Placez-vous sur « Quick/Easy Install » et tapez « Entrée »
Tapez « Entrée »
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 6
Choisissez la première option (pour les processeurs multi-cœurs)
L'installation est terminée. Tapez sur « Entrée » pour redémarrer la machine.
Enlevez le CD du lecteur.
1.2) Premiers paramétrages de Pfsense
L’installation terminée, il va désormais falloir effectuer quelques paramétrages afin de pouvoir
accéder au pare-feu depuis son interface web (la quasi-totalité de la configuration se fait via
navigateur web).
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 7
Si l’installation s’est bien déroulée, la machine démarre sur le nouveau système, et on doit obtenir
cet écran :
Le temps de chargement des divers paramètres du système d’exploitation peut être long, mais on
arrive ensuite à l’écran suivant :
Il est demandé s’il y a des VLANs à configurer. Ici, répondre non (à adapter selon votre cas bien
évidemment)
Ensuite, il va falloir paramétrer les cartes réseaux afin de correctement les attribuer. Le nommage
des différentes cartes étant parfois peu explicite, je vous conseille de préparer les câbles réseaux à
connecter (au moins ceux du réseau local (LAN) et celui relié à la «box» Internet » (WAN)).
En effet, PfSense pourra vous détecter automatiquement la bonne carte si vous branchez le câble au
moment opportun.
Par contre, ne branchez pas les câbles avant qu’on vous le demande !!
On arrive donc à l’écran suivant :
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 8
Tapez « a »pour déclencher la détection automatique (attention, le clavier est sûrement en qwerty !!).
Branchez le câble qui sera relié au WAN (Pfsense vous dira qu’il voit un lien s’activer (up)) puis validez
par « Entrée ». Répétez l’opération pour le câble LAN (et les éventuels autres).
Une fois la configuration des cartes effectuée, on arrive à un écran qui récapitule les différentes
cartes réseau et leur association :
Tapez « y » et validez par « Entrée »
A ce moment-là, Pfsense est accessible via son interface web sur l’adresse IP 192.168.1.1. Nous allons
donc la modifier pour l’intégrer à notre réseau et poursuivre la configuration.
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 9
On est donc devant l’écran suivant :
Tapez « 2 » puis « Entrée .Choisissez ensuite le numéro associé à la carte LAN et validez finalement
par « Entrée »
Une fois l’adresse IP et le masque de sous-réseau renseignés, il vous est demandé si vous vous voulez
« remettre » le configurateur web en http (il est en https d’origine).Répondre « y » (contrairement à la
capture d’écran) car « n » peut poser quelques soucis avec les configurations ultérieures.
NB : Il est possible de paramétrer également le(s) autre(s) carte(s) réseaux mais nous le ferons depuis
l’interface web.
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 10
A ce stade là, vous pouvez laisser pfsense tranquille, la configuration se fera depuis un PC du réseau
via un navigateur web.
Lancez un navigateur web, et dans la barre d’adresse, saisissez http://adresse-ip-pfsense/ puis
validez par « Entrée ». On arrive sur la page d’identification suivante :
Connectez-vous avec les identifiants suivants :
Login : admin
Mot de passe : pfsense
La première chose à faire est de modifier le mot de passe par défaut. Pour cela, il faut se rendre dans
l’onglet System/User Manager :
On clique sur le « e » pour éditer le profil de l’administrateur
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 11
NB : Sur chaque onglet, il existe deux icones : le « e » permettant d’éditer le paramètre et le « + »
permettant d’ajouter un paramètre.
Renseignez le nouveau mot de passe sur les deux lignes surlignées. Confirmez en cliquant sur « Save ».
Ensuite, il faut se rendre dans l’onglet « System/Advanced » et cocher la case suivante (en bas de la
page), ce qui permettra d’activer la connexion via SSH au pare feu :
Confirmez la modification en cliquant sur « Save ».
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 12
Puis, il faut configurer l’adresse IP du WAN. Pour cela, se rendre dans l’onglet Interfaces/WAN :
Dans cet onglet, renseignez l’adresse IP (avec l’adresse IP publique de votre fournisseur d’accès) avec
son masque de sous-réseau et l’adresse de la passerelle (cliquez sur « add a new one »). Validez bien
en cliquant sur « Save »
Enfin, il est nécessaire de paramétrer les DNS du fournisseur d’accès. Pour cela, se rendre dans
l’onglet : System/General Setup
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 13
Renseignez le hostname (nom donné à la machine), le(s) serveur(s) DNS ainsi que la Time Zone (qui
permettra de synchroniser le pare-feu avec un serveur de temps).
Vous pouvez également renseigner le domaine (pas obligatoire) mais en évitant de mettre « local ».
Validez en cliquant sur « Save »
NB : Sur cet onglet, vous avez la possibilité de changer le thème des pages de configuration de
pfsense.
Attention, à partir de ce moment-là, Internet
est accessible à toutes les machines du
réseau, sans restriction ni filtre !!
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 14
2) Les règles d’accès
Pfsense permet de réaliser un filtrage par protocole(s), port(s),…, sur chaque interface. Pour cela, il
faut paramétrer les règles dans l’onglet Firewall/Rules.
Les règles fonctionnent de manière hiérarchique. En effet, Pfsense va « lire » les règles de haut en
bas, et dès qu’il trouvera une règle s’appliquant au trafic, il l’appliquera. Par exemple, avec deux
règles, une bloquant le protocole https, et l’autre l’autorisant, Pfsense appliquera la première qu’il
rencontrera (la plus haute)
Ici, la règle appliquée est celle bloquant le https.
2.1) Paramétrer les règles de base
Par défaut, Pfsense bloque tout trafic sur l’interface WAN et autorise tout trafic du LAN :
Règles par défaut sur l’interface WAN
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 15
Les règles concernant le WAN ne doivent être modifiées que pour laisser passer du trafic entrant
(VPN, DMZ,..). Il ne faudra donc pas y toucher pour le moment.
Règles par défaut sur l’interface LAN
Afin de réaliser un « meilleur » filtrage, il est d’abord conseillé de bloquer tout trafic et d’ensuite
autoriser un à un les ports et/ou protocole.
Concernant les deux règles par défaut du LAN, il ne faut surtout pas désactiver la règle « Anti-
Lockout », qui permet de se connecter à l’interface web de Pfsense via un autre PC (sous peine de
devoir reconfigurer voir réinstaller Pfsense).
Par contre, la seconde règle est celle qui autorise tout le trafic. Il faut donc soit la désactiver, soit la
supprimer (je l’avais dans un premier temps désactivée car au besoin, j’avais juste à la réactiver pour
avoir de nouveau accès à Internet rapidement)
Pour la supprimer, cliquez sur la croix correspondant à la règle, et validez le message de confirmation
de suppression :
Cliquez sur la croix surlignée pour supprimer la règle
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 16
Pour uniquement la désactiver, cliquez sur la règle puis sur le bouton « e ». L’écran suivant arrive :
Cochez la case surlignée pour désactiver la règle. Validez en cliquant sur « Save ».
Ensuite, il faudra créer une règle qui bloque tout. En effet, comme cela, tout le trafic ne répondant
pas à une règle définie dans pfsense sera automatiquement bloqué par cette règle-ci.
Il est donc impératif de positionner cette règle en dernière position sur la liste de toutes les règles.
Cliquez donc sur le bouton « + »
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 17
Règle bloquant tout trafic provenant du LAN
A ce stade-ci, tout trafic depuis le LAN est bloqué.
Règles avec tout le trafic bloqué
Désormais, il va falloir créer une règle par port, protocole, … C’est-à-dire pour chaque besoin
spécifique.
A titre d’exemple, la règle autorisant le trafic http se créera de la manière suivante :
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 18
Règle autorisant le trafic http
Ensuite, pour plus de facilité, il est possible de cliquer sur le bouton « + » suivant pour créer un
« clone » d’une règle existante (pratique lorsque l’on crée des règles qui diffèrent uniquement sur le
port par exemple)
Vous trouverez donc pour vous aider, une liste des ports utiles au sein d’un EPL en annexe :
Annexe 1 : Liste des ports
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 19
Voici, à titre d’exemple, les règles en vigueur pour le réseau pédagogique du lycée de Montauban :
Règles en vigueur sur le réseau pédagogique du lycée de Montauban au 03 mai 2012
2.2) Bloquer l’accès au https de facebook
Avec la blacklist de Toulouse, tous les réseaux sociaux seront bloqués (voir chapitre 3, le filtrage
Internet). Mais, il persiste le souci de Facebook, toujours accessible via https. Il existe diverses
manières de bloquer cet accès (fichier host modifié, protocole https bloqué par défaut et réouvert
site par site,..) mais dans ce cas précis, comme facebook doit être autorisé sur certaines plages
horaires, la solution suivante a été adoptée :
2.2.1) Création d’un alias facebook
Il va falloir créer un alias pour les adresses IP publiques de facebook. Pour créer un alias, il faut se
rendre dans l’onglet Firewall/Aliases. Cliquer sur le « + » et donner les caractéristiques suivantes :
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 20
La liste des adresses IP publiques de facebook est assez longue, la voici ci-dessous :
Attention à bien respecter les masques de sous-réseau !
2.2.2) Définir les plages horaires d’accès à Facebook
Si vous souhaitez uniquement bloquer tout le temps l’accès à facebook, vous pouvez passer
directement au chapitre suivant : Règle pour le blocage de l’accès https à Facebook
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 21
Ensuite, comme les utilisateurs ont besoin de se connecter durant certaines plages horaires et que
pour se connecter, le protocole https est utilisé, il va falloir créer un calendrier pour ces plages
horaires. Pour cela, il faut se rendre dans l’onglet Firewall/Schedules. Cliquez sur le bouton « + » pour
ajouter un calendrier :
Dans cet exemple, un calendrier nommé horaires_cours va être créé. En cliquant sur « Add Time »,
une plage horaire, allant de minuit à 12h15, les lundis, mardis, mercredis, jeudis et vendredis, sera
créée.
Il va falloir définir ici toutes les plages horaires pendant lesquelles l’accès à Facebook sera bloqué.
Calendrier pour Facebook autorisé les mercredis après-midi (de 12h15 à 19h), les lundis, mardis et
jeudis de 12h15 à 13h30, les lundis et jeudis de 17h30 à 18h et les mardis de 17h30 à 19h.
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 22
Une fois toutes les plages horaires définies, cliquez sur « Save » pour enregistrer votre calendrier. Il
ne reste plus désormais qu’à définir la règle pour bloquer l’accès.
2.2.3) Règle pour le blocage de l’accès https à Facebook
Enfin, il faut créer une règle associée à cet alias. Pour cela, se rendre dans Firewall/Rules, puis cliquer
sur le « + ». La règle doit alors avoir les caractéristiques suivantes :
Règle pour bloquer le https de Facebook
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 23
Si vous souhaitez permettre l’accès au site pendant certaines plages horaires, vous devez en plus
complétez les paramètres suivants :
L’effet de « Schedule » est d’activer la règle pendant les plages horaires définis (ici horaires_cours) et
de la désactiver hors de ces horaires.
2.3) Règles à définir dans le cas de plusieurs LAN
Dans le cas où plusieurs LAN sont définis (par exemple, un réseau pédagogique et un réseau
administratif), il va falloir bloquer les accès entre ces deux réseaux. Pour cela, il va falloir créer une
règle sur chaque interface :
Règle de blocage sur l’interface du LAN Pédago
Règle de blocage sur l’interface du LAN Admin
Ci-dessous, le détail de la règle sur l’interface du LAN «Pédago ».
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 24
Détails de la règle de blocage sur l’interface du LAN Pédago
Ensuite, de la même manière, il vous sera possible de créer des règles en fonction des besoins de
communications entre plusieurs LAN (serveur web, partage de fichiers, d’imprimantes,…)
3) Le filtrage Internet
Il est nécessaire de tracer toutes les communications vers l’Internet au sein des établissements, et
pour cela, il va falloir installer des paquets additionnels à pfsense. Pour cela, il faut se rendre dans
l’onglet System/Package Manager.
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 25
L’onglet « installed Packages » décrit les paquets installés sur la machine et l’onglet « Available
Packages » ceux disponibles pour une installation.
3.1) Installation des paquets pour le filtrage Internet
Pour permettre de filtrer les accès à Internet, les paquets squid (pas squid3), squidGuard et
Lightsquid.
Pour installer un paquet, cliquez sur le bouton « + »
Une boite de dialogue demande confirmation
Puis, l’installation se déroule « toute seule ».
Une fois les trois paquets installés, passez à la configuration.
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 26
3.2) Configuration du serveur proxy
Afin de configurer le proxy, se rendre dans l’onglet Services/Proxy Server :
Paramètres à modifier pour configurer le serveur proxy
Une fois ces paramètres renseignés, l’accès à internet est inactif. En effet, il va falloir créer une règle
concernant le port utilisé par le serveur proxy (ici 3128).
Ensuite, il faut configurer le filtrage en lui-même.
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 27
3.3) Configuration du filtrage
3.3.1) Configuration générale du filtrage
Se rendre dans l’onglet Services/Proxy Filter :
Paramètres à modifier pour configurer le filtre proxy. La blacklist de l’université de Toulouse sera
utilisée. Son adresse pour pfsense est la suivante:
ftp://ftp.univ-tlse1.fr/blacklist/blacklists_for_pfsense.tar.gz
Ensuite, se rendre dans l’onglet « Blacklist ». La blacklist sera téléchargée afin d’être intégrée à
pfsense :
Cliquez sur le bouton « Download »
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 28
Une fois le téléchargement complété, se rendre dans l’onglet « Common ACL » et cocher les
éléments suivants :
Avec ces paramètres :
l’accès aux sites Internet directement avec les adresses IP sera bloqué
les moteurs de recherche ne retourneront pas de résultats pour certains types de
recherches
les demandes d’accès (autorisées ou non) seront journalisées.
Ensuite, en cliquant sur la flèche verte, le détail des différentes catégories de la blacklist sera
accessible :
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 29
Extrait du détail des catégories de la blacklist
Il conviendra donc ici de définir la stratégie générale d’accès aux différentes catégories de la blacklist
de Toulouse. Le détail de ces catégories est accessible à l’adresse suivante : http://cri.univ-
tlse1.fr/blacklists/ .
Attention toutefois à bien définir la dernière ligne (default acces) sur le paramètre « allow », sinon
l’accès à tous les sites sera impossible.
Une fois les accès définis, validez en cliquant sur « Save ».
NB : Il est possible que Pfsense ne prenne pas tout de suite en compte les modifications. Pour une
prise en compte plus rapide, désactiver puis activer le filtre en décochant puis cochant la case
suivante
Cliquez sur « Apply » et attendez que le service passe de « Started » à « Stopped » (et vice-versa)
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 30
A ce stade-là, le filtrage est opérationnel et identique pour tous, à tout moment de la journée. Il peut
être nécessaire de procéder à des réglages particuliers (en fonction des heures, des personnes,...).
3.3.2) Filtrage en fonction des horaires
Afin de pouvoir définir des règles de filtrages en fonction des horaires, il convient tout d’abord de
définir la ou les plages horaires. Pour cela, se rendre dans l’onglet « Times », puis cliquez sur le
bouton « + » afin d’ajouter une plage horaire :
Définition des horaires en dehors des périodes de cours
Une fois la plage horaire définie, se rendre dans l’onglet « Groups ACL ». Cliquez sur le « + » pour
créer une nouvelle ACL pour des règles de filtrages.
Il faudra définir les règles de filtrage qui s’appliqueront pendant les horaires définis précédemment
et celles qui s’appliquent en dehors.
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 31
Configuration d’une ACL en fonction des horaires
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 32
3.3.3) Filtrage en fonction des adresses IP
De la même manière qu’il est possible de créer des règles de filtrages en fonction de horaires, il est
possible de créer des règles en fonction des adresses IP. Il suffit de créer une nouvelle ACL :
Configuration d’une ACL en fonction des adresses IP
La notion importante concernant les ACL est que, comme pour les règles, pfsense va les appliquer en
fonction de leur « classement ». Par exemple sur la capture d’écran ci-dessous :
L’ACL « service-info » est appliquée en premier, l’ACL « défiltrer » est désactivée et l’ACL « hors-cours
est appliquée ensuite. Toute machine ne correspondant à aucune de ces ACL se verra appliquer les
règles de filtrage définies dans l’onglet « Common ACL »
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 33
3.3.4) La page de redirection du proxy
Une fois le proxy configuré, la page de redirection en cas de site bloqué est assez austère.
Extrait de la page de redirection
Si l’on souhaite modifier cette page, il convient alors de modifier le fichier suivant de pfsense:
/usr/local/www/sgerror.php
Pour une question de pratique, se connecter à l’aide du logiciel WinSCP (téléchargeable sur la page
suivante http://winscp.net/eng/download.php ).
Copiez le fichier depuis pfsense sur votre poste. Ainsi, vous pourrez faire une copie de sauvegarde du
fichier d’origine afin de commencer les modifications.
NB : Il est possible de modifier le fichier directement depuis le logiciel WinSCP.
Il est possible de modifier de nombreux paramètres, mais, afin d’afficher une page sans les codes
erreurs, le fichier a été modifié de la manière suivante :
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 34
Ce qui donne la page de redirection suivante :
Page de redirection modifiée
IMPORTANT : une fois votre page correctement configurée, faites une copie de sauvegarde du fichier
sgerror.php. En effet, lors des mises à jour de squid et/ou squidguard, la mise à jour remplace le
fichier par le fichier « d’origine » !
3.3.5) Mise à jour automatique de la blacklist
Sous pfsense, il n’existe pas de possibilité par défaut pour mettre à jour la blacklist (si ce n’est se
rendre manuellement dans l’onglet Proxy Filter/Blacklist et cliquer sur le bouton download). Afin
d’automatiser la mise à jour, il est nécessaire d’effectuer quelques paramétrages.
Tout d’abord, lorsque Pfsense met à jour la blacklist, il crée un script dans le dossier tmp. Il va falloir
récupérer ce script. Pour cela, à l’aide de WinSCP, copier le fichier squidGuard_blacklist_update.sh
dans un dossier (il a été choisi de le copier dans le dossier etc, il est tout à fait possible de le copier
ailleurs voir de créer un dossier).
Une fois le fichier copié, rajoutez les lignes ci-dessous dans le fichier /cf/conf/config.xml :
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 35
Lignes à ajouter pour la mise à jour automatique de la blacklist (ces lignes définissent en fait
l’exécution du script copie dans le dossier etc tous les jours à 23h30)
3.4) Les journaux du proxy
A FAIRE OU EN COURS D'ECRITURE
4) Les VPNs
4.1) VPN entre un pare-feu Pfsense et un pare-feu ipcop
Une documentation permettant la mise en place d’un VPN entre un ipcop et un pfsense existe déjà.
Elle est accessible en Annexe 2
NB : Bien que cette méthode soit parfaitement fonctionnelle, une méthode à base de certificats
serait plus sécurisée. Des tests sont en cours afin de permettre une telle méthode. Si ceux-ci
aboutissent, la documentation sera mise à jour.
4.2) VPN entre deux pare-feu Pfsense
A FAIRE OU EN COURS D'ECRITURE
4.3) VPN avec des clients « mobiles » à l’aide du logiciel
A FAIRE OU EN COURS D'ECRITURE
5) Mise en place d’une DMZ
A FAIRE OU EN COURS D'ECRITURE
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 36
6) Les mises à jour de PfSense
A FAIRE OU EN COURS D'ECRITURE
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 37
ANNEXES
Annexe 1 : Liste des ports « utilisés »au sein d’un réseau
Ports & Protocoles Services
TCP : 80 HTTP (pas obligatoire si proxy transparent)
TCP : 110 POP3
TCP : 25 SMTP
TCP : 443 HTTPS
TCP & UDP : 22 SSH
TCP & UDP : 21 FTP
TCP & UDP : 119 NNTP
TCP : 143 IMAP
TCP & UDP : 123 NTP
TCP : 510 FirstClass
TCP : 81 Nocia/Page de redirection SquidGuard
TCP : 1717 Module Java d'EVA
TCP : 1494 Luciole
UDP : 10000 Magellan
TCP : 264 Prisme / EPICEA
TCP : 256 Prisme / EPICEA
TCP : 709 Prisme / EPICEA
UDP : 2746 Prisme / EPICEA
UDP & TCP : 500 (Isakmp) Prisme / EPICEA / Magellan
TCP : 389 (LDAP) Prisme / EPICEA
TCP & UDP : 8080 Webcache
TCP & UDP : 8081 tproxy
TCP : 18231, 18232, 18233, 18234 Checkpoint
TCP & UDP : 53 DNS
TCP & UDP : 800 Proxy Squid
TCP : 1863 MSN Messenger
TCP: 1495 Citrix
TCP: 2598 Citrix
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 38
Annexe 2 : Mise en place d’un VPN entre un ipcop et un pfsense
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 39
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 40
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 41
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 42
Guide PfSense 2.0
Michel Bonnefond – Version 0.1 du document Page 43