Labo virtuel personnel – dernière partie : finalisation

Dans cette dernière partie, nous allons finaliser notre labo virtuel :

  • Intégration des VM dans le réseau interne virtuel LAN
  • Configuration de base de pfSense

Dans un premier temps il faut bien sûr veiller à ce que les trois machines soient démarrées.

Sur la console de la VM pfSense on voit que l’interface WAN connectée en NAT a obtenu par DHCP une adresse IPv4 fournie par VirtualBox, et que l’adresse IP sur la « patte » LAN est 192.168.1.1/24 :

La console pfSense

La VM Debian GUI est connectée en NAT, son interface réseau a donc elle aussi obtenu par DHCP une adresse IPv4 depuis VirtualBox. On peut démarrer un terminal, et vérifier l’IP obtenue :

$ ip -c a
Pratique : avec la touche Ctrl et la molette de la souris, on ajuste la taille du texte dans le terminal.

Cette commande nous donne (en couleur grâce à l’option -c) les adresses IP de chaque interface réseau du système.

Connexion de DebianGUI au réseau LAN

Cette opération peut se faire « sous tension », comme on le ferait avec une machine réelle, en reconnectant le câble réseau. Depuis la configuration de la VM, on connecte l’interface réseau au réseau interne LAN :

Reconnexion de l’interface sur le LAN

Il faut maintenant renouveler le bail DHCP de la VM GUI, en deux temps. D’abord on redémarre le service réseau :

$ sudo systemctl restart networking

Puis on demande un nouveau bail :

$ sudo dhclient

NB : on aurait pu aussi simplement redémarrer la VM.

Désormais notre DebianGUI est sur le réseau LAN et a obtenu une IPv4 depuis pfSense.

Configuration de pfSense par WebAdmin

On peut maintenant utiliser le navigateur WEB pour procéder à la configuration initiale de pfSense, à l’adresse https://192.168.1.1 :

Comme nous utilisons une IP privée locale comme adresse source HTTP, on a bien sûr l’avertissement habituel sur les risques d’un certificat auto-signé. Nous acceptons ce « risque », et nous voilà sur la page de connexion à pfSense :

Par défaut, l’identifiant est admin et le mot de passe pfsense.

L’assistant d’installation initiale (Wizard)

Au premier lancement, le « wizard » de configuration apparaît (il est également possible de l’appeler plus tard depuis le menu system) :

Nous allons donc procéder à la configuration initiale élémentaire de pfSense, qui sera notamment très permissive au niveau du pare-feu (par défaut).

Le bouton « next » nous amène à la suite :

Netgate, l’éditeur, propose de considérer la souscription au support avancé pour pfSense. On laisse ensuite le hostname et le domaine proposés, et on fixe les serveurs DNS que nous souhaitons utiliser :

Attention, selon votre environnement, il est possible que ces DNS vous soient imposés ; il convient de saisir ici les valeurs adéquates. Par défaut, nous pouvons prendre les DNS de CloudFlare (1.1.1.1 et 1.0.0.1). Il faut décocher l’option « override » pour que nos choix DNS ne soient pas remplacés par ceux fournis par le WAN (par DHCP).

On définit ensuite le serveur NTP principal que va utiliser pfSense, ainsi que la timezone de notre système. On prend ici des réglages adaptés à la France.

serveur NTP : 0.fr.pool.ntp.org

L’étape suivante concerne le paramétrage de l’interface WAN ; celle-ci utilise DHCP pour sa configuration.

Sur cette page on veillera aussi à désactiver le blocage des flux RFC1918 (plages d’adresses IP privées) arrivant sur le WAN ; en effet ce genre de situation peut se produire, et d’ailleurs dans le cas présent l’interface WAN est sur un réseau privé.

On peut également débloquer les réseaux Bogon notamment si on est amené à utiliser des plages IP réservées à des usages de test (comme celles de la RFC5737), ou plus généralement si on veut lever toute restriction initiale sur le pare-feu.

L’étape suivante consiste à renseigner (confirmer) l’adresse IP de pfSense sur le réseau LAN. Laissons ce réglage intact :

Enfin, il convient de personnaliser le mot de passe associé à l’utilisateur admin. En réalité, les bonnes pratiques de sécurité obligent même à désactiver ce compte et à en créer un autre ; nous ferons cela un peu plus loin. Pour le moment, limitons-nous à modifier ce mot de passe.

Il ne reste plus qu’à recharger le système avec cette nouvelle configuration.

Et voilà ! le système est (presque) configuré, on clique sur « finish ».

La dernière étape de l’assistant de configuration.

L’affichage de ce « placard » informatif est notamment le signe que le système accède à Internet. On est invité à accepter les conditions, puis encore une invitation à participer à l’amélioration du système, et on arrive sur le dashboard par défaut :

le dashboard (ou tableau de bord) de pfSense

Personnalisation du tableau de bord

Le tableau de bord peut afficher des informations plus pertinentes que les informations relatives à Netgate (dont vous pouvez prendre connaissance malgré tout !).

Utiliser les croix en haut à droite de chaque élément du dashboard, puis l’option + pour en ajouter, comme celui qui permet de visualiser l’état des passerelles (gateways) ou l’activité sur les interfaces (traffic graph) :

Des widgets sont disponibles pour personnaliser le dashboard.

Voici un dashboard plus informatif. Il est possible de déplacer les éléments, il ne faut pas oublier alors d’enregistrer cette disposition avec l’icône « disquette » en haut à droite.

Configuration complémentaire

Il convient de réaliser quelques opérations supplémentaires pour finaliser la configuration initiale.

Activer le chiffrement matériel avec AES-NI

La plupart des CPU actuels disposent d’un jeu d’instructions AES-NI pour le chiffrement symétrique, lequel est notamment utilisé lors de connexions VPN. Par principe, on l’active d’emblée sur une nouvelle instance pfSense. On vérifie d’abord que l’option est disponible, depuis le dashboard > system information > CPU Type > AES-NI > Yes (inactive)

Si c’est “Yes” (comme sur la capture ci-dessus), on l’active :

Menu system > advanced > Miscellaneous > Cryptographic & thermal sensor :

On active AES-NI, et on clique sur « save » en bas de page.

Désormais, la mention « active » est présente sur le dashboard dans la section CPU > AES-NI.

Désactivation de l’admin par défaut

On va créer un utilisateur administrateur et désactiver le compte admin par défaut. Menu system > user manager > users > add :

Créer l’utilisateur (username et mot de passe au moins) et l’ajouter au groupe admins :

Puis sauvegarder.

Se déconnecter de l’admin actuel (icone en haut à droite de la page), puis se reconnecter avec ce nouvel utilisateur.

Désactiver maintenant l’utilisateur admin standard :

Sauvegarder.

Désactivation d’IPv6 sur le WAN

Notre interface WAN ne dispose que d’une IPv4 ; pour plus de clarté, on va désactiver la gestion de l’IPv6 sur cette interface.

Menu interfaces > WAN

Sauvegarder et appliquer les changements.

Désactivation du DNS resolver

De nombreux services sont activés sur pfSense pour assurer la gestion du réseau (DHCP, NTP, DNS, FIREWALL, …). Pour alléger le fonctionnement du DNS, qui est la source de bien des soucis (« it’s always DNS ! »), on va désactiver le serveur DNS intégré (résolveur). Les requêtes DNS seront gérées directement par les serveurs externes prédéfinis plus haut.

Menu Services > DNS resolver

Sauvegarder et appliquer les changements.

Tout ceci n’est peut-être pas exhaustif ou parfait, mais c’est basé sur l’expérience, et le fait qu’on soit sur un labo. Par exemple, sur un pfSense en production, on pourra notamment protéger le menu de la console par un mot de passe (menu system > advanced > admin access) :

Afin de propager les réglages DNS notamment, il convient de redémarrer la VM Debian_GUI

Connexion de Debian serveur dans le LAN

Il faut également redémarrer la Debian Core, après l’avoir elle aussi reconnectée sur le réseau interne LAN.

Contrôle final

Maintenant, les machines accèdent à internet via pfSense.

DebianGUI navigue sur le WEB
et la Debian core accède elle aussi à Internet (ping d’un nom de domaine : résolu et joignable)

On récupère l’IP de la VM Debian Core avec la commande ip -c a ; ici 192.168.1.104. On peut constater qu’elle est joignable depuis la machine GUI :

L’adresse IP de DebianGUI est 192.168.1.103 ; les ping vers 192.168.1.104 fonctionnent.

Tout est en place ! Notre labo est fin prêt pour ses premières expériences. Je vous recommande de faire un cliché instantané (snapshot) de chacune des VM à ce stade.

Labo virtuel personnel – quatrième partie : installation de Debian client (avec GUI XFCE 4)

Nous allons maintenant créer une machine pour un usage « client », dotée d’une interface graphique (GUI). Nous y installerons un navigateur web et un terminal confortable, afin notamment d’administrer notre serveur. En général on utilise Windows pour cela, mais nous allons expérimenter ici l’univers Linux et nous rendre compte qu’il est simple de déployer une interface graphique sur une VM légère mais néanmoins efficace.

Nous allons partir de la machine précédente en la clonant, puis en ajoutant l’environnement de bureau XFCE, réputé léger et fonctionnel.

Clonage de la première VM Debian

Un clic droit sur la VM réalisée à l’étape précédente offre l’option de clonage :

Le clonage, comme les clichés instantanés, sont un des grands intérêts de VirtualBox (et de la virtualisation en général).

On donne un nom à cette nouvelle VM, et on régénère de nouvelles adresses MAC sur les interfaces réseau (important) :

Si vous n’avez pas exactement cet écran, cliquez sur le bouton « mode guidé » en bas de la fenêtre.

L’option clone lié permet de limiter les ressources de stockage nécessaires, mais rendra cette VM dépendante de la première. Si on dispose d’un espace de stockage suffisant, il vaut mieux réaliser un clone intégral :

Un clic sur « Finish » (les traductions ne sont pas terminées semble-t-il ;-), et VirtualBox crée une nouvelle VM par clonage.

Nous aurons besoin sur cette VM d’un lecteur optique vide pour installer les extensions VirtualBox ; on l’installe sur le contrôleur SATA existant, depuis la configuration de la VM :

On n’insère aucune image ISO dans ce lecteur.

On démarre cette nouvelle machine et on se logue en root :

le login et le mot de passe sont les mêmes sur la machine initiale.

Vous me direz : « Ne devrions-nous pas ajouter un peu de ressources à cette VM ? Un CPU et un gigaoctet de RAM pour machine avec interface graphique, c’est un peu léger, non ? »

Eh bien… non, ça ira, vous verrez.

Installation de l’environnement XFCE4

On modifie au préalable le nom de machine (hostname) de debian à debian-gui par l’éditeur nano, sans oublier de modifier aussi le fichier de résolution locale DNS de la machine (/etc/hosts) :

# nano /etc/hostname

Le premier caractère de la ligne ci-dessus représente le prompt (l’invite de commande), ici en mode root (#) ; il ne faut bien entendu pas le saisir. Avec l’éditeur nano, on valide les modifications avec CTRL-X et O.

# nano /etc/hosts
modification du fichier /etc/hosts

Ensuite on installe l’utilitaire sudo et on ajoute l’utilisateur standard (adapter selon votre propre login) au groupe des sudoers :

# apt install sudo
# adduser pascal sudo

Puis le gros morceau (quasiment 1GiB de téléchargement) : l’installation de xfce4 :

# apt install xfce4
pendant l’installation de XFCE4…

On relance la VM :

# reboot

La console propose désormais un login graphique.

IMPORTANT : il faut se connecter avec l’utilisateur sudoer et non par directement en root. En effet utiliser un environnement graphique en root génère souvent des désagréments.

Le login en version GUI assuré par le display manager (ici c’est lightdm)

On va désormais installer les utilitaires et pilotes VirtualBox pour rendre l’environnement plus ergonomique (ils vont permettre notamment de mettre en place le copier/coller et le glisser/déposer entre la VM et la machine hôte, et de dimensionner dynamiquement la définition graphique de la VM).

On insère d’abord le CD d’installation des « additions VirtualBox » :

L’icône du lecteur optique avec le CD doit apparaître sur le bureau XFCE. En cas d’échec, vérifier que vous avez bien un lecteur optique installé sur la VM.

Ensuite, on ouvre le terminal depuis le dock XFCE :

On continue dans ce terminal, en installant les prérequis (ligne 1), en montant le CD dans le système de fichiers (lignes 2 à 4), puis en lançant le script d’installation (ligne 5) ; enfin, on redémarre la VM (ligne 6) :

$ sudo apt install dkms
$ sudo mkdir -p /mnt/cdrom
$ sudo mount /dev/cdrom /mnt/cdrom
$ cd /mnt/cdrom
$ sudo sh ./VBoxLinuxAdditions.run
$ sudo reboot

On peut remarquer que désormais l’interface graphique s’ajuste à la taille de la fenêtre. Il peut être (très) utile aussi d’activer le presse-papier partagé bidirectionnel depuis le menu « périphériques » de la console VirtualBox. Et pourquoi pas également le glisser-déposer.

Enfin, nous allons installer le navigateur Firefox et une application de terminal plus ergonomique (terminator par exemple) :

$ sudo apt install -y firefox-esr terminator

Vérifications

Pour vérifier tout ça, depuis le dock on relance un terminal (qui doit être terminator désormais) et on ping un domaine public, comme debian.org.

On ouvre également depuis le dock le navigateur Web (Firefox) et on se rend sur la page web de debian.org :

Sauvegarde de l’état de la VM

Ne pas oublier d’éteindre et de prendre un cliché instantané de cette machine cliente, pour pouvoir la restaurer dans cet état propre, post installation.

Conclusion (mais ce n’est pas fini…)

Nous disposons au terme de ces quatre étapes des machines de notre laboratoire virtuel sur le thème « Linux » (nous verrons par ailleurs un homelab sur le thème « Windows »).

J’espère que jusque là tout est ok pour vous ! Il nous reste une dernière étape visant à interconnecter nos VM dans le LAN virtuel et à réaliser le paramétrage de base de pfSense.