Installer Yunohost en tant que Container non privilégie sur Proxmox Virtual Environment

Bonjour,
Après avoir utilisé Yunohost sur la Carte Olimex Olinuxino en parallèle de ma PVE, j’ai décidé d’en faire un Container de PVE. Ce qui implique qu’en plus du tuto, j’ai appliqué la procédure de restauration de sauvegarde décrite ici : https://yunohost.org/#/backup_fr dans la partie Restauration d'une archive à la place de la post-installation et cela fonctionne parfaitement.

Yunohost et PVE sont vraiment 2 outils formidables, accessibles et puissants.

Ajouter le Template de Debian 9 dans les templates disponibles pour installer le Container :


Dans la partie de gauche, il faut cliquer sur le volume local qui héberge le magasin de templates. Pour moi il s’agit de local(nene).
Dans la partie de droite il faut cliquer sur le bouton Templates rechercher et choisir Debian 9 (pas 8, pas 10) puis Télécharger
Attendre que le téléchargement soit terminé.


Créer le CT sous Debian 9
Cliquer sur Créer CT
tuto_ynh_pve2


Renseigner les champs du 1er écran : Général


Noeud : bien souvent nous n’en avons qu’un
CT ID : l’id du Container, il faut choisir un nombre libre, PVE démarre à 100, ça peut être 101, 102 etc… Il faudra s’en souvenir pour plus tard. On peut le relire sur le Résumé du Container plus tard lorsqu’il sera lancé.
Mot de passe : mot de passe root du Container
Conteneur non privilégié : à cocher, c’est un peu le but



Ici il faut choisir le Modèle debian 9. Si rien n’apparait dans les choix, c’est que l’opération d’ajout du template au début du tuto n’a pas été (correctement ?) réalisée.



Choisir le volume de stockage du disque dur du futur Container ainsi que sa taille.



Renseigner les réglages voulus pour le CPU. Personnellement j’ai mis 2 CPU et je pense que c’est surdimensionné pour l’usage que j’ai de YNH, mais ce n’est pas grave.



Réglages mémoire : j’ai personnellement mis 2 go mais là encore c’est surdimensionné, ma YNH utilise environ 550 mo de RAM



Les paramètres réseaux : j’ai renseigné l’adresse ip, le masque, la passerelle (et le DNS sur l’écran d’après) en dur afin de retrouver rapidement la machine sur le réseau après sa mise en fonction. Autrement DHCP partout fonctionne très bien.



Paramètres DNS



Une dernière chance de vérifier et/ou modifier les paramètres renseignés précédemment. Je conseille aussi de cocher la case Démarrer après création


Attendre la création et la mise en route.


Se logger en root dans Proxmox Virtual Environment (pas dans le Container) par ssh ou par le shell dispo dans l’interface web.
cd /etc/pve/lxc
nano 102.conf (ou 100.conf selon le CT ID que vous avez défini lors de la création du CT)
ajouter ceci à la fin du fichier : lxc.mount.entry : /dev/net dev/net none bind,create=dir
Ctrl + o pour sauver la modif
Ctrl + x pour sortir
Redémarrer le Container


Se logger dans le CT par le shell de l’interface web de PVE ou par ssh, procéder à la mise à jour des paquets, installer Yunohost : voir Installation de Yunohost sur Debian
Post installation traditionnelle
OU
Restauration d’une sauvegarde à place de la post installation normale


Si vous utiliser l’application Client VPN de Yunohost:
Installer l’application
En ligne de commande via le shell de l’interface web ou en ssh :
cd /lib/systemd/system
nano openvpn-client@.service et commenter LimitNPROC=10 puis Ctrl + o pour sauvegarder et Ctrl +x pour sortir
nano openvpn@.service et comment LimitNPROC=10 (la même chose) puis Ctrl + o pour sauvegarder et Ctrl +x pour sortir
toujours en root dans un shell : systemctl daemon-reload


Ce n’est peut être pas nécessaire, mais dans le doute, redémarrer le Container.


Je ne sais pas si c’est pareil pour tout le monde mais sur ma Proxmox, Yunohost met du temps à démarrer, ça m’a souvent mis le doute sur « est-elle plantée pendant le démarrage » mais en fait elle finit toujours par arriver.


C’est fini !

A nous les Templates (pour faire des essais et contribuer aux tests d’applications et de versions de Yunohost), les Snapshots (sauvegarde à chaud et programmable dans PVE!), les Upgrade de disque, mémoire, cpu, et les migrations faciles (déplacement du CT sur une autre Proxmox) !

J’espère avoir été assez clair et surtout que ce sera facile à reproduire pour tout le monde !

@ + !

10 Likes

Bonjour,
alors là, merci merci merci pour ce tuto détaillé, c’est exactement le genre de tuto que je cherchais ici :slightly_smiling_face:

C’est quoi exactement un container non privilégié? J’ai cru comprendre qu’il s’agissait d’un conteneur non root et que c’était plus sécurisé mais ça reste flou pour moi. Pourquoi dans ce cas n’est-ce pas par défaut?

Je ne sais pas dire précisément ce que c’est mais oui il y a quelquechose comme ça. Je pense que la séparation entre la VM et l’hôte est “plus étanche”. ET par défaut les CT sont en non privilégiées, mais OpenVpn a franchement du mal en non privilégié sans les petites modifs…
D’ailleurs je ne sais pas dire si ces modifs ne mettent pas à mal la sécurité, je sais juste dire ça marche et ça me permet vraiment de disposer de la flexibilité de Proxmox.

1 Like

Bonjour,
Voilà un tuto bien documenté. Pour info j’utilise aussi Proxmox pour Yunohost, mais en machine virtuelle. J’en suis très satisfait. Je fais des sauvegardes de la VM complète, je trouve ça pratique. En outre si j’ai besoin de changer de serveur (par exemple pour un plus puissant ou un autre avec plus d’espace), je n’ai pas déplacer la VM. Ceci est je pense valable aussi pour les containers.

Pourrais-tu expliquer ce que signifient les modifications du fichier 102.conf et de la config OpenVPN ?

Hello @pierre0412,
Pourrais-tu me citer les choix qui on fait que tu privilégies le container plutôt que la VM ?
De mon côté, je suis sur proxmox avec VM yunohost.
Backup proxmox en local de la vm + backup proxmox sur un serveur NFS.
En plus backup via l’outil de backup yunohost avec lien symbolique du répertoire backup yunohost sur le NFS.
Les upgrades de VM se passent bien et je fais des tests de restaurations, 0% d’échec sur environ 10 tests.
Migration d’un proxmox at home vers kimsufi et restauration OK.
Enfin, la VM démarre rapidement.
Merci d’avance pour ton avis :slight_smile:

martoni

1 Like

Salut,

En fait pour moi il s’agissait d’un test afin d’essayer de sentir les différences entre VM et CT justement.
Pour être honnête, je ne la vois pas vraiment, à part peut être moins de RAM consommée.

Récemment, je faisais des recherches sur la différence et je suis tombé la dessus : Proxmox VE: Performance de KVM vs. LXC

Une des caractéristiques du CT est la suivante (je cite l’article de dessus) :

En comparaison à KVM, le matériel n’est pas émulé, il est partagé par le système hôte. Ainsi, chaque machine virtuelle utilise le même noyau.

Donc je me suis dit que ça respirait l’optimisation et qu’il fallait que j’essaie.

Pour en revenir aux sauvegardes, il n’est plus question pour moi d’utiliser les backup de Ynh, maintenant que c’est en proxmox c’est sauvegarde VM/CT et Snapshots.

Merci de l’intérêt porté à ma ‘tentative de tuto’ !

Bonne journée !

Salut,

Je vais essayer de ne pas dire de bêtise mais si j’ai bien compris la source que j’ai utilisé (et oublié de citer : pardon), la ligne permet au container d’avoir le droit de créer l’interface TUN ou TAP nécessaire à l’établissement de la connexion VPN de OpenVPN.

Voici le lien : Forum Proxmox VE

Par ailleurs, tant que j’en suis à citer les sources, je n’en parle pas dans ce tuto et peut faire l’objet d’un autre… mon but d’utiliser une VM sur Proxmox était de bénéficier de puissance dispo dans mon Hyperviseur pour faire passer pas mal de traffic de mon LAN dans le VPN.
J’ai donc utiliser ceci : La brique internet faite maison

Voilà voilà,

Bonne journée à tout.e.s

1 Like

Hello,

Merci pour tes réponses.
Côté snapshot, quel est le type de FS de ton proxmox ? Les rollbacks fonctionnent bien ? Quelle est la taille de ta VM ? Snapshot à froid ou pas ?
Merci encore :slight_smile:

martoni

Alors là…
Mon FS est en ext4… Attention, n’ayez pas peur :
J’avais à la base installé mon Proxmox sur un pc “récup” et je n’ai à ce jour que un disque dur type Desktop de 1 To et un petit disque de 150 Go… Donc j’ai posé mes VM / CT sur le grand disque et les petites backups sur le petit disque.

Autrement, je n’ai pas encore essayé les rollbacks et les restauration… J’ai juste tenter de cloner la VM (au tout début de ma restauration de mon ancienne sauvegarde ynh sur la vm) et ça fonctionne bien.

Maintenant que je commence à bien aimer et à m’amuser avec Proxmox, j’ai bien l’intention d’investir dans des DD Nas et monter un petit ZFS au sein toujours de la Proxmox.

Je suis également sur proxmox sur container depuis 3 ans déjà. L’avantage du container Utilise moins de ressource.
Les snapshots avec rollback en cas de mise à jour foireuse.
Comme moins de ressources sont utilisées on peut faire tourner plus de VM, container.
Je tourne en container privilégié.
Il y a certaines applications qui ne fonctionne pas sans (sans doute la manip du client VPN permettrait de touner en conteneur non privilégié.
Je tourne sur un mini PC type nuke avec un SSD M2 de 256Go et un HDD 2.5 de 500Go
Un partage NFS d’un NAS 4To.
le FS est en RaidZ
Les VMs conteneur sont sur le SSD les sauvegarde sur le HDD et les ISOs, Sauvegarde, Templates sur le NFS.
J’ai aussi des données sur le NFS que j’ai ajouté en montage externe sur nextcloud.
J’ai même mis un conteneur proxmox mail gateway sur le proxmox VE
Un snapshot avant chaque maj c’est la règle.
Des applis plutôt costaud dessus
Mastodon, Peertube, Nextcloud, Synapse, Riot pour les plus gourmandes. Et ça tourne bien.
Je vous conseille si vous ne voulez pas prendre de risque.

4 Likes

Capture du proxmox

Merci

Hello les yunohosteurs,

j’utilise un lxc sous proxmox depuis deux ans maintenant :
uptime : 222 jours
Memory usage: 483.58MiB sur 1GiB
SWAP usage: 509.87MiB sur 1GiB

J’ai juste sécurisé un peu plus son réseau en y mettant un firewall pfsense virtualisé en sortie sur le bridge de la carte ethernet de l’hyperviseur. Cela me permet également de pouvoir mettre en place des VIP (Virtual IP) qui pointent vers mes différents serveurs dont le yunohost. Du coup no soucy avec le PTR.

1 Like

Bonjour,

Quelles applications ne tournent pas en conteneur non privilégié? Sauf erreur il est déconseillé de tourner en privilégié pour une question de sécurité si j’ai bien compris, du coup as-tu fais quelque chose de spécial pour renforcer celle-ci?

Le privilege sur un conteneur permettrait à un attaquant (sous reserve que celui exploite une faille sur le conteneur soit yunohost) de remonter du conteneur à la machine hote et donc redescendre sur toutes les autres VM ou conteneur.
Non je n’ai rien fait.
A la base mon proxmox était juste là pour pouvoir gérer des snapshot de yunohost et m’éviter plein de problème.
Au départ yunohost était sur une machine physique… mais je n’avais pas la flexibilité de la virtualisation.
Donc ça ne change rien pour moi.
Pour l’application en cause :
Je me souviens que je ne pouvais pas démarrer mon conteneur qui plantait sans les privilèges.
C’était l’appli wallabag qui posait des problèmes de fichier. Le conteneur ne se lancait pas et j’avais plein d’alerte sur le système de fichier avec wallabag.
La seule solution a été de démarrer en conteneur privilégié… et j’ai supprimé l’application. Je devrais tester sans les privilèges pour voir à nouveau.

1 Like

Salut,

Merci pour le tutoriel, ça me tente bien :slight_smile:

Pour le moment j’en suis à l’installation de Proxmox VE 5 sur un serveur distant (un KS-1 de kimsufi).

J’ai suivi ce guide => https://blog.zwindler.fr/2017/07/11/deploiment-de-proxmox-ve-5-sur-un-serveur-dedie-part-1/
Mais… une fois installé (VPS Proxmox VE 5 (ZFS) (64bits) ), je ne parviens pas à me connecter. Apparemment le SSH est possible, mais quid du couple login/password à utiliser ?

Normalement c’est le user root avec ton mdp root choisi au départ au reçu par email de kimsufi aprés la fin d’install.
2 méthode de connexion en ssh port 22 normal ou
via l’interface web via l’url https://ip_public:8006 idem user root et mot de passe root
Ensuite tu peux activer authentification en 2 étapes sur l’interface web. Je te conseille de changer le port ssh et de créer un autre user pour tes connexions ssh ensuite le user root interdit via mot de passe. tu mettras une clé pour le root.

1 Like

Merci, je n’avais pas vu que l’email dans mes notifications.

J’ai donc pu installer PVE et ajouter une couche de sécurité minimale :

  • port ssh modifié
  • installation de fail2ban
  • création d’un user avec connexion ssh uniquement par clef (désactivation de l’authentification via password)
  • desactivation du ssh directement sur root
  • dans PVE : ajout de la double authentification (2FA) via TOTP.

Je regarde dans la semaine pour ajouter une VM. Encore merci !

Plop

J’ai commencé à m’amuser un peu.

Avant toute chose, le setup :

  • Serveur distant (kimsufi ks-1)
  • Utilisation de l’ISO Proxmox fournie par OVH (PVE 5.4-13)
  • Pas d’autre choix que le ZFS (et SWAP) pour les partitions
  1. Création du CT : Fail ! Je me retrouve avec le message d’erreur suivant :

Warning, had trouble writing out superblocks.
TASK ERROR: unable to create CT 100 - command ‘mkfs.ext4 -O mmp -E ‘root_owner=100000:100000’ /var/lib/vz/images/100/vm-100-disk-0.raw’ failed: exit code 144

Quelques recherches plus tard, et j’apprends qu’il faut au préalable créer un disque ZFS : DataCenter => Storage => Add => ZFS

  1. Cela fait, on peut installer sereinement sa Debian via le template de Stretch.

Évidemment je me suis loupé sur le réseau : n’étant pas en local, j’ignore ce que je dois mettre en IP, en gateway (l’IP du serveur KS ?) et en DNS.

C’est pas vraiment le topic, mais quelqu’un aurait la solution ?

  1. Pour finir, deux points d’attention :
  • PVE consomme plus d’un Go à vide. Sur un petit serveur dédié ça fait vite lourd (j’ai deux Go sur le mien).
  • Il semble il y avoir une coquille dans le tuto : au lieu de faire un cd /etc/pve/lvx à la fin de l’install, j’ai dû aller dans le répertoire /etc/pve/lxc.
    Étant sous PVE5 et l’auteur PVE6, il se peut que ça ait changé entre les deux versions.

Bonjour,
Merci d’avoir signalé l’erreur ça m’a permis de rectifier !
Pour le ZFS, je n’ai pas eu cette obligation… Peut être parceque je j’ai installé pve sur un ‘ancien pc’ de la maison…

De même pour la configuration réseau, je suis sur mon LAN donc chaque container est vu comme une machine sur le LAN et obtient une ip privée de la part de ma box :

Sur ta config ce sera différent, il faudra utiliser le routage par pve ou installer container qui fait routeur…
La routage avec proxmox :


La doc pve parle des 2 premiers