Un proxy Open Source avec PfSense

Introduction

Un serveur mandataire ou proxy (de l’anglais) est un serveur informatique qui a pour fonction de relayer des requêtes entre un poste client et un serveur. Les serveurs mandataires sont notamment utilisés pour assurer les fonctions suivantes :

  • mémoire cache ;
  • la journalisation des requêtes (« logging ») ;
  • la sécurité du réseau local ;
  • le filtrage et l’anonymat.

L’utilité des serveurs mandataires est importante, notamment dans le cadre de la sécurisation des systèmes d’information.

Ce tuto va vous permettre de créer un proxy avec filtrage et logging.
Nous allons utiliser PfSense comme base de travail.
A l’installation de base, nous allons ajouter les packages :

  • Squid
  • SquidGuard
  • LightSquid

Prérequis

  • Une machine x86 physique ou virtuelle avec une interface réseau
  • un serveur DNS
  • un serveur DHCP
  • un firewall

Installation

Je vous invite à télécharger l’ISO de PfSense sur le site : https://www.pfsense.org/download/

PfSense peut être installé sur une machine physique ou sur une machine virtuelle.
Pour ma part, il sera installé sur VWMware ESXi 6.5.

A présent, nous allons pouvoir passer via l’interface Web de management de PfSense via http://<IP>
Pour Configurer PfSense et installer les packages nécessaires au fonctionnement du proxy.

Configuration de Squid

Configuration de SquidGuard

SquiGuard est un « add-on » pour Squid qui va vous permeetre d’effectuer du filtrage basé sur des blacklists/whitelists.

J’utilise la blacklist de L’Université de Toulouse.
https://dsi.ut-capitole.fr/blacklists/

Configuration de LightSquid

LightSquid va vous permettre de faire du reporting sur les accès Squid.

Configuration manuelle du proxy

Les écrans ci-dessous sont propres à Linux

Vous avez 2 possibilités:

  • La configuration manuelle du proxy
  • par l’ajout de l’URL du serveur WEB hébergeant votre fichier de configuration

Configuration automatique du proxy

Fichier PAC et WPAD

Introduction

Pour déployer automatiquement l’adresse de votre proxy, nous allons créer un un fichier proxy.pac.

Extrait de Wikipédia
https://fr.wikipedia.org/wiki/Fichier_.PAC
Le navigateur va chercher ce fichier PAC en priorité. Les URL qu’il contient peuvent être configurées manuellement, ou déterminées automatiquement par le WPAD (Web Proxy Autodiscovery Protocol (en)1).

Un fichier PAC contient une fonction en JavaScript appelée « FindProxyForURL(url, host) ». Cette fonction retourne une chaîne de caractères avec une ou plusieurs spécifications (règles) sur la façon d’y accéder. Ces règles amènent le navigateur web à utiliser un serveur proxy particulier ou à se connecter directement.

Prérequis

Un fichier proxy.pac doit être déployer à travers un serveur web.
Perso, j’utilise un serveur Apache.
Voici un lien pour vous aider à installer un serveur Apache sous Ubuntu :

https://www.digitalocean.com/community/tutorials/how-to-install-the-apache-web-server-on-ubuntu-20-04-quickstart-fr

Pour l’extension .pac soit prise en charge par votre serveur Web Apache, il faut ajout un fichier .htaccess contenant :

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

Dans le répertoire contenant votre fichier proxy.pac

Créez, également, un symbolic link wpad.dat vers votre fichier proxy.pac. Exemple:

ln -s /var/www/html/proxy.pac /var/www/html/wpad.dat

Exemple de fichier proxy.pac

function FindProxyForURL(url, host)
{
   //Les adresses privées n'utilisent pas le proxy
   if (isInNet(host, "192.168.0.0", "255.255.0.0")) {
      return "DIRECT";
      if (isInNet(host, "10.0.0.0", "255.0.0.0")) {
      return "DIRECT";
   // les urls suffixées domain.local n'utilisent pas le proxy
   if (shExpMatch(url, "*.domain.local//*"))
      return "DIRECT";
   } else {
      // définition du proxy pour l'http et l'https
      if (shExpMatch(url, "http:*")) 
         return "PROXY 172.16.1.153:3128" ;
      if (shExpMatch(url, "https:*"))
         return "PROXY 172.16.1.153:3128" ;
      return "DIRECT";
   }
}

Propagation via DNS

Remarque: La propagation de la configuration wpad/pac via DNS/DHCP n’est valable que pour des machines Windows.

Pour propager votre configuration proxy via un serveur DNS.
Vous devez créer une entrée wpad soit un A pointant vers l’IP du serveur web hébergeant le fichier wpad/pac ou un CNAME pointant vers le FQDN du serveur web hébergeant le fichier wpad/pac.

wpad.mle.	IN	A	172.16.1.1

ou

wpad.mle.	IN	CNAME	pacserver.mle.

Propagation par DHCP

La propagation par DHCP de la configuration WPAD est principalement supporté par Windows.

Vous devez configurer l’option 252 qui pointera vers l’URL de votre fichier wpad.dat. Exemple :
http://pacserver.mle/wpad.dat

Références

http://findproxyforurl.com
https://fr.wikipedia.org/wiki/Fichier_.PAC
https://www.pfsense.org/

Paella au barbecue

Préparation : 30 min
Cuisson : 2 heures

Ingrédients

Pour 4 personnes

  • 2 poivrons
  • 2 oignons rouges
  • 2 gousses d’ail
  • 4 hauts de cuisses de poulet
  • 250 gr de palourdes avec coquilles
  • 400 gr de moules avec coquilles
  • 100 gr de haricots verts
  • 100 gr de petits pois
  • 4 belles gambas
  • Un chorizo fort
  • 400 gr de riz à paella
  • Safran
  • Paprika
  • Huile d’olive
  • Fond de poisson
  • Sel et poivre
  • Un barbecue
  • Une poêle à paella

La recette

  1. Faire blanchir vos petits pois et haricots pendant 2-3 min dans une eau bouillante salée. Réserver.
  2. Mettre les moules dans un casserole avec un filet d’huile d’olive et faites les s’ouvrir. Réserver.
  3. Pratiquer la même opération pour les palourdes.
  4. Couper les poivrons en carrés de 2 cm
  5. Dans la poêle à paella bien chaude, verser de l’huile d’olive et faites bien dorer les poivrons jusqu’à ce qu’il deviennent tendres. Réserver.
  6. Émincer les oignons et l’ail, couper le chorizo en petits cubes. Faites revenir le tout dans la poêle à paella. Réserver.
  7. Colorer la peau de vos hauts de poulet en approchant vos braises le plus près possible de la poêle. Ensuite laisser cuire pendant 10-15 min en éloignant la grille de la poêle. Réserver.
  8. Placer les oignons, ail, chorizo et poivrons dans la poêle, verser le riz et mélanger pour bien tout enrober. Ajouter le poulet, le safran et le paprika.
  9. Verser le fond de poisson pour bien inhiber le riz. Porter à ébullition et ensuite laisser cuire en diminuant la température (15-20 min). Goûter régulièrement le riz. Lorsqu’il est presque cuit, ajouter les haricots, petits pois, les moules, les palourdes et les gambas.
  10. Couvrir la poêle pendant 5-10 min avec le couvercle de votre barbecue ou du papier aluminium.
  11. Servir bien chaud.

Naans

Préparation : 10 min
Cuisson : 6 min / pain

Ingrédients

Pour 6 naans

  • 300 gr de farine
  • 1 yaourt nature
  • 1 pincée de sel
  • 1 sachet de levure chimique
  • 1 c à s d’huile d’olives
  • de l’eau tiède
  • du fromage rapé

La recette

  1. Mélanger la farine avec le sel, la levure, l’huile et le yaourt.
  2. Travailler la pâte et ajouter si besoin un peu d’eau tiède afin d’obtenir une pâte molle. Laisser reposer 10 minutes.
  3. Séparer la pâte en 6 parts que l’on aplatit en forme de galette.
  4. Parsemer généreusement de fromage râpé et redonner un ou deux tours à la pâte (c’est à dire la replier et la repasser au rouleau).
  5. Cuire dans une poêle épaisse à revêtement anti-adhésif pendant 3 minutes de chaque côté jusqu’à ce que la galette soit bien gonflée.
  6. Servir très chaud.


Brioche à la machine à pain

Ingrédients

Pour 6 personnes

  • 490 g de farine
  • 3 oeufs
  • 130 g de beurre
  • 100 ml de lait
  • 4 c. à s. de sucre
  • 11 gr de levure sèche

Préparation

Mélanger tous les liquides ensemble avec le sel (beurre fondu, lait, oeufs).
Mélanger toues les poudres ensemble (Farine, sucre, levure).
Mettre en premier dans la machine à pain les liquides et ensuite les poudres.
Régler la Machine à pain pour pain sucré.

Résolution des lenteurs d’impression sous Windows : Causes et Solutions

Si vous faites face à des lenteurs inexplicables entre le moment où vous lancez une impression et le moment où elle sort enfin de l’imprimante, voici quelques pistes de réflexion et des solutions à envisager.

Il y a près de dix ans, dans l’entreprise où je travaillais à l’époque, nous avons rencontré ce même problème. Un délai de près de 10 minutes était observé entre le moment où l’on lançait une impression et son arrivée effective sur le papier. Ce genre de problème peut être frustrant et difficile à diagnostiquer, d’autant plus lorsqu’il n’y a aucun message d’erreur explicite.

Première enquête : Recherche des causes potentielles

Lors de nos premières investigations, nous avons exploré plusieurs pistes qui nous semblaient évidentes à l’époque. Nous avons vérifié la performance du réseau, du serveur, des pilotes d’imprimante, et d’autres facteurs externes. Malheureusement, rien ne nous a permis de résoudre le problème.

Face à ces échecs, nous avons décidé de faire appel à notre support externe, un Microsoft Gold Partner. Ils ont effectué les mêmes vérifications que nous et ont proposé une série de recommandations pour résoudre le problème, classées par ordre de priorité :

  1. Réinstaller tous les pilotes d’imprimante sur le serveur.
  2. Augmenter la mémoire du serveur.
  3. Réinstaller les services d’impression sur le serveur.
  4. Réinstaller les pilotes d’imprimante sur les postes clients.
  5. Supprimer les imprimantes et les réinstaller sur le serveur.
  6. Installer un nouveau serveur et repartir d’une installation propre.

Cependant, comme le serveur disposait déjà de 16 Go de mémoire vive, nous avons arrêté d’exécuter ces étapes après le deuxième point.

La solution trouvée dans un forum obscur

C’est alors qu’en fouillant dans un forum obscur (non officiellement lié à Microsoft), j’ai fini par trouver la réponse qui allait résoudre notre problème. Un indice, pourtant crucial, nous avait échappé : le répertoire de travail du serveur d’impression, situé à %windir%\system32\spool\Printers, est crucial pour le bon fonctionnement du système d’impression.

Le phénomène des jobs d’impression fantômes

Le serveur d’impression Windows gère les jobs d’impression dans ce répertoire de travail. Si, pour une raison quelconque, le spooler d’impression rencontre un problème ou se plante, des « jobs d’impression fantômes » peuvent rester dans ce répertoire. Ces jobs sont des fichiers qui ne sont pas traités correctement et qui continuent à occuper de l’espace, ce qui peut entraîner des retards importants lors de l’impression suivante.

Lorsque vous redémarrez le spooler d’impression, ces fichiers fantômes ne sont pas automatiquement supprimés. Ainsi, à chaque nouvelle impression, Windows tente de gérer ces jobs obsolètes avant de traiter le job valide, ce qui crée un délai d’attente supplémentaire.

Le remède : Réinitialisation du spooler d’impression

Pour résoudre ce problème, il est nécessaire d’arrêter le service du spooler d’impression, de supprimer les fichiers obsolètes, puis de redémarrer le spooler. Voici les étapes à suivre :

  1. Arrêter le spooler d’impression :
    • Ouvrez un terminal en mode administrateur (invite de commandes).
    • Tapez la commande suivante pour arrêter le service spooler :
      net stop spooler
  2. Supprimer les fichiers de job d’impression fantômes :
    • Dans le terminal, tapez la commande suivante pour supprimer tous les fichiers dans le répertoire de travail du spooler d’impression :
      del %windir%\system32\spool\printers\* /q
  3. Redémarrer le spooler d’impression :
    • Enfin, redémarrez le spooler d’impression avec la commande suivante :
      net start spooler

Conclusion

Cette solution, qui m’a permis de résoudre le problème pour la première fois sous Windows 2003, fonctionne toujours sous des versions plus récentes de Windows, comme Windows Server 2008 R2.

Le problème que vous rencontrez pourrait bien être lié à ce même phénomène, donc avant de vous lancer dans des solutions plus complexes et coûteuses, je vous recommande de suivre ces étapes simples pour réinitialiser le spooler et éliminer les jobs obsolètes.

J’espère que cet article vous sera utile et vous fera gagner du temps dans la résolution de ce type de problème. N’hésitez pas à partager votre expérience ou à poser des questions dans les commentaires si vous rencontrez des difficultés.

Pâtes aux scampis sauce aux épices cajun flambé au rhum aux piments

Préparation : 20 min
Cuisson : 45 mIn

Ingrédients

Pour 4 personnes

  • 600 gr de pâtes longues
  • 800 gr de scampis
  • 3/4 de litre de sauce tomate
  • 3 tomates fraîches
  • 1 poivron long rouge
  • 1 poivron long jaune
  • 1 boîte de concentré de tomate
  • 1 échalotes
  • 2 gousse d’ail
  • un mélange d’épices cajun
  • une rasade de rhum macéré aux piments
  • crème fraîche
  • Huile d’olive
  • sel et poivre

La recette

Émincer l’échalote et l’ail.
Épépiner les tomates et les couper en dés.
Vider les poivrons et les couper de tronçons.
Faire sauter les scampis dans de l’huile d’olive et réserver.
Faire sauter l’échalote et l’ail dans l’huile d’olive avec les épices cajun.
Ajouter la rasade de rhum pimenté et flamber.
Faire fondre les tomates.
Ajouter les poivrons et faire revenir quelques minutes.
Ajouter le concentré de tomate.
Ajouter la sauce tomate.
Laisser mijoter pendant 15-20 min et pendant ce temps, faire cuire les pâtes.
Faire réchauffer les scampis dans la sauce.
Ajouter la crème.
Ajuster en sel/poivre/épices.
Mélanger avec les pâtes et servir.

Moules aux saveurs asiatiques

Ingrédients

  • 1 kg de moules de Zélande
  • 1 oignons doux
  • 2 branches de céleri vert
  • 1 carotte
  • 1/2 poivrons rouge long
  • 1 bâton de citronnelle
  • 1 petit morceau de gingembre
  • 10 cl de lait de coco
  • 1 gousse d’ail
  • quelques brins de coriandre
  • 1 pointe e curry rouge thaï
  • beurre, sel, poivre

Recette

Faire dégorger les moules dans l’eau claire pendant 2h, renouveler l’eau 2 à 3 fois.
Émincer l’oignon.
Éplucher et émincer le gingembre
Écraser la gousse d’ail.
Couper le 1/2 poivron en fins tronçons.
A l’aide d’un économe, faire de fine lamelle de carotte.
Tailler les branches de céleri en fin dés.
Faire revenir l’oignon et l’ail dans le beurre avec le curry.
Ajouter le reste des légumes et faire cuire à feu vif pendant 3 à 4 min.
Ajouter les moules.
Lorsque le moules commencent à s’ouvrir, laisser cuire encore 3 à 5 min (selon votre goût). Après 2 min, ajouter le lait de coco.
Servir avec de pain.

Conseil vin

Un gros plant nantais
Un musat sec