Mon PC dans le Cloud

Comme vous le savez sans doute si vous me suivez sur Twitter, ou si vous avez lu l’épilogue de ma série de billet “25 ans dans une startup”, je travaille en région parisienne trois jours par semaine et je suis deux jours en télétravail dans ma province profonde (mais belle). Je précise que cette organisation a été mise en place AVANT le confinement de mars 2020, car j’ai la chance d’avoir un employeur moderne. J’en ai fait le bilan dans ce billet consacré au télétravail.

Mon employeur a mis à ma disposition un ordinateur portable qui me suit partout, et j’ai un ordinateur fixe personnel chez moi dans ma province profonde (mais belle) ET un ordinateur personnel chez moi dans ma “coquette petite studette en souplex” de région parisienne. J’ai également installé une VM privée sur mon ordinateur professionnel.

Cela fait donc 3 ordinateurs privés sur lesquels je veux retrouver les mêmes outils, les mêmes habitudes, les emails déjà lus, les mêmes partages de fichiers, etc.

Tout allait bien dans le meilleur des mondes, mais j’étais un peu agacé parfois de devoir synchroniser à la main une configuration, installer trois fois un nouveau logiciel, et maintenir des partages de fichiers en toute sécurité. N’était-il pas possible de simplifier un peu tout cela ?

J’écoutais, de plus en plus séduit, l’appel des sirènes du Cloud. Je voyais passer dans ma veille technologique des appels appuyés en direction des gamers pour qu’ils basculent leurs configurations vers des solutions telles que Google Stadia, Nvidia Geforce Now, xCloud de Xbox ou PlayStation Now. Des gamers ! Alors, pourquoi pas un petit PC perso avec sa petite configuration aux petits oignons ?

Oui mais et ma vie privée dans tout cela ? Et le coût ? Et la sécurité ? Après tout, le Cloud, ce n’est rien d’autre qu’un datacenter géré par quelqu’un d’autre et accessible de partout depuis un accès internet. Il faut se poser les bonnes questions : qui fera les sauvegardes, les mises à jour de sécurité, les montées de version des logiciels et des OS, qui sera “root” sur mes données ?

Autant de questions auxquelles il m’a bien fallu répondre pour l’hébergement de ce blog : après avoir testé l’autohébergement d’un WordPress sur YunoHost, j’ai préféré et choisi la location d’un VPS chez OVH, avec son offre Kimsufi à 3,59€ par mois. Je fais régulièrement un backup (et des tests) sur le WordPress de mon YunoHost. Je présenterai mon usage de la fantastique solution YunoHost dans un billet qui lui sera dédiée.

Oui MAIS : faire héberger un blog, ce n’est pas tout à fait la même chose que de faire héberger la totalité d’un ordinateur personnel… Et après avoir étudié les coûts, les solutions proposées, les risques, le coût des sauvegardes et la sécurité, voici ce que j’ai choisi.

A cause des coûts, j’ai abandonné la notion de “datacenter géré par quelqu’un d’autre” pour ne garder que celle de “accessible de partout depuis un accès internet”. Comme les solutions de type TeamViewer demandent de confier la partie sécurité à quelqu’un d’autre, j’ai donc choisi l’autohébergement complet de ma solution :

J’ai viré de mon ordinateur professionnel, la VM privée que j’y avait installé. J’ai entièrement réinstallé l’ordinateur personnel de ma coquette studette souplex pour n’y laisser que le système d’exploitation (Linux Mint, mais cela aurait aussi bien pu être Windows). Je n’ai conservé qu’un seul ordinateur personnel : celui qui se trouve chez moi.

J’y ai installé le logiciel NoMachine qui est ce que j’ai trouvé de plus efficace pour gérer deux écrans, les périphériques USB et le son à distance.

J’ai configuré le Wake On Line du PC de la manière suivante :
– dans le BIOS, j’ai activé “démarrage sur périphérique PCI-E” ;
– dans l’OS Linux Mint, j’ai activé le WoL avec la commande : sudo ethtool -s enp3s0 wol g

Depuis un PC distant, j’accède de manière chiffré à mon réseau privé grâce à OpenVPN en me connectant sur mon serveur NAS (qui fait tourner le service VPN), puis dans ce canal sécurisé je me connecte en ssh à ma VM Debian (voir le billet “Mon matériel”)

J’allume (depuis cette VM) mon PC perso avec la commande : wakeonlan -i IP -p 9 MAC où IP est l’adresse de broadcast de mon réseau privé et MAC l’adresse MAC du PC perso que je veux allumer.

Une fois démarré, j’y accède avec le client NoMachine (à travers le canal chiffré OpenVPN), et j’utilise mon “PC dans le Cloud” 🙂

Comme il est sous GNU/Linux, je peux si je veux le laisser allumer plusieurs jours sans surprise, si par exemple je lance sur ma carte graphique des calculs durant plusieurs jours.

Quelques remarques avant de vous laisser la parole en commentaire (je suis curieux de connaître vos solutions) :
– la solution NoMachine est vraiment puissante et efficace dans sa gestion des débits internet concernant les graphismes. Seul défaut relevé pour l’instant, elle ne gère pas ma Yubikey USB.
– l’accès par OpenVPN / ssh pour WoL / client NoMachine fonctionne également sous Android ou sur iPhone (pour la commande ssh sur iPhone, j’utilise l’excellente application a-shell).

Et vous, comment accédez-vous à un PC privé à distance ?

Source image https://www.pinterest.fr/pin/471963235926834775

Mon matériel

Machine de calcul, fleuron de mon petit musée personnel – Photo Zythom

Travailler dans la sécurité informatique, même comme débutant motivé, m’a amené à analyser d’un œil neuf l’organisation informatique de la maison. Fidèle à mon souhait de partage, je vais décrire ici l’équipement que j’utilise et comment j’en suis arrivé là. Soyez indulgent et constructif : aidez-moi.

Ce billet est consacré aux réseaux et serveurs de la maison. J’aborderai plus en détail les logiciels sans doute dans un ou plusieurs autres billets.

Tout d’abord, je voudrais rappeler qu’en matière de sécurité, rien n’est terminé. Tout évolue très vite, avec des experts de haut niveau qui suivent cela de près et qui sont eux-même dépassés d’une certaine manière. La règle d’or est donc la modestie. Il ne s’agit donc pas de décrire une solution parfaite et sûre, mais l’évolution d’une informatique domestique particulière (la mienne), avec la vision d’un informaticien plein d’incertitudes.

A tout seigneur tout honneur, regardons un peu du côté du réseau. Et je devrais dire DES réseaux. En effet, suite à une panne ayant duré 30 jours chez mon prestataire fournisseur d’accès à internet (pendant laquelle j’ai mis en place en catastrophe un accès 4G partagé, accès grillé en 2 jours par mon fils adapte du streaming ^^), je dispose de deux box internet, d’un accès 4G de secours et d’une fibre “chez un ami” :
– une Freebox fibre mini 4k
– un boîtier ADSL chez OVH
– un vieux routeur DLink sur lequel on peut brancher une clé USB 4G
– une Freebox fibre Delta S “chez un ami”.

Le cœur de réseau est un switch Netgear 16 ports GS316. Celui-ci n’est pas administrable, et ne permet pas de segmenter le réseau en VLAN, mais il n’est pas cher, il est silencieux et très stable. J’ai inscrit dans ma “TODO list” son remplacement pour pouvoir isoler un peu mieux les usages et séparer le cabinet individuel de mon épouse, mon cabinet d’expertise et les données partagées familiales. Pour l’instant, tout est branché sur le même réseau filaire…
– Avantages : simplicité, partage collectif du photocopieur/imprimante/scanner, partage du serveur de sauvegarde, partage des accès internet.
– Inconvénients : la sécurité est minimale, et un device peut mettre le dawa avec un cryptovirus, tout le monde voit tout le monde… A améliorer donc.

Pendant le confinement, je me suis amusé à mettre en place un basculement automatique vers l’ADSL en cas de coupure sur la fibre, avec une VM pfSense et un choix audacieux sur les masques de réseau, mais je suis revenu dessus et pour l’instant, j’interviens à la main, y compris à distance.

Ne pas avoir mis en place de VLAN, cela n’empêche pas de vouloir segmenter un peu son réseau. Surtout quand on ne fait pas DU TOUT confiance dans ses fournisseurs d’accès internet. J’ai donc isolé les box sur des réseaux qui leur sont dédiés (chaque box vient avec son switch intégré, donc c’est facile), séparé du mien par des petits routeurs Ubiquiti ER-X (à environ 55 euros pièce). Chaque routeur est vu par la box comme étant la DMZ vers laquelle elle envoie tout son trafic, et la gestion des flux est faite depuis le routeur (qui lui m’appartient).

LE réseau le plus sensible est celui du cabinet d’avocat de mon épouse, installée en individuelle dans des locaux adjacents à la partie privative de la maison. J’ai donc séparé son ordinateur avec un troisième routeur ER-X sur lequel elle a la main pour choisir sa passerelle par défaut en cas de coupure internet. Son photocopieur/imprimante/scanner est relié à son PC en USB et au réseau domestique par sa prise Ethernet pour partage avec la maisonnée.

Le troisième réseau de la maison est le réseau Wifi. J’ai longtemps utilisé de nombreuses bornes Wifi “premiers prix”, mais suite aux différentes failles trouvées en 2019 et 2020 (KRACK, Krook, etc.) et à l’ancienneté de mes différents AP qui ne disposent pas de suivi de leur constructeur (donc pas de patchs), j’ai investi dans un groupe de 4 bornes UniFi UAP-AC-Pro qui me permettent de couvrir toute la maison, bureaux, terrasses et jardin de mon domaine (j’habite en province comme on dit à Paris). Ces bornes nécessitent un contrôleur, mais celui-ci peut être une VM et c’est le choix que j’ai fait. J’y reviendrai ci-dessous dans la partie consacrée aux serveurs. Ces bornes Wifi permettent le roaming lors des déplacements dans la maison, et diffusent deux réseaux : un réseau Wifi privatif qui accède aux NAS et un réseau Wifi “Guests” pour les visiteurs (les amis, les amis des enfants, la famille, etc.). Ce dernier ne donne accès qu’à Internet, et un QR-Code est affiché un peu partout dans la maison avec le mot de passe en clair (HADOPI même pas peur).

A propos de domaine, j’ai pour l’instant fait le choix de me passer d’un contrôleur de domaine ou d’un annuaire centralisé : les enfants sont équipés d’ordinateurs portables et de tablettes avec des comptes locaux, comme tous les ordinateurs fixes de la maison, le tout sous Windows, GNU/Linux, Android et iOS. Je réfléchis à un contrôle de l’identité plus strict, dans le cadre d’une approche “Zero trust”, mais je tâtonne encore un peu… Sur ma TODO list donc.

Lorsque c’est possible, les disques durs sont chiffrées avec Bitlocker ou le chiffrement intégré. Les données les plus sensibles sont dans des containers VeraCrypt.

Côté serveurs, il y a trois systèmes hardwares différents :
– un NAS Synology (un DS918+ avec 4 disques durs de 4To) ;
– un HP micro server Gen8 (dont j’ai parlé ici il y a longtemps), initialement sous OpenMediaVault et dont j’ai découvert pendant le confinement qu’il fonctionnait parfaitement sous VMware ESXi 6.5 et qui est dédié aux sauvegardes locales (4 disques de 6To) ;
– un Raspberry PI avec un disque dur USB de 4To, sous YunoHost, dédié à l’autohébergement et à l’externalisation des sauvegardes. Cet équipement est hébergé “chez un ami” qui a la fibre.

Le NAS Synology gère le service DHCP du réseau, ainsi que le service de partage de fichiers. Il permet également d’héberger des VM :
– une VM Debian 10 qui porte le service de contrôleur Wifi, et le service d’accès distant OpenVPN (j’ai arrêté de paramétrer les box des FAI pour faire du NAT de tous les ports dont j’ai besoin, sauf pour le port OpenVPN) ;
– une VM Pi-Hole qui porte le service DNS et les listes de filtrage publicitaire et malware.

La box Delta S permet d’héberger sous forme de VM un nœud Tor sous Debian, directement exposé sur internet.

J’ai ajouté récemment une carte RAID LSI 9240-8i dans le micro serveur HP Gen8 sous ESXi pour gérer de manière matérielle la panne éventuelle de disques durs. Je l’ai passé à cette occasion sous VMware ESXi pour m’amuser avec des VM non vitales qui soulagent le NAS familial. Il héberge entre autres une VM OpenMediaVaut pour les sauvegardes de tous les ordinateurs de la maison (et du NAS Synology), une VM Windows pour tester des trucs propres à Windows, et une VM SELKS pour surveiller un peu tout cela.

Les sauvegardes des postes fixes sont faites vers le serveur de sauvegardes HP Gen8. Les sauvegardes des données importantes (containers VeraCrypt) sont faites vers le NAS familial, qui lui-même est sauvegardé vers le serveur de sauvegardes HP Gen8. Il est également sauvegardé vers le NextCloud autohébergé sur le serveur YunoHost à l’extérieur de la maison. C’est également ce serveur NextCloud qui reçoit les sauvegardes des ordinateurs portables des enfants qui ont quitté le nid familial.

Depuis leur départ, je teste une synchronisation des photos et films familiaux du NAS vers un kDrive du cloud Infomaniak, pour un partage avec eux et préparer une transmission numérique de nos souvenirs (je ne suis pas éternel).

Pour le blog, après avoir testé l’autohébergement d’un WordPress sur YunoHost, j’ai préféré la location d’un VPS chez OVH, avec son offre Kimsufi. Je fais régulièrement un backup (et des tests) sur le WordPress de mon YunoHost.

Comme je suis souvent en déplacement professionnel et que je rechigne à installer des données personnelles sur mon ordinateur professionnel, j’ai étudié l’accès à un ordinateur personnel dans le cloud, façon Stadia, Shadow, GeForce Now, xCloud ou PlayStation Now pour les gamers. Après avoir testé différentes solutions (machine dans Azure, GCP et autres hébergeurs), j’ai choisi une solution toute simple : je me connecte avec OpenVPN à mon réseau personnel et je démarre à distance mon PC perso sur lequel j’ai installé le logiciel NoMachine.

J’ai un PC bas de gamme à base de i5 mais avec deux écrans 24″, gonflé à 16Go de mémoire et animé par une Linux Mint Cinnamon. C’est mon dernier enfant qui a récupéré ma carte graphique GTX 1060 qui fait tourner tous les jeux qu’il pratique. Du coup, je teste mes programmes utilisant CUDA sur un vieux portable disposant d’une petite carte Nvidia. Un jour, à la retraite, je m’offrirai un cluster GPU pour chauffer mes vieux os et faire tourner mes programmes de deep learning 🙂

Dans de prochains billets, j’aborderai plus en détail les logiciels, les sauvegardes et les différents outils survolés ici.

Et vous, quelles solutions pour vos réseaux/serveurs avez-vous choisies ?