Labo virtuel personnel – deuxième partie : installation de pfSense

Cette machine virtuelle pfSense va être le pivot et le cœur du réseau de notre environnement. On s’arrête ici à son installation ; dans des tutos ultérieurs nous pourrons découvrir toutes les fonctionnalités de cette distribution reconnue et spécialisée dans la gestion et la protection des réseaux.

Image ISO d’installation

Première chose, il faut récupérer l’image ISO d’installation de pfSense CE (Community Edition), dernière version, pour architecture x64 (AMD64).

NB : Il ne faut pas choisir l’image pour clé USB dont le fonctionnement est différent ; on pourra en revanche utiliser ce format pour un déploiement sur une machine physique notamment.

L’URL de téléchargement est : https://www.pfsense.org/download/

Edit 16/05/2024 : Netgate semble proposer désormais de télécharger un installateur universel pfSense. J’ai essayé, ça n’a pas fonctionné (pendant l’installation, validation impossible). En attendant du nouveau, il est toujours possible de récupérer les installateurs classiques (offline) sur ces deux miroirs :

L’image récupérée est pfSense-CE-2.7.2-RELEASE-amd64.iso.gz Il est recommandé de vérifier la signature SHA256 de l’image, à l’aide d’un outil comme hashcheck par exemple :

Cette image est compressée au format gzip (.gz), il faut un outil tel que 7zip pour en extraire le fichier image ISO final :

Création et configuration de la VM

Depuis VirtualBox, taper CTRL+N (ou menu Machine / Nouvelle), nommer la VM pfSense et choisir le type FreeBSD x64 (pfSense est en effet une distribution de FreeBSD) ; on utilise ici le mode Expert pour la configuration :

On lui octroie ensuite dans les onglets « hardware » et « Hard Disk » ce qui doit correspondre aux propositions par défaut :

  • 1024 Mio de RAM,
  • 1 cœur CPU
  • Un disque dur (type VDI) dynamiquement alloué de 16 Gio.
  • On ne choisit pas l’option EFI (même si celle-ci est supportée par pfSense)
Choix de la RAM allouée et du nombre de cœurs CPU

Un petit clic sur « Finish » et notre machine est maintenant créée, nous allons finalier la configuration, puis lancer l’installation.

Configuration de la VM

Cliquer sur le bouton « Configuration » pour faire apparaître les paramètres de la VM. On désactive les ressources audios parfaitement inutiles :

Les ports série et USB doivent être désactivés, car ils ne sont pas plus utiles pour notre cas :

Configuration de l’interface réseau WAN

Dans la rubrique « réseau », nous allons configurer deux interfaces. Une première correspond à la partie WAN de pfSense, l’accès à Internet, que l’on obtient par pontage (bridge) d’une interface existante sur la machine hôte, soit par le mode « NAT » proposé par VirtualBox, qui permet d’ajouter une isolation supplémentaire par rapport au réseau réel.

Si l’on souhaite par la suite rendre le pfSense « visible » sur Internet, il est préférable de choisir le mode bridge. Dans ce mode, il faudra sélectionner l’interface physique associée (et on préfèrera une interface filaire plutôt que Wi-Fi).

Le mode NAT permet quant à lui d’accéder à Internet sur des machines hôtes qui sont sur un réseau assez sécurisé : en effet, le pare-feu en amont ne voit que notre machine hôte, qui « partage sa connexion » avec la VM.

Ici, nous allons utiliser le mode NAT, qui permet en plus de ne pas avoir à choisir l’interface physique parente. Il est toujours possible bien sûr de modifier ensuite pour utiliser le mode pont (bridge) :

L’interface 1 de la VM est connectée en mode NAT. Avec VirtualBox, on ne dispose que de quatre interfaces réseau maximum.

Configuration de l’interface LAN

La seconde interface réseau correspond au côté LAN de pfSense ; on l’associe à un réseau virtuel interne (qu’on appellera donc LAN) sur lequel nous pourrons connecter nos autres équipements virtuels. Notons qu’il est possible ici de visualiser (et même modifier) l’adresse MAC de l’interface virtuelle ; ceci peut être très utile au moment de configurer le système qui sera installé sur la VM :

Installation de pfSense

La machine est prête, on clique sur OK, et on la démarre :

Et après la phase de démarrage sur l’image ISO d’installation, l’écran d’accueil s’affiche :

Pour notre installation plutôt standard, il suffit d’accepter les options proposées par défaut.

NB :  Il n’est pas utile de configurer un clavier français lors de l’installation, car au démarrage suivant, le clavier est de nouveau en mode QWERTY (à moins que ce bug ne soit corrigé dans le futur)

Attention à bien sélectionner le disque de destination avec la barre d’espacement :

On sélectionne l’emplacement de stockage. pfSense utilise ZFS qui permet notamment d’utiliser plusieurs disques et de gérer nativement la redondance (RAID).

Et on confirme sans hésiter :

L’installation va supprimer tout le contenu du disque. On est prévenu !

Attention pour la phase finale : afin d’éteindre la machine, plutôt que la redémarrer, on va utiliser le Shell pour lancer la commande « init 0 » (attention, la disposition du clavier est QWERTY) :

… pour éteindre la VM.

La VM s’éteint.

On supprime le lecteur optique devenu inutile :

On relance la VM pfSense, la console affiche toute la séquence de démarrage, jusqu’à cet écran qui affiche le menu de la console :

Affectation des interfaces

Normalement, pfSense aura automatiquement affecté chaque interface à son rôle : WAN (sur l’interface NAT) & LAN (sur l’interface en réseau interne)

En cas de problème, ou de doute, il est possible de relancer cette affectation, avec l’option 1 de la console :

Les interfaces disponibles sont identifiées par leur adresse physique MAC, et leur nom dans le système FreeBSD (em0 et em1 dans notre cas). Comme évoqué plus haut, c’est avec les adresses MAC que nous pouvons identifier chaque interface dans VirtualBox.

On ne souhaite pas mettre en place des VLAN ici, on répond : N ; puis on affecte les interfaces à leur rôle, WAN ou LAN :

Attention, le clavier est toujours en QWERTY ! et le verrouillage numérique n’est probablement pas activé par défaut.

A propos de la console pfSense

La console permet d’effectuer des opérations de base pour pfSense, notamment :

  • Redémarrer (5)
  • Arrêter (6)
  • Affecter les interfaces (1)
  • Configurer les interfaces (2)
  • Lancer une mise à jour du système (13)
  • Réinitialiser les réglages par défaut (4)
  • Réinitialiser le mot de passe d’administration (3)

Dans la pratique, il est recommandé de protéger l’accès à ce menu console par un mot de passe (ceci se configure depuis l’interface WEB GUI que nous verrons plus loin.)

Fonctionnement de la VM en tâche de fond

Afin que pfSense tourne en tâche de fond dans notre environnement, il peut être démarré sans affichage depuis VirtualBox :

Dès lors, la console n’est visible que depuis la prévisualisation de VirtualBox, mais il est possible de réactiver la console en cliquant sur « afficher » :

Et de la refermer depuis le menu « fichier » de la fenêtre console :

Notre VM pfSense est maintenant opérationnelle. Sa configuration initiale n’est pas réalisée, car il faut pour cela disposer d’un navigateur WEB pour accéder, par le réseau LAN, à la console WEBAdmin. Nous verrons ceci un peu plus loin, dans une section consacrée aux réglages, astuces et bonnes pratiques de sécurité avec pfSense.

La prochaine étape : construire et préparer notre machine Debian core, destinée à un usage « serveur ».

Labo virtuel personnel – première partie : présentation et installation de VirtualBox

Introduction

Je vous propose un guide pratique pour la mise en place d’un laboratoire systèmes & réseaux personnel, léger, virtuel et open source, basé sur VirtualBox. Cet hyperviseur de niveau 2 est une solution reconnue, fiable et maintenue pour la virtualisation de systèmes.

Ce guide se veut aussi complet, précis et universel que possible, sans trop charger de détails inutiles. Il est revérifié régulièrement au gré des mises à jour des différentes solutions utilisées.

Prérequis

Pour réaliser avec succès tous ces travaux, il faut disposer d’un ordinateur équipé au minimum d’un processeur x64 (Intel ou AMD) avec 4 cœurs physiques, 8 Gio de RAM (16 étant plus confortable), un stockage de type SSD avec au minimum 100 Gio libres et une interface réseau connectée à Internet, de préférence filaire. Sur cet ordinateur hôte, qui n’est pas dédié à ce rôle d’hyperviseur, le système d’exploitation sera probablement MS Windows 10 ou 11. On essaiera d’avoir une installation la plus « propre » possible. Pour plus d’infos à ce sujet, rendez-vous à la fin de ce premier article. VirtualBox est également disponible pour les autres OS courants (distributions GNU/Linux et Mac OS X)

Présentation du labo virtuel

Notre objectif est donc de mettre en œuvre un environnement de travail (labo) virtuel de base pour expérimenter diverses configurations systèmes & réseaux.

Il a été conçu pour demander de moins de ressources possibles, afin d’être déployé sur un PC standard à partir de solutions open source. Pour cela on va s’appuyer sur :

  • L’hyperviseur de niveau 2 VirtualBox
  • La solution pfSense® pour le cœur de réseau (interface WAN / LAN)
  • Debian GNU/Linux pour les systèmes (un serveur en mode console et un client en mode GUI (Interface Graphique pour l’Utilisateur).

Voici le schéma logique du labo virtuel que nous aurons mis en place à la fin de ce guide :


Versions

ElémentVersion
OS hôteMicrosoft Windows 11 Professionnel
Version 23H2
VirtualBox7.0.12
pfSense2.7.2
Debian Linux12 (BookWorm)
XFCE4.16
Versions des différents éléments logiciels utilisés

VirtualBox : l’hyperviseur

Téléchargement et installation

VirtualBox est un logiciel hyperviseur de niveau 2, libre et gratuit, il existe pour les environnements MS Windows, Mac OS X et GNU/Linux notamment.

Rendez-vous sur : https://www.virtualbox.org/ :

Après le téléchargement propre à votre environnement, procéder à l’installation avec les options par défaut proposées.

VirtualBox Extension Pack (optionnel)

Télécharger également le pack d’extensions, qu’il faut lancer après avoir terminé l’installation de VirtualBox ; il apporte des fonctionnalités diverses qui peuvent servir dans certains cas, mais que nous n’utiliserons pas dans la suite de nos travaux.

Personnalisation de VirtualBox

Il peut être intéressant de personnaliser certains paramètres de VirtualBox en fonction de vos habitudes ou environnement. Voici deux exemples importants :

Touche « hôte »

La touche hôte permet de redonner la main à la machine hôte lorsque le clavier et/ou la souris sont « capturés » par la machine virtuelle. Par défaut c’est la touche Ctrl droite du clavier, mais si votre clavier n’a pas cette touche ou encore si vous êtes habitués au couple Ctrl + Alt de VMWare, on peut modifier ; appuyer sur Ctrl+G ou depuis le menu « fichier », cliquer sur « paramètres », puis sur l’onglet « entrée » :

La fenêtre de réglage des préférences de VirtualBox.

Emplacement par défaut

Autre élément intéressant, l’emplacement par défaut pour enregistrer les fichiers (machines et disques virtuels) ; cette option vous permet de stocker ces fichiers qui peuvent être volumineux sur un emplacement secondaire de votre machine hôte. Il est recommandé toutefois que cet emplacement soit rapide (de type SSD notamment).

Toujours dans les paramètres :

Sélection de l’emplacement par défaut des machines et disques virtuels.

Pourquoi préférer Oracle VirtualBox à VMWare Workstation ?

Voilà une question qui revient souvent quand il s’agit de choisir un environnement de virtualisation sur PC personnel. VirtualBox n’est pas forcément une préférence, c’est ici un choix orienté vers les solutions open source. Il y a des raisons pour préférer parfois VMWare Workstation à VirtualBox (meilleure gestion de la virtualisation imbriquée et des réseaux privés hôte, meilleure stabilité graphique, …). VirtualBox intègre en revanche des fonctionnalités de snapshot et de clonage, qui ne sont disponibles que dans les versions payantes de VMWare Workstation.

Trucs, astuces, limites et problèmes connus

Activer les fonctionnalités de virtualisation du processeur

Les processeurs actuels de la famille x86/x64, Intel ou AMD, intègre un jeu d’instructions complémentaire pour optimiser le fonctionnement de la virtualisation sur le système d’exploitation. Ces fonctionnalités s’appellent VT-x ou AMD-v et doivent être activées dans le micrologiciel du PC (BIOS / EFI). En général, elles le sont par défaut, mais il convient de vérifier au besoin (les hyperviseurs signalent en général assez clairement quand ces fonctions ne sont pas activées).

Activer la virtualisation imbriquée sous VirtualBox

Par défaut la virtualisation imbriquée (« nested virtualization ») n’est pas active sous VB. Si l’on souhaite réaliser une VM capable elle-même de réaliser de la virtualisation, l’option existe mais elle n’est pas accessible :

L’option « Activer VT-x/AMD-V imbriqué » est grisée, non accessible.

Pour l’activer, il faut utiliser la ligne de commande Windows :

> cd 'C:\Program Files\Oracle\VirtualBox'
> ./vboxmanage.exe list vms
…
"nom_de_la_VM" {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
…
> ./vboxmanage.exe modifyvm "nom_de_la_VM" --nested-hw-virt on

NB : la ligne de commande Windows n’est pas sensible à la casse, mais VirtualBox l’est : respecter la casse pour le nom de la VM.

Et ainsi, l’option « Activer VT-x/AMD-V imbriqué » est est désormais activée pour la VM :

Notons que la virtualisation imbriquée est un « montage » délicat. Depuis quelque temps, installer ProxMoxVE sous VB fonctionne, mais les VM créées sous PVE ne fonctionnent pas (c’est peut-être un bug temporaire). De même, l’installation de VMWare ESXi ne fonctionne pas, et mes derniers essais avec MS Hyper-V ont été plutôt décevants…

Les VM créées sous VirtualBox se plantent au démarrage

Après une installation réussie, certaines VM après le démarrage se plantent avec des messages d’erreur système assez « dramatiques » : kernel panic et autres. Il y a plusieurs choses à faires :

1 – désactiver les fonctionnalités de virtualisation de Windows

Tapez la touche Windows + R, puis appwiz.cpl et Entrée (ceci lance le panneau de configuration, section « programmes et fonctionnalités »)

Cliquer sur « activer ou désactiver des fonctionnalités Windows » :

Dans la liste, décocher ces fonctionnalités si elles sont actives :

  • hyperV
  • plateforme de l’hyperviseur Windows
  • plateforme de machine virtuelle
  • sous-système linux

2 – désactiver l’isolation du noyau (core isolation)

Cette fonctionnalité de sécurité Windows assez récente empêche la plupart du temps VirtualBox de fonctionner correctement.

Rechercher « isolation du noyau » dans la barre de recherche de Windows, et désactiver l’option :

Et ensuite ?

Rendez-vous maintenant au prochain article pour l’installation de la première VM de notre labo : pfSense.

Les routeurs domestiques embarqués dans la guerre des botnets IoT

Un nouveau rapport de Trend Micro met en garde les consommateurs contre une nouvelle vague d’attaques visant à compromettre leurs routeurs domestiques, pour les utiliser dans des « botnets IoT », c’est-à-dire des appareils connectés à Internet qui sont tous infectés et contrôlés par un type commun de malware.

Selon le rapport, il y a eu un pic récent d’attaques ciblant et exploitant les routeurs, en particulier autour du quatrième trimestre 2019. La recherche, indique la société, indique que l’utilisation abusive de ces appareils se poursuivra car les attaquants peuvent facilement monétiser ces infections dans des attaques secondaires sauf si les utilisateurs prennent des mesures pour empêcher leurs appareils d’activer cette activité criminelle.

« Avec une grande majorité de la population qui dépend actuellement des réseaux domestiques pour son travail et ses études, ce qui arrive à votre routeur n’a jamais été aussi important », déclare Jon Clay, directeur des communications mondiales contre les menaces pour Trend Micro. « Les cybercriminels savent qu’une grande majorité des routeurs domestiques ne sont pas sécurisés avec les informations d’identification par défaut et ont multiplié les attaques à grande échelle. »

 » Pour l’utilisateur domestique, c’est détourner sa bande passante et ralentir son réseau « , déclare Clay.  » Pour les entreprises ciblées par des attaques secondaires, ces botnets peuvent totalement détruire un site Web, comme nous l’avons vu lors d’attaques de grande envergure. « 

Les recherches de la société ont révélé une augmentation à partir d’octobre 2019 des tentatives de connexion par force brute contre les routeurs, dans lesquelles les attaquants utilisent un logiciel automatisé pour essayer des combinaisons de mots de passe courantes. Le nombre de tentatives a presque décuplé, passant d’environ 23 millions en septembre à près de 249 millions de tentatives en décembre 2019. Pas plus tard qu’en mars 2020, selon l’entreprise, elle a enregistré près de 194 millions de connexions par force brute.

Un autre indicateur de l’augmentation de l’ampleur de cette menace, selon la société, est que les appareils tentent d’ouvrir des sessions telnet avec d’autres appareils IoT. Parce que telnet n’est pas chiffré, il est préféré par les attaquants – ou leurs botnets – comme moyen de sonder les informations d’identification des utilisateurs. À son apogée, à la mi-mars 2020, près de 16000 appareils ont tenté d’ouvrir des sessions telnet avec d’autres appareils IoT en une seule semaine.

La tendance est préoccupante, dit l’entreprise, et indique que les cybercriminels sont en concurrence les uns avec les autres pour compromettre autant de routeurs que possible afin qu’ils puissent être enrôlés dans des botnets. Ceux-ci sont ensuite vendus sur des sites clandestins, soit pour lancer des attaques par déni de service distribué (DDoS), soit comme moyen d’anonymiser d’autres attaques telles que la fraude au clic, le vol de données et la prise de contrôle de compte. La concurrence est si féroce, dit la société, que les criminels sont connus pour désinstaller tous les logiciels malveillants qu’ils trouvent sur les routeurs ciblés, démarrant les leurs afin qu’ils puissent revendiquer un contrôle total sur l’appareil. Pour l’utilisateur – domestique ou professionnel – un routeur compromis est susceptible de souffrir de problèmes de performances, et si des attaques sont ensuite lancées à partir de cet appareil, son adresse IP peut également être mise sur liste noire, ce qui peut les impliquer dans des activités criminelles et les couper potentiellement des parties clés d’Internet, et même les réseaux d’entreprise.

Comme expliqué dans le rapport, qui met en évidence trois familles de logiciels malveillants de botnet (Mirai, Kaiten et Qbot) il existe un marché noir florissant des logiciels malveillants de botnet et des botnets à la location. Bien que tout appareil IoT puisse être compromis et exploité dans un botnet, les routeurs présentent un intérêt particulier car ils sont facilement accessibles et directement connectés à Internet.

Pour lutter contre cela, dit l’entreprise, les utilisateurs à domicile doivent tenir compte des recommandations suivantes :

  • Assurez-vous qu’un mot de passe fort est utilisé et qu’il est modifié de temps en temps.
  • Assurez-vous que le routeur exécute le dernier micrologiciel (firmware)
  • Vérifiez les journaux (logs) pour détecter un comportement qui n’a pas de sens pour le réseau.
  • Autorisez uniquement les connexions au routeur à partir du réseau local.

Pour en savoir plus, consultez le rapport : « Worm War : The Botnet Battle for IoT Territory » de Trend Micro

Source : https://www.smart2zero.com/news/home-routers-caught-iot-botnet-war