On a configuré le raid et installé Ubuntu sur notre serveur dans l’épisode homelab#001.
On va passer à la mise en place du VPN pour se connecter depuis n’importe où sur notre homelab et la mise en place de KVM !
Le choix du VPN
Terminé l’époque où on se prenait la tête à mettre en place un VPN ! En tout cas sur mon homelab…
J’ai fait le choix de partir sur Tailscale que j’avais découvert il y a environ un an lorsque j’avais besoin d’accéder à mon rapsberry pi à distance !
Il est incroyablement efficace, tout est pensé pour ne pas se prendre la tête et aller à l’essentiel !
On va le mettre en place (en 2 minutes chrono) et je vais vous présenter rapidement ses fonctionnalités… après, je suis persuadé que vous allez filer et remplacer votre ancien VPN 😀
Installation de tailscale
La documentation est bien rédigée et facile à suivre… en même temps il faut dire qu’ils ont fait un bon boulot pour le rendre le plus user friendly possible ! lien vers la doc
Je vous recommande de commencer par vous créer un compte (j’ai utilisé le SSO google perso) et d’installer le client et vous authentifiez sur votre pc.
Ensuite sur votre serveur :
curl -fsSL https://tailscale.com/install.sh | sh
Une fois installé, il va vous demander d’ouvrir une URL pour vous authentifier et rejoindre le réseau du VPN, encore une fois saisissez vos credentials que vous avez saisi ou le SSO choisi sur votre PC.
Si vous vous rendez sur la console admin vous pourrez voir vos machines, si elles sont UP, une IP pour les joindre (en 100.0.0.0/8 à priori).
Là où ça devient magique, c’est que si vous cliquez sur edit machine name… et que vous n’avez pas touché aux options par défaut qui se situe en haut dans le menu DNS, vous pourrez joindre votre serveur par son nom DNS. Dans mon cas je l’ai appelé « server ».
Vous pouvez alors tester :
ssh monuser@server
Et normalement si vous avez bien tout suivi vous pourrez vous connecter !
Bon ce VPN, incroyable non ? Vous pouvez rajouter jusqu’à 100 machines de manière gratuite et attendez je vous montre quelque chose de dingue !
C’est bien beau d’avoir accès à mon serveur, mais j’aimerais aussi accéder à d’autres de ses interfaces, car plus tard, il aura des interfaces réseau virtuelles pour mes VM (ou autre…). Et bien justement ! avec tailscale on peut paramétrer le partage de ces interfaces et on peut même définir des devices en exit node (si vous avez jamais un peu touché à Tor, comprenez par là que vous sortirez par cette machine et donc prendrez cette adresse IP de sortie… un VPN publique maison quoi ! )
Mise en place du routage des subnets sur le seveur
Maintenant que vous avez accès à votre serveur en SSH, il suffit de suivre la doc
Ainsi dans un premier temps, on active l’ip forwarding :
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
Et maintenant va utiliser l’utilitaire tailscale pour ajouter nos routes
sudo tailscale up –advertise-routes=192.168.0.0/24,192.168.122.0/24
Pour ma part le premier subnet correspond à mon réseau local et le deuxième sera le subnet de mes VM, à vous de voir. Si vous n’avez encore rien décidé, vous pourrez très bien mettre ça en place par la suite.
Maintenant, vous pourrez retourner dans l’interface graphique sur le panel admin et approuver le routage sur le serveur
D’ailleurs, vous aurez peut-être un bandeau en haut vous informant que le serveur à une clé à expiration.
Pour supprimer ce message sur l’expiration de la clé, cliquez sur le serveur et ensuite les trois petits points
Un nouveau tag devrait être visible sur le serveur :
Maintenant, vous pouvez essayer de pinger des ressources qui sont sur l’autre réseau et ça devrait passer, pratique quand vous n’êtes pas chez vous ou bien que le serveur se situe ailleurs (comme dans mon cas).
Mise en place de KVM
Pourquoi KVM ?
Avec le nombre de possibilités de virtualisation possibles, pourquoi prendre KVM après tout ?
Outre l’intérêt technique de creuser un peu plus la techno, KVM fait partie du kernel linux et aura de ce fait d’incroyables performances.
Voici un petit diagram du fonctionnement global :
Pour plus d’infos, je vous conseille l’article sorti il n’y a pas longtemps de Stephane Robert : KVM
Retournons à notre lab, voici la commande pour installer KVM ainsi que ses dépendances et autres outils indispensables pour notre lab (vous devez en retrouver certain du diagram juste au dessus):
sudo apt install -y qemu qemu-kvm libvirt-daemon libvirt-clients bridge-utils virt-manager
On verra dans le prochain épisode comment contrôler tout ça avec une interface graphique, mais avant, il ne faut pas oublier qu’on a installé le système sur LVM et il faudrait penser à redimensionner ! On verra ça dans le prochain épisode homelab#003