/Security

Gestion des flux, Proxy, Reverse Proxy, Détection d'intrusion, GPO DNS

Année 2020 - 2021

L'objectif de ce dossier technique est de mettre en place une architecture similaire à celle-là :

DOSSIER TECHNIQUE

Durée :

32h

Introduction :

Sécurité des systèmes d’informations (Linux/Windows)
Établir les bases nécessaires à la compréhension de la problématique (concepts, terminologie, classification)
Dresser un panorama global des risques et des solutions
Illustrer ces concepts et solutions par des réalisations pratiques
Les positionner dans le contexte du monde actuel via des études de cas
Comprendre ce qu'est la PRA (Plan de Reprise d'Activité) et la redondance pour la continuité des services

Solutions à mettre en œuvre :

Le firewall devra remplir les rôles de : Gestion des flux, Proxy, Reverse Proxy, Détection d'intrusion
Le contrôleur de domaine devra permettre la gestion du DNS local et des GPO qui seront appliquées au poste client
La gestion des flux entrants et sortants devra être gérée par le firewall, seuls les ports 80 et 443 seront autorisés
Le Proxy lié au service SquidGuard, devra permettre la gestion du blocage de noms de domaines / url etc en sortie
Le Reverse Proxy devra permettre l'accès au travers d'un nom de domaine unique et de ses 2 sous-domaines à 2 Virtual Host (ports 80 et 81) hébergés sur le serveur Web, le tout devra être chiffré sur le protocole https côté WAN du firewall
La configuration du Proxy sera poussée sur les navigateurs Edge et Firefox des postes clients par GPO

Mise en place d'une infrastructure comprenant :

  • 1 firewall

  • 1 serveur Web

  • 1 contrôleur de domaine

  • 1 client

Installation + configuration de l'ISO pfSense

Create a new VM → Custom → workstation 16.x

I will install the operatin system later pour empecher la creation de fichiers de reponses automatiques

FreeBSD 12-64 bits → version

Nb process → 1

Nb core → 2 / 4

Memory of this virtual machine → 512 MB

Network type → NAT

Disk → 40G → store virtual disk as a single file

On ajoute 2 nouvelles cartes réseaux secu-DMZ / secu-LAN

On fait une snapshot

On ajoute l'iso pfsense au CV/DVD puis on exec

On accepte, choix langue, choix BIOS puis on installe

On config l'IP du WAN sur 192.168.5.54 sur la passerelle 192.168

On configure la 3^e^ carte réseau non reconnu (em2) en tant que LAN

On définit le LAN sur l'adresse 192.168.15.54

On démarre une VM Client que l'on met sur le segment secu-LAN

On modifie l'adresse IP :

Voulez-vous autoriser les autres pc de ce réseau a détecter votre pc → oui

Pour accéder à l'interface Web de pfSense on se rend dans son navigateur à l'adresse 192.168.1.54

Les identifiants par défaut de pfSense : id : admin / mdp : pfsense

On va dans firewall → Rules → OPT1(em2)

On active l'interface (enable)

On se retrouve avec nos 3 cartes

Voici la configuration rules de LAN pour l'instant

On désactive les règles par défaut sur l'interface LAN

Cependant on laisse activer la Rule Anti-lockout Rule car elle autorise l'adresse ip du firewall l'accès au port 443 et 80. Elle autorise n'importe quel client sur l'interface LAN a accéder à l'interface web à partir des ports 443 et 80.

On crée plusieurs règles qui permettront la sortie de la zone LAN vers : la résolution DNS, le PING, http, https vers "tout"

Les règles sont lues de haut en bas, on applique donc la règle DNS en haut de la liste

On ajoute donc 4 Rules en cliquant sur le bouton « add »

  • Le protocole ICMP (test : ping 8.8.8.8 en cmd)

  • Le port 53 pour la résolution de noms (DNS)

  • Le port 80 et 443 (http/https)

Règle qui permet la sortie LAN vers la résolution DNS :

Règle qui permet la sortie LAN vers le PING

Règle qui permet la sortie LAN vers le HTTP & l'HTTPS

On télécharge une iso Ubuntu mini

On la connecte au segment LAN-DMZ qui correspond à notre réseau pour le serveur web

On configure le fichier 01.netcfg.yaml dans etc/netplan en désactivant le DHCP (pas de DHCP pour les serveurs). On lui attribue une adresse IP, une gateway et un DNS

Pour autoriser l'accès au port 81 du serveur Web, on doit spécifier en plus l'écoute au port 81 directement dans le fichier port.conf d'Apache

On applique les changements avec systemctl restart apache2

Pour pouvoir accéder à Internet, il faudra dans pfSense ajouter une nouvelle règle :

Firewall → Rules → OPT1 : protocol : any ; from any to any

Dans le serveur web on applique les changements : sudo netplan apply

On met tout à jour avec apt-get update

Nous allons désormais installer Apache2 pour mettre en place notre serveur

On exécute apt install apache2

On configure le fichier de conf dans /etc/apache2/sites-available

On y ajoute le port et le ServerName.

On fait de même pour site1.contoso.web sur le port 81

On interdit l'accès à la zone DMZ vers la zone LAN grâce à la règle suivante que l'on applique à partir du LAN vers OPT1 et on autorise les requêtes du port 80,53, 443 ainsi que les requête ICMP

On ajoute une règle qui permettra l'accès depuis la zone LAN aux ports 80 et 81 du serveur Web

Pour le port 80 :

Et pour le port 81 :

Nous allons désormais installer et configurer le service SquidGuard qui va nous permettre la gestion du blocage de noms de domaine et URL

Il faudra tout d'abord installer les packages « squid » et « squidGuard »

On se rend dans System → Package Manager → Availables Packages

On accède ensuite au SquidProxyServer dans l'onglet général pour l'activer.

On active le SquidGuard Proxy Filter pour pouvoir filtrer certains URL.

Pour gérer le blocage d'URL à partir d'une blacklist, on se rend dans « Services → SquiGuard Proxy Filter → Blacklist »

Activer « Enable Blacklist » et insérer dans BlackList URL: http://dsi.ut-capitole.fr/blacklists/download/blacklists_for_pfsense.tar.gz

Dans l'onglet « Blacklist », on clique sur « Download » pour télécharger la liste de filtrage.

Dans l'onglet « Common ACL », on clique sur « Target Rules List » sur le « + » puis on sélectionne les catégories à bloquer et on sélectionne « allow » pour « default access [all] »

Nous allons devoir créer une GPO pour configurer le proxy de Mozilla Firefox et Microsoft Edge

Pour Microsoft Edge on se rend dans les options de proxy du navigateur :

Puis nous allons télécharger et installer des stratégies liées au navigateur Firefox :

Pour cela, nous nous rendons sur le site : https://github.com/mozilla/policy-templates/releases et télécharger le fichier Policy_templates_v2.10.zip

Ensuite nous allons dans C:\Windows\ et nous copions le dossier PolicyDefinitions et nous le collons dans D:\ADDS\SYSVOL\domain\Policies\PolicyDefinitions

Puis nous copions les dossiers fr-FR, en-US, les fichiers mozilla.admx et firefox.admx de l'archive dans le dossier PolicyDefinition

Dans les paramètres de notre stratégie de groupe, le dossier Mozilla apparait, on peut alors activer les paramètres de proxy :

Nous allons ensuite créer une GPO qui va gérer le "push" du certificat racine de pfSense sur les postes clients

Question légalité : est-il acceptable d'intercepter le trafic https ? Quel est le nom et le fonctionnement de cette méthode ?

Il est possible de contrôler le contenu des données échangées entre le client et le serveur afin de s'assurer que les flux HTTPS ne sont pas utilisés pour faire sortir du système d'information des données confidentielles. Cependant le contrôle de données n'est pas toujours utilisé de cette manière. Certaines personnes utilisent ce fonctionnement pour récupérer des informations personnelles etc.

Le fonctionnement de cette méthode se nomme : man-in-the-middle.

Nous allons désormais configurer l'utilisation de Squid sur les postes clients avec WPAD.

Un serveur Web peut être monté sur la zone LAN, il fonctionnera sur le port 80 et hébergera à sa racine un fichier « wpad.dat ».

Tout d'abord il faut créer un serveur web avec UWAMP qui hébergera ce fichier puis démarrer le serveur

Nous allons maintenant créer une règle DNS pour servir le fichier à l'adresse : wpad.contoso.adds

On crée donc un hôte dans la zone de recherche directe contoso.adds, avec l'extension wpad pointant sur notre serveur.

Il faut désormais vider le regedit. On lance l'invite de commande en tant qu'administrateur et on exécute la commande suivante :

  • Dnscmd /info /globalqueryblocklist

Puis on supprime les valeurs du regedit à l'emplacement :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters/GlobalQueryBlockList

Pour vider le cache, on lance l'invite de commande en administrateur et on exécute la commande suivante :

  • ipconfig /flushdns

Nous allons désormais créer un fichier wpad.dat dans lequel nous allons définir et configurer le proxy.

Ce fichier sera servi par le serveur Uwamp et permettra de configurer les navigateurs clients

Nous allons maintenant configurer le Reverse Proxy.

Pour se faire, nous devons rediriger les sous domaines site0.contoso.web et site1.contoso.web vers le serveur web respectivement sur les ports 80 et 81.

Nous allons activer Squid Reverse Proxy sur l'interface WAN.

Pour ajouter nos 2 sites, il faut avant tout les ajouter dans « Web Servers » en précisant l'IP de destination de notre serveur web à l'adresse IP : 192.168.10.11 et les ports affectés : 80 puis 81

Nous allons également utiliser des alias pour ajouter nos 2 serveurs dans des groupes et leur spécifier une URL dans Mappings afin qu'il continue de réaliser son rôle.

Nous devons aussi rediriger les requêtes que l'on va recevoir.

Nous modifions donc le fichiers hosts dans /etc/hosts :

Il faut maintenant activer le « reverse proxy http » sur le port 80. Pour cela il faut modifier le port minimum qui est demandé pour le reverse proxy. Il faut donc ajouter une nouvelle « Tunnables » nommé « net.inet.ip.portrange.reservedhigh » et mettre la valeur à 0 

Pour tester le Reverse Proxy, nous allons accéder a « C:\Windows\System32\drivers\etc ».

Nous allons déplacer le fichier hosts en dehors de son dossier car nous n'avons pas les droits d'édition, et nous allons rajouter à l'intérieur l'ip de notre serveur web. Il faudra ensuite le remplacer par le fichier original présent dans le dossier.

On peut désormais ping www.contoso.web sans problème et accéder à nos sites web sans problème.

Problèmes rencontrés :

Il est primordial de vider le cache avec la commande « ipconfig /flushdns » après avoir supprimé les valeurs du regedit afin que les changements soient pris en compte.