Note : cet article est une republication de la page « Hackons le Wyse S30 » que j'avais publié en septembre 2013 sur Homeserver-DIY.net

Hackons le Wyse S30

Comme d'autres personnes présentes sur ce site, j'ai fait l'acquisition il y a quelques mois de deux Wyse S30 avec la ferme intention de les bidouiller. Cette page a pour but de vous faire (re)découvrir votre Wyse sous toutes ses coutures et de vous faire gagner un temps précieux dans vos expérimentations et dans l'installation de systèmes d'exploitation alternatifs, qu'ils soient propriétaires ou libres.

Notez qu'ici nous aborderons le cas du Wyse S30 dans sa révision 02L (avec le port IDE et la barrette de mémoire vive détachables) mais que vous ne devriez pas avoir trop de problèmes à suivre les tutoriels si vous possédez un Wyse S10 ou S50 (sauf pour la partie consacrée à l'installation de coreboot, qui est réservée au S30 02L). En cas de doute ou de question, n'hésitez pas à faire un tour sur le forum (note : le forum est maintenant fermé) pour y obtenir des conseils ou de l'aide.

Présentation technique du Wyse S30

Un Wyse S30 démonté

Derrière le Wyse S30 se cache une configuration plutôt modeste :

Carte mère : Simple, compacte, peu modifiable, elle possède un connecteur IDE 44 pins (également appelé IDE 2.5") mâle (nappe IDE obligatoire donc) avec par défaut un petit module de 64 MB connecté, un slot mémoire vive acceptant des barrettes de type SO-DIMM DDR SDRAM de 200 pins. Le slot accepte, au plus, 512mb. La puce contenant le BIOS est une SST49LF020A de 256KB facilement ré-inscriptible à l'aide du logiciel flashrom.

Processeur : C'est un AMD Geode GX 500 cadencé à 366MHz avec un cache L1 de seulement 32KB. Bien qu'étant officiellement un processeur à architecture i686, il ne supporte ni les instructions NOPL, ni la technologie PAE. Cela peut vous poser quelques problèmes avec de rares programmes déjà compilés et avec Ubuntu (et ses dérivées).

Système d'exploitation : Livré avec Windows Embedded CE 6.0, le système n'est plus mis à jour (les rares logiciels présents sont obsolètes), possède très peu de fonctionnalités, peu d'espace disque et est globalement lent.

Vous l'aurez compris, cette mini-machine est peu puissante. Cependant, bidouillée correctement, on peut obtenir une machine tout à fait correcte pour faire tourner un serveur pour s'auto-héberger ou pour avoir un PC axé bureautique pour pas cher.

Côté matériel

Ajouter de la mémoire vive

L'un des problèmes avec le Wyse, c'est la faible quantité de mémoire vive disponible: 128 MB. C'est pour cette raison que je vous invite vivement à remplacer la barrette d'origine par une de 256 MB ou 512 MB (mais pas plus, ça ne fonctionnerait pas). Pour cela, je vous fais confiance et vous laisse commander une barrette de type SO-DIMM DDR SDRAM de 200 pins chez votre revendeur préféré. Quant au remplacement, sachez que c'est grosso-modo le même système de clipsage que sur les slots mémoires des ordinateurs portables: déclipsez, remplacez, poussez.

Remplacer la mémoire morte interne

Un autre problème avec le Wyse vient de la vitesse de ses ports USB : je n'ai jamais réussi à dépasser les 3 mb/s dans mes tests, et cela a un effet très néfaste: les installations sont longues, très longues (comptez en moyenne trois à quatre heures pour Debian ou Windows 98). Un moyen d'outrepasser ce problème est d'enlever la carte électronique branchée sur le port IDE 44 pins pour y brancher soit un disque dur IDE 2.5", soit un petit convertisseur IDE vers carte SD (ou sata) (environ 5€ sur ebay), ou tout autre périphérique IDE. Toutefois, il faut faire attention : par défaut, le BIOS désactive l'IDE lorsque qu'il est configurer pour booter après l'USB. Ce problème peut être outrepassé facilement en suivant la rubrique « Ma distribution ne reconnaît pas la mémoire interne du Wyse/le disque dur IDE que j'ai branché ».

Remplacer le BIOS par Coreboot

Enfin, le dernier problème avec le Wyse provient de son BIOS: en plus d'être très peu configurable et de supporter très peu de matériel récent, il empêche le libre accès au port IDE et pose parfois de gros problèmes lors de l'amorçage du noyau Linux, conduisant 9 fois sur 10 (selon mes estimations) à un blocage pur et simple du système lors de la phase de boot. Fort heureusement, un néerlandais connu sous le pseudonyme de Fijam a réussi à compiler un « BIOS alternatif » (appelé Coreboot) qui, une fois installé, permet de régler la majorité des problèmes liés au BIOS original.

Avertissement

Cette manipulation est réservée au Wyse S30 révision 02L (comme expliqué au tout début de cette page). Flasher un BIOS n'est pas une tâche anodine: mal réalisé, le flashage peut conduire au brickage de votre appareil. Ne suivez ce tutoriel que si vous savez ce que vous faites.

De plus, Coreboot apporte quelques problèmes:

Matériel nécéssaire

Pour flasher le nouveau BIOS, vous aurez besoin d'acheter pour environ 15€ de matériel. Vous aurez besoin:

  • D'une puce Microchip SST49LF080A-33-4C-NHE (d'une taille de 1 MB). Elle est disponible chez mouser pour 5€.
  • D'un extracteur PLCC, pour pouvoir retirer l'ancienne puce.
  • D'un Wyse fonctionnel et connecté à Internet, sur lequel vous aurez installé Debian

Flashons

Pour flasher notre Wyse, nous allons utiliser un petit logiciel appelé Flashrom. Commençons par l'installer:

apt-get install flashrom

Ensuite, nous allons télécharger le nouveau firmware pour le BIOS.

On télécharge le nouveau firmware dans le dossier temporaire :

wget -c "http://drive.quent1.fr/public.php?service=files&t=aa2468dabbc7c9f388415cc8696bb969&download" -O /tmp/coreboot.rom

Doit correspondre à f3aaa7060f0f6ffc68f2cd3d4c52df04. Si ce n'est pas le cas, vous devez recommencer le téléchargement :

md5sum /tmp/coreboot.rom

Ouvez ensuite votre Wyse, puis retirez à chaud (c'est à dire sans l'arrêter) l'ancienne puce du BIOS (composant n°9 sur la photo) avant de placer votre puce vierge dans l'emplacement ainsi libéré. Nous allons maintenant flasher le nouveau firmware:

flashrom -w /tmp/coreboot.rom

Si la commande ne renvoie aucune erreur, vous pouvez redémarrer votre Wyse.

En cas d'erreur

Si votre Wyse ne s'allume plus ou si la commande a renvoyé une erreur, remplacez la nouvelle puce par l'ancienne, puis recommencez. Enfin, si vous souhaitez récupérer le BIOS original, sachez qu'il est disponible au téléchargement ici (md5sum e2cb7055e70372ae5d47d5975268e6ad).

Côté logiciel

Configurer le BIOS

Description des options du BIOS

Pour accéder au BIOS du Wyse, il suffit de brancher un clavier USB au Wyse et de l'allumer tout en maintenant la touche Suppr. enfoncée. Une fois le BIOS affiché, configurez le BIOS à votre guise, en suivant les indications de l'image ci-contre. Voici une « bonne » configuration pour un serveur :

  • Boot order: USB, PXE, IDE (ou IDE, USB, PXE si le système est installé sur une interface IDE).
  • Video memory: si votre serveur n'affichera rien de plus qu'une interface en ligne de commande, mettez 4 MB. Si votre serveur possèdera une interface graphique, pensez à augmenter la valeur (qui doit être comprise entre 4 MB et 16 MB).
  • Power control: always on. Ainsi, en cas de coupure de courant, votre serveur redémarrera tout seul (sans que vous ayez à appuyer sur le bouton d'alimentation).

Pour sauvegarder la configuration, appuyez sur X. Pour annuler les changements, appuyez sur Q et pour remettre à zéro la configuration, appuyez sur L.

Installer un autre système d'exploitation

Windows

De manière générale, Windows 98 et Windows 2000 ne devraient pas poser trop de problèmes lors de l'installation. Windows 95 n'a pas été testé mais je ne conseille pas son installation à cause de la mauvaise gestion des périphériques USB par l'OS. Windows XP n'a pas non plus été testé, mais la configuration du Wyse semble trop légère pour supporter un OS aussi récent (sauf peut-être dans sa version Embedded). Cependant, sachez qu'installer Windows sur une machine sans en posséder la licence est strictement illégal.

Windows 98 SE

Pour installer Windows 98 sur votre Wyse, il vous suffit de suivre ce tutoriel en anglais sur Youtube.

Notes

L'installation est très longue sur une clé USB (compter quatre bonnes heures). Si, lors de l'installation, un message d'erreur à propos de "System BUS" apparaît, appuyez sur Skip (ou un bouton équivalent si différent). Si un message d'erreur à propos de "System Board" apparaît, appuyez sur Continue (ou un bouton équivalent si différent). Si, lors du boot, un scandisk se lance systématiquement et trouve toujours une erreur irrécupérable, il n'y a qu'une chose à faire: recommencer l'installation depuis le début. Chez moi, la souris USB ne fonctionne pas. Vous devrez également vous munir de nombreux drivers (non fournis par défaut) pour faire fonctionner des choses aussi basiques que le port Ethernet.

Windows CE (système original)

Pour ceux qui auraient effacé le système original présent sur la ROM IDE du Wyse, voici comment réinstaller Windows CE:

Créez une clé USB bootable contenant Debian ainsi que ce fichier zip (md5sum 3169e33c54dcc69eeb2afcf59a0dd134), que vous nommerez _winterm.zip_ pour plus de clarté.

Lancez une installation de Debian en mode expert et, juste avant d'arriver à l'étape de détection des disques, ouvrez un terminal en tant que root et entrez les commandes suivantes pour permettre la détection de la mémoire interne :

modprobe -r pata_amd
modprobe -r pata_cs5536
modprobe -r ata_generic
modprobe ata_generic all_generic_ide=1

Lancez l'étape de détection des disques

Remontez la ROM en lecture et écriture puis extrayez le zip à l'intérieur :

mount -o remount,rw /dev/sdb1 /mnt
rm -rf /mnt/*
unzip winterm.zip -d /mnt

Redémarrez et admirez

FreeDOS (système compatible MS-DOS)

C'est le système qu'il vous faut si vous souhaitez transformer votre Wyse en une machine pour jouer à vos vieux jeux MS-DOS! Le système (porté par mes soins) est stable, rapide et ne plante pas au démarrage (contrairement à Linux).

  • Installez et démarrez Debian (en suivant les instructions également présentes sur cette page ci-besoin)
  • Entrez les commandes suivantes:

On se connecte en root :

sudo -i

On télécharge FreeDOS dans un répertoire temporaire:

wget http://drive.quent1.fr/public.php?service=files&t=db0e1a8c065d8971de5a41bae1b0a17c&download" -O /tmp/freedos.img

Doit correspondre à 46ddde04a024a5e94bb298b67ddc8a97. Si ce n'est pas le cas, vous devez recommencer le téléchargement :

md5sum /tmp/freedos.img

On décharge les modules bloquant la lecture de la mémoire interne :

modprobe -r pata_amd pata_cs5536 ata_generic

Et on charge un module permettant sa détection :

modprobe ata_generic all_generic_ide=1

On écrit l'image de FreeDOS sur la mémoire interne du Wyse (environ 40 secondes) :

dd if=/tmp/freedos.img of=/dev/sda

Arrêtez Debian, retirez la clé USB et bootez sur la mémoire IDE

Linux

De manière générale, Linux devrait s'installer sans trop de problèmes. Cependant, veillez aux points suivants:

  • Le système doit pouvoir tourner avec une configuration très limitée. Si vous souhaitez une interface graphique, oubliez tout de suite Debian et autre best-sellers de la catégorie et privilégiez de petites distributions telles que Tiny Core Linux.
  • Grub n'arrive pas à booter sur le Wyse. Utilisez plutôt Lilo ou Extlinux pour amorcer le système.
  • À cause de sa configuration quelque peut exotique, un (re)boot à chaud peut faire planter le système. Le remplacement du BIOS par défaut part Coreboot devrait régler le problème.

Debian

Démarre une fois Grub remplacé par Lilo. Le système est lent, très lent. Est très souvent victime du "hang on boot" décrit plus haut. Voici comment mener à bien l'installation:

  1. Téléchargez et installez le CD1 de Debian sur une clé USB
  2. Branchez deux clés USB sur le Wyse et démarrez-le sur la clé
  3. Lancez une installation en mode expert
  4. Installez Debian sur la seconde clé USB
  5. À la fin de l'installation, sélectionnez Lilo (et non Grub) comme gestionnaire de démarrage

Ubuntu (toutes versions)

Ne peut pas démarrer. En effet, depuis la 12.04, toutes les versions d'Ubuntu nécessitent une machine compatible avec PAE, ce qui n'est pas le cas du Wyse S30. Cependant, vous pouvez toujours tenter une installation de Xubuntu ou Lubuntu LTS ≤ 11.04 en pensant bien à installer Lilo.

Tiny Core Linux

Du fait de sa légèreté, Tiny Core Linux est un très bon choix pour le Wyse S30. Le système est plutôt rapide mais reste vulnérable au fameux "hang on boot" décrit plus haut. Cependant, l'installation n'est pas des plus simples. Voici comment procéder:

Formater une clé USB en ext4

Extraire l'ISO de Tiny Core Linux à la racine de la clé USB

Rendez-vous sur la racine de la clé USB avec un terminal et exécutez les commandes suivantes:

On remplace isolinux par extlinux :

sudo mv boot/isolinux boot/extlinux
sudo mv boot/extlinux/isolinux.cfg boot/extlinux/extlinux.conf
sudo rm boot/extlinux/isolinux.bin

On créé les dossiers utiles à l'installation de Tiny Core Linux :

sudo mkdir -p tce/optional
sudo mkdir opt

On installe le MBR sur la clé et on configure le boot (où sdX est l'identifiant de votre clé (ex: sdb)) :

sudo cat /usr/lib/syslinux/mbr.bin
sudo blkid -s UUID /dev/sdX1
sudo gedit boot/extlinux/extlinux.conf

Ici, gedit a dû s'ouvrir. Retournez dans le terminal, notez l'UUID qui s'est affiché à la fin de la commande suivante et ajoutez

waitusb=5 tce=UUID="VOTRE_UUID" restore=UUID="VOTRE_UUID" home=UUID="VOTRE_UUID" opt=UUID="VOTRE_UUID"

aux lignes où

append initrd=[...]

s'affiche.

Enregistrez, retirez la clé USB, bootez et profitez!

Open WRT (kamikaze)

Dans ses versions les plus récentes, Open WRT réagit très mal avec le Wyse S30: hangs on boot, système de fichier non reconnu, etc... Cependant, dans sa version « Kamikaze » (8.09.2), aucun de ses problèmes ne se pose, même pas la maladie linuxienne du « hang on boot »!. Ici, nous allons donc voir comment flasher Open WRT Kamikaze sur la mémoire interne (pas besoin de clé USB!) du Wyse S30.

Installez et démarrez Debian (cf les instructions disponibles ici-même).

On se connecte en root:

sudo -i

On télécharge la dernière version d'OpenWRT Kamikaze dans un répertoire temporaire :

wget http://downloads.openwrt.org/kamikaze/8.09.2/x86/openwrt-x86-ext2.image -O /tmp/openwrt.img

Doit correspondre à 22f14a11da29651bbf2fc24e8991a0a7. Si ce n'est pas le cas, vous devez recommencer le téléchargement :

md5sum /tmp/openwrt.img

On décharge les modules bloquant la lecture de la mémoire interne :

modprobe -r pata_amd pata_cs5536 ata_generic

Et on charge un module permettant sa détection :

modprobe ata_generic all_generic_ide=1

On écrit l'image d'OpenWRT Kamikaze sur la mémoire interne du Wyse (environ 40 secondes) :

dd if=/tmp/openwrt.img of=/dev/sda

Arrêtez Debian, retirez la clé USB et bootez sur la mémoire IDE

Reliez directement votre Wyse à votre PC via un câble ethernet. Désactivez toutes les autres connexions

Entrez les commandes suivantes dans un terminal

On se connecte en telnet au Wyse (utilisez PuTTY si vous êtes sous Windows) :

telnet 192.168.1.1
passwd # Entrez un mot de passe
exit

Ensuite, accédez à votre Wyse, soit en SSH:

ssh root@192.168.1.1

soit via un navigateur:

http://192.168.1.1/

Et voilà! Libre à vous de faire ce que vous souhaitez: changer l'IP, créer un répéteur wifi, etc... Pensez à faire un tour sur la documentation officielle!

Activer les ports USB

Connectez-vous en SSH et entrez les commandes suivantes:

On met à jour la liste des paquets :

opkg update

On installe tout ce qui est utile :

opkg install kmod-usb-ohci usbutils libusb

On redémarre :

reboot

Problèmes courants

Mon système consomme peu de ressources mais tourne lentement

C'est un des désavantages du Wyse: ses ports USB sont lents, trop lents. Ici, deux solutions s'offrent à vous:

  • Soit vous faites tourner un système d'exploitation léger, tel que Tiny Core Linux (en suivant les instructions disponibles ici-même)
  • Soit vous remplacez la mémoire interne (en suivant encore les instructions présentes sur cette page) pour pouvoir installer un système d'exploitation directement sur le Wyse

Ma distribution Linux se bloque souvent au démarrage

C'est un problème courant sur le Wyse S30. Ici, la seule solution viable est de flasher votre Wyse avec Coreboot (voir les instructions disponibles plus haut)

Ma distribution ne reconnaît pas la mémoire interne du Wyse/le disque dur IDE que j'ai branché

Lorsque vous démarrez via un périphérique USB, le BIOS du Wyse désactive automatiquement l'accès à l'IDE. Pour rétablir cet accès, deux solutions s'offrent à vous:

Soit vous tentez d'installer une distribution Linux et, lors de l'installation, ouvrez un shell (généralement ctrl+alt+f2) et entrez ces commandes qui permettront de détecter la mémoire interne:

sudo -i
modprobe -r pata_amd
modprobe -r pata_cs5536
modprobe -r ata_generic
modprobe ata_generic all_generic_ide=1

Soit vous tentez d'installer un système d'exploitation autre que Linux et la seule solution consiste à flasher votre Wyse avec Coreboot (voir les instructions disponibles plus haut).

Liens utiles

C'est par hasard, en vérifiant la liste des flux RSS auxquels je suis abonné, que je suis tombé sur cet article de Tom23 annonçant la fermeture prochaine de Homeserver-DIY.net. Et je ne pouvais pas laisser passer l'information sans remercier ce dernier pour tout ce que ce site m'a apporté.

Pour comprendre pourquoi l'annonce de la fermeture me fait réagir, il faut remonter au début des années 2010. Nous sommes alors 10 ans avant la COVID-19, et le virus qui anime le collégien que je suis s'appelle l'auto-hébergement. Quelques temps avant l'arrivée du maintenant célèbre Raspberry Pi, mon serveur à tout faire (« maude.quent1.fr » de son hostname) est alors un Seagate Dockstar, hacké du bootloader jusqu'au système d'exploitation pour y faire tourner ArchLinux ARM sur clé USB. C'est à cette période que je fais mes premières armes sur Linux, son shell et ses subtilités. C'est également à cette époque et au fil de mes expériences (plus ou moins réussies, à quelques chmod -R 777 près) que je commence à suivre quelques communautés liées à cette passion, notamment auto-hebergement.fr et, vous l'aurez deviné, Homeserver-DIY.net.

Ce site internet est alors une mine d'or francophone pour l'apprenti-sorcier que je suis. On y retrouve entre autres des actualités, des tutoriels, un wiki et un forum grâce auxquels j'apprends énormément sur le monde des serveurs Linux. Parmi toutes les personnes qui participent à l'aventure, deux pseudos me reviennent immédiatement à l'esprit : Tom23 et Seboss666. Merci à eux.

Mais Homeserver-DIY.net aura été d'une plus grande influence encore. Ainsi, lorsque j'apprends en 2013 que Tom23 vend des clients légers Dell Wyse S30 d'occasion à un très bon prix, je me décide à en acquérir deux pour voir ce qu'il est possible d'en faire. Pas tant du côté des performances (on parle de machines avec un processeur AMD Geode GX500 cadencé à 366MHz, 128Mo de RAM et tournant sous Windows CE), mais plutôt pour tenter d'à mon tour apprendre à hacker ce genre de machine.

Très admiratif de ce que d'autres avaient fait pour le Dockstar et fort des vacances d'été devant moi, je me suis alors mis au défi de booter tout ce qu'il était possible et de le documenter. Tout ce travail s'est conclu par la mise en ligne, début septembre 2013, d'une page sur le wiki du site : Hackons le Wyse S30. Depuis l'annonce de la fermeture du site, j'ai pris mes dispositions et ait sauvegardé l'intégralité de la page. Cette dernière sera très prochainement remise en ligne ici-même.

Vous l'aurez compris, Homeserver-DIY.net aura été pour moi une grande source de savoir et d'inspiration, et sa fermeture me rend un brin nostalgique. À nouveau, je tiens à adresser mes remerciements à Tom23, pour son travail et tout ce qu'il m'aura apporté. Farewell, Homeserver-DIY !

Aujourd'hui petit tutoriel pour ceux qui comme moi cherchent à émuler des ports série (également appelés ports RS-232) sous Linux. Nous verrons, au travers de ce tutoriel, comment compiler et charger le module tty0tty, qui va se charger de créer quatre paires de ports RS-232 (allant de tnt0 à tnt7), communiquant deux à deux. Ainsi, tnt0 et tnt1 agiront comme s'ils étaient reliés à un même câble physique : tout caractère transmis à l'un sera reçu par l'autre, et inversement. Même principe pour tnt2 et tnt3, tnt4 et tnt5, et enfin tnt6 et tnt7. Let's go!

Installation du module tty0tty

Note : les commandes suivantes devront être exécutées en tant que root. Un petit sudo -i fera l'affaire.

Nous allons commencer par cloner le dépôt contenant les sources dans un répertoire, ici /opt :

cd /opt
git clone https://github.com/freemed/tty0tty

Une fois le dépôt cloné, nous allons pouvoir passer à la compilation :

cd tty0tty/module
make

Si la compilation s'est déroulée sans erreurs, nous allons pouvoir passer à la prochaine étape : l'installation dans le noyau. À noter que cette étape sera à réaliser après chaque mise à jour du noyau.

cp /opt/tty0tty/module/tty0tty.ko /lib/modules/$(uname -r)/kernel/drivers/misc/

Il ne nous reste plus qu'à charger le module dans le noyau. Pour cela, nous allons re-générer les « maps » de dépendances (man depmod pour plus d'informations) puis charger le module dans le noyau :

depmod
modprobe tty0tty

Enfin, nous pouvons, si vous le souhaitez, automatiser le chargement du module à chaque démarrage du noyau. Pour cela, il suffit d'éditer (toujours avec les droits root) le fichier /etc/modules

nano /etc/modules

Puis d'y rajouter la ligne suivante, tout à la fin :

tty0tty

Vérifions que tout fonctionne correctement

Pour tester le bon fonctionnement de nos ports série, rien de plus simple. Ouvrez deux terminaux. Dans le premier, nous écouterons sur /dev/tnt0 :

sudo cat /dev/tnt0

Dans le second, nous enverrons un message à /dev/tnt1. Les deux ports agissant comme s'ils étaient physiquement reliés, /dev/tnt0 devrait ainsi pouvoir le recevoir.

sudo echo "Bonjour le monde !" > /dev/tnt1

Si tout s'est bien passé, vous devriez avoir quelque chose comme ceci :
tty0tty_demo

Et voilà. Enjoy !

Aujourd'hui, je vous propose un petit tutoriel qui va vous permettre de mieux gérer le réseau de vos machines virtuelles sous Proxmox, avec entre autre la création d'un nouveau réseau dédié aux machines virtuelles et la mise en place d'un serveur DHCP pour distribuer des adresses IP aux machines et containers.

L'idée est simple : votre serveur hôte dispose d'une seule carte réseau, branchée à votre réseau local (ici 192.168.0.0/24). Une machine virtuelle de routage, sous pfSense, est « bridgée » à cette interface (c'est-à-dire qu'elle agit comme si elle était connectée physiquement à votre réseau local, avec sa propre adresse IP). Cette machine est reliée à une seconde interface, cette fois-ci purement virtuelle (c'est-à-dire que des machines virtuelles peuvent s'y connecter, mais elle n'est associée à aucune carte réseau physique), à laquelle elle fournira des adresses IP.

Bridges, interfaces physiques, késako?

Avant de nous lancer dans le vif du sujet, je vous propose une petite explication sur ce que sont les bridges (que l'on pourrait également qualifier « d'interface virtuelle ») et interfaces physiques.

Commençons par les interfaces physiques. Comme leur nom l'indique, ce sont des cartes réseaux physiques (principalement des cartes Ethernet, donc). Branchées à votre box, elles vous fourniront Internet. Branchées à un ordinateur (et correctement configurées, ce que nous effleurerons dans cet article), elles vous permettront de vous connecter au réseau local dédié aux machines virtuelles. Elles sont notées, sous Proxmox, ethX (X étant un nombre unique, débutant à zéro et incrémenté automatiquement).

Passons ensuite aux bridges (appelées « ponts » dans la traduction française de Proxmox). Notés sous la forme vmbrX (X étant un nombre choisi par l'administrateur système, toujours sans doublon possible), ce sont des cartes réseau totalement virtuelles. C'est-à-dire qu'elles n'existent qu'au travers de quelques lignes d'un fichier de configuration : elles ne correspondent à aucune carte réseau physique. On peut y « brancher » (toujours au travers des fichiers de configuration) deux choses : des machines virtuelles et des interfaces physiques. Du point de vue des machines virtuelles, ce sont les seules cartes réseaux associables.

Ainsi, il n'est pas possible de relier la machine virtuelle « Truc01 » à la carte réseau « eth0 » (que nous considérerons comme reliée à une box) pour lui amener Internet. Pour arriver à cela, il va falloir passer par l'intermédiaire d'un bridge « vmbr0 », auquel sera associé notre carte eth0, que nous brancherons à notre machine Truc01. Ainsi, lorsqu'elle démarrera, notre machine virtuelle se comportera comme si elle était branchée physiquement à notre box et obtiendra, au même titre que notre serveur, sa propre adresse IP sur le réseau.

Mais ce comportement n'est pas forcément idéal, surtout si vous comptez utiliser beaucoup de machines virtuelles et/ou souhaitez expérimenter avec les services réseaux (tel que le DHCP, par exemple). Cela tombe bien : il est possible de faire autrement. C'est ce que nous allons voir ici.

Création de deux réseaux et d'une machine virtuelle de routage

Maintenant que nous en savons un peu plus sur la manière dont fonctionne le réseau sous Proxmox, je vous propose de passer à la configuration. Commencez par vous connecter sur l'interface d'administration de Proxmox (par défaut http://ip-de-l-hyperviseur:8006/). Sélectionnez ensuite dans la vue de gauche votre machine, puis cliquez sur l'onglet « Réseau ».

La première étape consiste ici à vérifier que notre interface physique eth0 n'est pas configurée avec une adresse IP statique (nous la configurerons ailleurs, plus tard). Pour cela, double cliquez dessus puis assurez-vous que l'ensemble des champs (à l'exception de « Nom » et de « Commentaire », qui n'ont aucune importance) sont vides :

Proxmox_vue_interface_eth0

Nous allons ensuite pouvoir passer à la création de deux bridges. Le premier, vmbr0, sera l'interface de liaison avec notre box (donc le côté « WAN », du point de vue de notre routeur). Le second, vmbr20 (j'ai choisi ce nom car la plage IP associée sera 10.0.20.0/24), sera une interface purement virtuelle sur laquelle les autre machines virtuelles pourront obtenir une adresse IP. Ce sera donc le côté « LAN » du point de vue du routeur.

Pour créer un bridge, rien de plus simple. Toujours dans l'onglet « Réseau » de l'hyperviseur, cliquez sur « Créer », puis sélectionnez « Linux Bridge ». Une boîte de formulaire s'ouvre alors. Remplissez-là comme il suit :

  • Nom : nom de l'interface virtuelle (vmbr0 par exemple)
  • Adresse IP : adresse que prendra le serveur Proxmox sur l'interface. Sur vmbr0, c'est l'adresse IP (statique) qu'aura le serveur sur le réseau de la box. Remplissez ensuite le masque de sous-réseau en conséquence.
  • Passerelle : adresse par laquelle il est possible de joindre d'autre réseaux (par exemple Internet). Ici l'adresse IP de la box.
  • Ports membres : cartes réseaux (ethX) associées au bridge

Ainsi, pour vmbr0 (connexion à la box) vous devriez obtenir quelque chose comme ceci :

Proxmox_vue_interface_vmbr0

Et pour vmbr20 (réseau local pour les machines virtuelles) :

Proxmox_vue_interface_vmbr20

Note : ici 10.0.20.1 sera l'adresse IP de l'hyperviseur sur le réseau et 10.0.20.254 sera l'adresse IP de la machine virtuelle pfSense

Proxmox n'appliquant les modifications du réseau qu'au redémarrage, relancez votre serveur. Si tout s'est bien passé, votre hyperviseur est toujours accessible et vous pouvez passer à l'étape suivante. Dans le cas contraire, je vous invite à vérifier votre configuration pour déceler d'éventuelles erreurs.

Configuration de pfSense pour le routage et la fourniture d'adresses IP

Maintenant que nos interfaces sont correctement configurées, nous allons pouvoir passer à la dernière étape de notre aventure : la configuration d'une machine virtuelle sous pfSense. Pour cela, commencez par récupérer une ISO d'installation sur le site officiel de pfSense. Une fois celle-ci téléchargée, créez une nouvelle machine virtuelle (pensez à sélectionner « Autre types d'OS » pour le choix du système d'exploitation : pfSense est une BSD, pas une Linux!) avec deux cartes réseaux en accès par pont, sur vmbr0 et vmbr20 (il faudra, pour cela, passer par l'onglet Matériel → Ajouter → Carte réseau). Niveau ressources allouées, à vous de voir : j'ai personnellement choisi d'allouer 1 CPU, 256 Mo de mémoire vive et 5 Go de disque dur, ce qui pour mon usage est amplement suffisant.

Démarrez maintenant la machine virtuelle, puis passez en console : nous allons procéder à l'installation de pfSense. Ne vous prenez pas trop le choux : la « quick install » fonctionne très bien. Pensez simplement à choisir le « standard kernel », indispensable pour la suite de ce tutoriel.

Une fois l'installation terminée et pfSense lancé, nous allons devoir reconfigurer manuellement pfSense. Nous situant du côté « WAN » (c'est-à-dire pour un pare-feu du côté ennemi), nous ne pouvons pas encore accéder aux différents outils d'administration du pare-feu (interface web et SSH).

Pour remédier à cela, nous allons commencer par désactiver temporairement le pare-feu. Dans l'interface console, choisissez l'option « 8) Shell » puis entrez la commande suivante :

pfctl -d

Il vous est maintenant possible d'accéder à l'interface web en vous rendant sur https://[ip-wan-du-firewall/. Connectez-vous ensuite avec l'identifiant admin et le mot de passe pfsense. Configurez votre pare-feu comme bon vous semble. N'oubliez pas, à la fin de l'assistant de configuration, de re-désactiver le pare-feu. Nous procéderons ensuite à l'autorisation du trafic WAN entrant dans le pare-feu et nous reconfigurerons ensemble le réseau LAN pour utiliser la plage d'adresses 10.0.20.0/24.

Commençons si vous le voulez bien par la reconfiguration du pare-feu. Dans le menu situé tout en haut, sélectionnez Firewall → Rules. Cliquez ensuite sur le bouton « ^ Add » pour ajouter une nouvelle règle. Configurez-là comme il suit :

  • Section « Edit Firewall Rule »
    • Action : Pass
    • Interface : WAN
    • Address family : IPv4
    • Protocol : any
  • Section « Source »
    • Source : network, 192.168.0.0/24 (où 192.168.0 est le début de l'adressage IP du réseau de votre box, qui peut également être 192.168.1(.0))
  • Section « Destination »
    • Source: WAN address
    • : from HTTPS (443) to HTTPS (443)
  • Section « Extra options »
    • Description : ce que vous voulez

Sur la page qui s'ouvre ensuite, cliquez sur la roue crantée en face de la règle « Block private networks ». Dans la page qui s'ouvre ensuite, descendez jusqu'en bas pour décocher l'option « Block private networks and loopback addresses ». Cliquez enfin sur le bouton « Apply changes » pour valider les changements. Ré-activez ensuite le pare-feu en exécutant la commande suivante :

pfctl -e

Le pare-feu est maintenant correctement configuré pour être administré depuis votre réseau local (perçu, je vous le rappelle, comme le WAN). Il ne nous reste plus qu'à configurer correctement le DHCP.

Pour cela, commencez par vous rendre dans Interfaces → LAN. Dans la section « Static IPv4 Configuration », changez l'adresse IPv4 par 10.0.20.254/24. Appliquez les modifications. Rendez-vous ensuite dans Services → DHCP Server, puis changez la « Range » par quelque chose comme 10.0.20.10 - 10.0.20.100 (n'oubliez pas que 10.0.20.0 et 10.0.20.255 sont des adresses non attribuables, et que 10.0.20.1 et 10.0.20.254 sont déjà utilisées par notre hyperviseur et notre instance pfSense). Sauvegardez ensuite.

Toutes mes félicitations : nous avons maintenant terminé. Je vous laisse tester en créant une nouvelle machine virtuelle connectée à l'interface réseau vmbr20. Voici le résultat chez moi, avec une machine virtuelle sous Fedora 24 :

Tuto_proxmox_pfsense_fin

J'ai une adresse IP dans la bonne plage et l'accès à Internet fonctionne.

Ah, et n'oubliez pas d'activer le démarrage automatique pour votre machine virtuelle, au risque que le réseau ne fonctionne plus au prochain démarrage de votre hyperviseur!

Et voilà. Ce dernier article de notre série sur la création d'un hyperviseur sur le HP Pro 6000 SFF est maintenant terminé. J'espère qu'il vous aura été utile. Comme toujours, enjoy!

Note : cet article faisant suite à Un hyperviseur pour 130€ avec le HP Pro 6000 sff, les tests ont donc été effectués sur cette machine. D'autres machines HP et Compaq sont probablement compatibles, cependant je ne peux vous le garantir.

Aujourd'hui, petit tutoriel pour ceux qui, comme moi, ont eu besoin de mettre à jour le BIOS de leur machine HP/Compaq sans pouvoir passer par l'utilitaire officiel, fonctionnant uniquement sous Windows. Pour se faire, nous allons récupérer puis exécuter l'outil de mise à jour du BIOS compatible DOS, à l'aide du clone open-source FreeDOS.

Attention : cette manœuvre n'est pas sans risque et peut conduire à la mort de votre machine.

La première étape consiste donc à récupérer l'utilitaire de mise à jour du BIOS HP, vous l'aurez compris, sur le site de l'assistance HP. Vous devriez ainsi obtenir un fichier .exe de quelques méga-octets. Par exemple, pour le HP Pro 6000 sff, ce fichier appelé SP73556.exe pèse 6,7Mo. Une fois le fichier récupéré, décompressez-le (cela se fait par un simple clic droit sous la plupart des distributions Linux). Gardez ces fichiers de côté.

La prochaine étape consiste ensuite à créer une « clé bootable » de FreeDOS. Pour cela, récupérez une clé USB de l'un de vos tiroirs puis partitionnez là de telle sorte à ce qu'elle ne contienne qu'une seule partition, avec le système de fichiers FAT32. Sous Windows, passez par l'outil gratuit Rufus (qui, en prime, vous installera automatiquement FreeDOS). Sous Linux, tel de vrais barbus, nous allons le faire en passant par le terminal, en partant du principe que votre clé USB est référencée en tant que /dev/sdc par le noyau. Ouvrez un terminal puis exécutez :

sudo fdisk /dev/sdc

Une fois entré dans le prompt de fdisk, exécutez les opérations dans l'ordre suivant (entrez la lettre puis appuyez sur entrée) :

  • o : créer une nouvelle table de partitions sur la clé
  • n : créer une nouvelle partition
    • p : de type primaire
    • appuyez sur entrée (choix par défaut) pour toutes les autres questions
  • w : valider les changements sur le disque

Nous allons maintenant pouvoir formater notre partition, /dev/sdc1, en FAT 32. Pour cela, exécutez la commande suivante :

sudo mkfs.vfat -F 32 /dev/sdc1

Une fois ceci fait, téléchargez puis installez le logiciel unetbootin (référez vous à la documentation de votre distribution préférée pour davantage d'informations). Paramétrez-le comme sur l'image ci-dessous :
unetbootinpuis validez le paramétrage en appuyant sur « OK ». Une fois l'installation terminée, unetbootin vous proposera soit de redémarrer, soit de quitter. Quittez simplement l'application.

Nous allons pouvoir passer à la dernière étape préparatoire : la copie de l'utilitaire sur la clé. Pour cela, commencez par ouvrir votre clé USB puis copiez-y à la racine le dossier « DOS Flash », contenu dans l’utilitaire précédemment décompressé. Pour plus de facilité, nous allons renommer ce dossier en « BU ».

Nous allons maintenant pouvoir passer à la mise à jour du BIOS. Insérez la clé sur un port USB de l'ordinateur, puis démarrez dessus (touche F9 sur le HP Pro 6000, possiblement ECHAP sur d'autres). Une fois dans le prompt DOS (un écran noir avec des écritures blanches, dont la dernière ligne commence par C:\), déplacez-vous dans le dossier BU puis exécutez FLASHBIN.EXE :

CD C:\BU\
FLASHBIN.EXE

Suivez les indications à l'écran, répondez aux quelques questions posées. Si votre ordinateur a été reconnu, la mise à jour devrait se lancer. Laissez-là se faire, sans l'interrompre, puis redémarrez.

Et voilà, si tout s'est bien passé, votre BIOS est maintenant à jour. Enjoy!

Dans un prochain tutoriel, nous verrons comment installer un réseau local virtuel avec pfSense et Proxmox 4 sur le HP Pro 6000 sff.

« Entrées plus anciennes