Connexion
Abonnez-vous

Machines virtuelles et Freebox Delta : création et hébergement de votre première page web

Hello, world !

Machines virtuelles et Freebox Delta : création et hébergement de votre première page web

Le 08 octobre 2019 à 08h03

La Freebox Delta de Free permet désormais de gérer des machines virtuelles. De quoi ouvrir la porte à l'installation de votre propre serveur DNS, web et autres services en tout genre. Voici un petit guide sur la manière de démarrer simplement avec la création et l'hébergement d'une première page web.

Freebox OS 4.1 intègre désormais un nouveau bouton dans son interface : « VMs », pour machines virtuelles. On peut ainsi simuler l'existence d'un ordinateur au sein du boîtier Server de la Freebox Delta en utilisant ses composants et son espace de stockage, pour y installer un système d'exploitation et l'utiliser comme bon nous semble.

En termes de fonctionnalités et de puissance, on se retrouve un peu dans la même situation que lorsque l'on utilise un Raspberry Pi, celui-ci étant alors intégré à la box avec une puissance moindre, avec l'avantage d'un accès à un stockage local plus important et d'un OS hôte forcément 64 bits.

Mais gérer des machines virtuelles n'est pas forcément à la portée de tout le monde. Free a donc tenté de simplifier son interface tout en gardant des fonctionnalités essentielles pour son public cible : les bidouilleurs. De quoi réussir à rendre l'ensemble accessible et intéressant pour le plus grand nombre ? L'avenir nous le dira.

De notre côté, nous avons décidé de publier un premier guide vous permettant de découvrir les bases de cette fonctionnalité en installant un premier système d'exploitation « invité » afin de l'utiliser pour héberger une page web qui sera accessible à n'importe qui via Internet.

Pré-requis

Pour mener à bien ce guide, il vous faudra bien entendu une Freebox Delta avec un boîtier Server à jour. Pour cela, il vous suffit de le redémarrer, Free détaille les méthodes à suivre par ici.

Vous devrez également avoir au moins un HDD/SSD installé et configuré afin de disposer d'un espace de stockage où héberger vos machines virtuelles. Dans notre cas il s'agit de quatre HDD Seagate de 2 To (ST2000LM015) configurés en RAID 10. Notez que vous pouvez aussi augmenter la mémoire intégrée, afin de disposer de plus d'1 Go exploitable, Free précisant que cela n'est « ni recommandé, ni supporté par Free, aucun SAV n’étant possible en cas de modification du matériel »

Pour accéder à l'interface de votre Freebox, vous devrez enfin disposer d'un ordinateur et d'un navigateur. Vous pourrez alors y taper l'une des deux URL suivantes : 

http://mafreebox.freebox.fr
http://192.168.0.254

Double-cliquez ensuite sur le bouton « VMs ».

Création d'une première machine virtuelle

Passons maintenant à la configuration de la machine virtuelle, en cliquant sur Ajouter une VM. Vous pourrez lui choisir un nom, ce qui n'est pas obligatoire, lui attribuer 1 ou 2 cœurs virtuels et jusqu'à 957 Mo de mémoire si vous n'avez pas modifié la barrette de 2 Go fournie par défaut par Free. 

Les paramètres sont ici assez limités pour ne pas perdre l'utilisateur novice, et ce n'est pas plus mal. La configuration avancée se fait dans un second temps, après le choix du système d'exploitation. Vous avez la possibilité d'opter pour un disque virtuel (image), une ISO d'installation, ou l'un des OS proposés par Free. Optez pour ce dernier cas.

  • Freebox OS 4.1 Delta VM Interface
  • Freebox OS 4.1 Delta VM Interface
  • Freebox OS 4.1 Delta VM Interface
  • Freebox OS 4.1 Delta VM Interface

Nous avons également mis les paramètres CPU/RAM au maximum afin de pouvoir tester les performances, mais vous pouvez adapter ces paramètres selon vos besoins, surtout si vous voulez faire fonctionner plusieurs machines virtuelles en simultanée. Vous serez limité à trois cœurs au global et à la quantité de mémoire présente. 

Free héberge des images ARM64 (AARCH64) pour Debian 10 ou sa prochaine version (Testing), Ubuntu 19.04 ou sa prochaine version 19.10 (actuellement en bêta), ainsi que Fedora 30. Il propose aussi Jeedom. Une liste qui pourra évoluer dans les mois à venir. Il s'agit d'images « Cloud » au format Qcow2 qui sont des disques virtuels à utiliser comme tel.

Cela évite toute une phase de configuration et d'installation, cette méthode étant utilisée notamment chez les hébergeurs. Ces images ne sont pas modifiées par Free, ce qui évite au FAI et à ses équipes d'avoir à les adapter constamment et à les maintenir sur le long terme, ils n'ont que la liste à modifier régulièrement. Nous optons pour Debian 10.

Les fichiers sont enregistrés dans le dossier « VMs » de l'espace de stockage de la Freebox Delta. Le téléchargement passe par l'application prévue à cet effet au sein de Freebox OS. On y découvre qu'elles sont récupérées via un serveur HTTP sans passer par un lien sécurisé et sans vérification de la somme de contrôle.

Interrogé sur le sujet, Free nous indique ne pas considérer qu'il y a là un vecteur d'attaque. On aurait tout de même apprécié un peu plus de précautions pour de tels fichiers, qui serviront de base à un OS utilisé au sein du réseau local. Ne serait-ce que la possibilité de procéder à une vérification d'une empreinte SHA-256 en option.

Attention également, supprimer une machine virtuelle ne supprime pas forcément les données qui lui sont liées, notamment son image Qcow2. Il faudra donc procéder manuellement, que ce soit par l'explorateur de fichiers de l'interface web ou le partage réseau via Samba depuis un système distant.

Freebox OS 4.1 Delta VM InterfaceOpenSSH Keygen Windows 10

Pour l'accès distant, cela passera par OpenSSH, installé et activé par défaut. On peut opter pour une méthode par mot de passe, classique mais déconseillée, ou par la création d'une clé SSH. Cette seconde méthode est préférable car elle repose sur une paire de clé à chiffrement asymétrique, la clé publique étant fournie à la machine virtuelle, la clé privée restant dans votre machine locale, protégée par la phrase de passe de votre choix. 

Vous pouvez utiliser les outils présents au sein de votre système pour la générer, ou PuttyGen sous Windows par exemple. Sous Linux et Windows 10 où le support est natif, cela passe par la commande suivante :

ssh-keygen -t rsa -b 4096

Vous serez alors invité à choisir le nom de votre clé publique, vous pouvez laisser celui par défaut ou le changer si vous le désirez. Attribuez-lui ensuite une phrase de passe. Vous pouvez ensuite l'ouvrir afin de récupérer son contenu et le placer dans l'interface de création de la VM de la Freebox. Dans notre cas, sous Windows 10 :

notepad C:\Users\DavidLegrand/.ssh/id_rsa.pub

Espérons que Free apprendra à être plus didactique sur cette partie par la suite afin de ne pas « perdre » les utilisateurs novices qui se tourneront sans doute plutôt vers la méthode par mot de passe.

Une fois tout ceci terminé, l'image sera téléchargée puis mise en place. Par défaut elle sera redimensionnée à 42 Go, mais vous pouvez modifier ce chiffre ou garder la taille d'origine si vous le souhaitez.

Configuration, démarrage et accès à la machine virtuelle

Vous reviendrez ensuite à l'interface globale de gestion des VM, celle que vous venez de créer étant désormais accessible. Vous pourrez modifier nombre de paramètres comme son nom, sa composition technique, l'emplacement de son image disque, le type de disque utilisé (Qcow2 ou brut), utiliser une image ISO comme lecteur CD, etc.

Notez qu'il n'y a qu'un lecteur optique et un périphérique de stockage par machine, pas plus. Là aussi Free semble avoir décidé de limiter les possibilités afin de garder une dose de simplicité. Par défaut, il s'agira d'un système de type serveur, accessible à distance via OpenSSH. Mais si vous optez pour un système d'exploitation avec une interface graphique de type bureau, un écran virtuel peut être attribué à la machine. 

Freebox OS 4.1 Delta VM InterfaceFreebox OS 4.1 Delta VM Interface

Autre point intéressant, vous pouvez attribuer l'un des ports USB (Type-A ou Type-C) à la machine virtuelle (une seule à la fois), afin qu'elle puisse accéder à des périphériques externes comme du stockage, une webcam, etc. Enfin, le script cloud-init qui se lancera au premier démarrage est configuré selon vos paramètres. Vous pouvez bien entendu le modifier. Par défaut, il sert simplement à attribuer un nom à l'utilisateur principal et sa méthode de connexion.

Si vous effectuez des modifications, pensez à cliquer sur Appliquer. Pour démarrer la machine virtuelle, cliquez sur Allumer en haut de l'interface (bouton vert). En cas de redémarrage de la Freebox, les VMs reviendront à leur état précédent. Pour le moment, ce premier démarrage peut être assez long dans certains cas cas comme Ubuntu prévient Free (plusieurs minutes), en raison d'un bug de l'OS qui reste à corriger par ses développeurs.

Vous pouvez alors accéder à la machine virtuelle de différentes manières, celle-ci obtenant une adresse IP une fois qu'elle sera fonctionnelle. Via l'onglet Console (Xterm.js) ou Écran (NoVNC) de l'interface en ligne, mais aussi à travers un client OpenSSH. Sous Linux ou Windows 10 par exemple :

ssh nom_utilisateur@adresse-ip

Ce qui donne dans notre cas :

ssh [email protected]

Vous devrez alors entrer le mot de passe du compte ou la phrase de passe de votre clé privée afin de valider la connexion. Vous arriverez ensuite sur un terminal Linux classique (Bash dans notre cas).

Freebox OS 4.1 Delta VM InstallationFreebox OS 4.1 Delta VM Installation

Installation d'un serveur web Apache

La première chose à faire est de mettre à jour le système. Sous Debian, cela passe par le gestionnaire de paquets APT qui permet de faire cela en ligne de commande :

sudo apt update
sudo apt full-upgrade
sudo apt autoremove

Vous pouvez également tout faire en une seule ligne : 

sudo apt update && sudo apt full-upgrade && sudo apt autoremove

Ensuite installons le serveur web Apache :

sudo apt install apache2

Au bout de quelques minutes, le serveur sera installé et démarré. Vous pouvez alors accéder à la page web utilisée par défaut en tapant l'adresse IP de votre machine virtuelle dans un navigateur. Dans notre cas :

http://192.168.0.197

Modification de la page web

Pour modifier cette page web, vous pouvez utiliser des éditeurs qui permettent un accès via des protocoles comme SFTP ou même des outils comme SSHFS-Win... ou utiliser la ligne de commande :

sudo nano /var/www/html/index.html

Supprimez le contenu et placez le code HTML suivant :

<!doctype html>
<html lang="fr">
<head>
<title>INpact Hardware, c'est super</title>
</head>
<body>
<h1>INpact Hardware c'est super !</h1>
<p>J'ai suivi un tuto génial, ça marche trop bien !!!</p>
</body>
</html>

Enregistrez et quittez (CTRL+X), confirmez votre modification (Y) puis faites F5 dans votre navigateur, la page web aura été modifiée et affichera le texte ci-dessus (sans les balises HTML).

Pour surveiller les performances de votre machine virtuelle, vous pouvez utiliser htop :

sudo apt install htop
htop

Accès depuis l'extérieur

Vous disposez désormais d'un site web avec du contenu local, mais comment permettre à des tiers d'y accéder ? Il suffit de rediriger un port externe de la Freebox vers celui du serveur Apache que nous venons de configurer (80 par défaut). Pour cela, il faut se rendre dans l'onglet Réseau, puis Configurer une redirection de port.

L'IP de destination sera celui de la machine virtuelle, le protocole TCP. Vous pouvez modifier l'IP source si vous ne voulez permettre qu'à une machine correspondant à une adresse IP en particulier d'y accéder. Ensuite, indiquez les ports externes à rediriger, qui doivent forcément être supérieurs à 16384. Il sera donc impossible d'opter pour le port 80.

Freebox OS 4.1 Delta VM Interface

Voici notre configuration : 

  • Port de début : 16800
  • Port de fin : 16800
  • Port de destination : 80

Cela revient à rediriger le port 16800 de la Freebox, accessible depuis Internet vers le port 80 de la machine virtuelle. Pour accéder à votre page web vous taperez alors l'URL suivante :

http://ip_externe_de_la_freebox:port_externe

Vous pouvez faire de même avec l'accès OpenSSH à la machine virtuelle, mais attention, cela peut inciter certains à tenter d'y accéder en profitant de failles de sécurité. Veillez donc bien à mettre à jour votre machine et à n'opter pour cette solution que si vous savez ce que vous faites. Il faudra alors rediriger le port externe de votre choix vers le port 22 de la VM.

L'IP externe de la box peut être trouvée dans l'onglet État Internet de l'application État de la Freebox de l'interface. Bien entendu, vous pouvez aussi utiliser un nom de domaine plutôt qu'une adresse IP, ce soit celui fourni par Free (xxx.freeboxos.fr), des services tiers via l'application Nom de domaine ou DNS Dynamique de Freebox OS.

Commentaires (24)

Vous devez être abonné pour pouvoir commenter.

Abonnez-vous
votre avatar

Bon retour, super article, merci !

votre avatar

Toujours au Top INPACT HARDWARE !
Merci

votre avatar

Super idée!



Est-ce qu’il ne serait pas plus intéressant d’installer yunohost, ou mieux encore OMV (dispo naturellement pour debian et ARM) pour bénéficier des plugins et notamment de docker (le tout facile à sauvegarder et en automatisant cette tâche) ?

votre avatar

crocodudule a dit:



A chacun de faire selon ses besoins. Là l’idée c’était simplement de montrer un cas simple, mais comme ce sont des VM, les possibilités sont potentiellement infinies (dans la limite des perfs de la box)

votre avatar

Je ne parviens pas à lancer une machine virtuelle créée.



Que je la crée depuis un ISO (Ubuntu arm64) ou depuis la liste proposée par Free, que j’utilise une clé SSH ou un mot de passe, j’obtiens toujours le même message d’erreur au lancement de la machine virtuelle :
«Impossible de démarrer cette VM : Paramètre invalide»



Je suis le seul à avoir ça ? Y’a un truc que j’ai loupé ?

votre avatar

Chouette article de mise en bouche :) ce serait cool de proposer des tutos “spécial Freebox” pour d’autres VMs, genre un système Pi-hole ou OpenMediaVault pour profiter de l’espace disque, ou encore une brique internet virtuelle avec un Access Point sur port USB.

votre avatar

SimR69 a dit:


Je ne parviens pas à lancer une machine virtuelle créée.Que je la crée depuis un ISO (Ubuntu arm64) ou depuis la liste proposée par Free, que j’utilise une clé SSH ou un mot de passe, j’obtiens toujours le même message d’erreur au lancement de la machine virtuelle : «Impossible de démarrer cette VM : Paramètre invalide»Je suis le seul à avoir ça ? Y’a un truc que j’ai loupé ?


Moi je n’ai eu aucun problème, je viens de créer une machine Plex à base de Debian 10.



Par contre je ne trouve pas encore comment monter les disques durs présents dans la partie NAS :/

votre avatar

cypou a dit:



Disons qu’à partir du moment où c’est une VM qui est mise en place, il n’y a pas grand chose de spéciifique à une Freebox Delta. Ca reste un système avec du Debian/Ubuntu installé. Au pire tu peux avoir accès ou non à tel paquet du fait de l’AARCH64 mais c’est tout.

votre avatar

Zef a dit:



Ca tombe bien ;)



nextinpact.com Next INpact

votre avatar

super cet article, je garde ça sous le coude lors de mon changement de box.

votre avatar

David_L a dit:


Au pire tu peux avoir accès ou non à tel paquet du fait de l’AARCH64 mais c’est tout.


tiens, excellente remarque. Le CPU cortex A72 permet d’exécuter les instructions user et kernel en 32-bits. Est-ce que la fonctionnalité de la freebox se limite à des kernel 64 bits ?



Normalement on devrait toujours pouvoir faire tourner un userland 32bits, même si le kernel est 64-bit.

votre avatar

David_L a dit:


Ca tombe bien ;)nextinpact.com Next INpact


Arggg faut faire avec samba… Bon bah merci en tout cas au moins je sais quoi faire ^^

votre avatar

Zef a dit:



Comme dit dans l’article, c’est une VM vue comme telle au sein du réseau. Le principe de la virtualisation c’est l’isolation entre l’hôte et l’invité ;)

votre avatar

David_L a dit:


Comme dit dans l’article, c’est une VM vue comme telle au sein du réseau. Le principe de la virtualisation c’est l’isolation entre l’hôte et l’invité ;)


Je connais mal KVM/QEMU, j’ai plus l’habitude de virtualbox et je peux monter facilement un folder sur host sur le guest :/ C’est comme ça que fonction Docker Toolbox par exemple. Mais bon je fais avec, on verra si les perfs sont meilleures que sur mon pi 3 ^^

votre avatar

Zef a dit:



Disons qu’en général il y a des mécaniques pour automatiser le montage pour faciliter les échanges de l’un à l’autre, mais ça reste en général des mécaniques du même genre, plus ou moins transparentes.

votre avatar

Bonsoir, j’ai voulu lancer l’installation d’une vm mais au 3eme écran ça me donne directement une erreur comme si le téléchargement ne se lançait pas… Si vous avez une idée je suis preneur

votre avatar

J’ai monté un debian 10 avec nextcloudpi ça tourne bien ! J’imagine qu’il ne faut pas être trop nombreux dessus en même temps !

votre avatar

Zef a dit:


Je connais mal KVM/QEMU, j’ai plus l’habitude de virtualbox et je peux monter facilement un folder sur host sur le guest :/ C’est comme ça que fonction Docker Toolbox par exemple. Mais bon je fais avec, on verra si les perfs sont meilleures que sur mon pi 3 ^^


Si tu veux t’aider en mode graphique pour paramétrer samba, les partages, les autorisations d’écriture etc… (mais encore installer et mettre à jour plex entre autre) Je te recommande d’installer OMV, Et cela te permettra en outre d’automatiser tes sauvegardes.

votre avatar

Zef a dit:


Je connais mal KVM/QEMU, j’ai plus l’habitude de virtualbox et je peux monter facilement un folder sur host sur le guest :/ C’est comme ça que fonction Docker Toolbox par exemple. Mais bon je fais avec, on verra si les perfs sont meilleures que sur mon pi 3 ^^


Si tu veux t’aider en mode graphique pour paramétrer samba, les partages, les autorisations d’écriture etc… (mais encore installer et mettre à jour plex entre autre) Je te recommande d’installer OMV, Et cela te permettra en outre d’automatiser tes sauvegardes.

votre avatar

Est-ce que quelqu’un a réussit à lancer une VM en mode graphique ?

votre avatar

Par contre, quand je supprime une MV (Debian 10), il supprime les fichiers directement sur le HDD. Pas besoin de le faire à la main donc. ;)

votre avatar

Il est possible de faire des snapshots ? Sinon, comment sauvegarder les images disques des VM ?
L’idée de Free est intéressante, même si je ne suis pas sûr que ce soit financièrement intéressant en tant que client :).

votre avatar

Lypik a dit:



Ils sont stockés dans la Freebox, partant de là, tu peux avoir un dispositif pour en créer une copie régulière.

votre avatar

[quote=“David_L”]
Ils sont stockés dans la Freebox, partant de là, tu peux avoir un dispositif pour en créer une copie régulière.
[/quote]



Les images disques oui mais sans possibilité de faire des snapshots, il faut donc arrêter sa VM pour la sauvegarder et ainsi avoir une image disque cohérente.



Free ajoutera peut-être cette fonctionnalité plus tard, après tout, la peinture est encore fraîche.

Machines virtuelles et Freebox Delta : création et hébergement de votre première page web

  • Pré-requis

  • Création d'une première machine virtuelle

  • Configuration, démarrage et accès à la machine virtuelle

  • Installation d'un serveur web Apache

  • Modification de la page web

  • Accès depuis l'extérieur

Fermer