Retour d'expérience : migration de mon infra sur Proxmox (VM)

Bonjour à toutes et tous,

Venant de terminer ce weekend la migration de mon infra, je me suis dit qu’un petit compte-rendu pourrait être utile à d’autres :wink:

Le contexte : Depuis 3 ans maintenant, j’autohébergeais mon serveur Yunohost à la maison sur un serveur HP Microserver Gen 8 (G1610T / 8Go Ram) sur un unique disque dure de 1To (à l’époque je n’avais que cela sous la main) avec un backup sur un second disque, de 2To (1 dump de la bdd 1 fois par jour | une sauvegarde incrémentielle par semaine).

Ma problématique : Cependant, après 3 ans de bons et loyaux services, certaines mises à jours commençaient à poser problème (mon Nextcloud ne voulant pas s’upgrader de la 15.0.14 vers 18.0.4, par ex, et mes custums Webapps (dont l’app support n’est plus maintenue semble-t-il) ne pouvaient plus être mises à jour non plus…).
Bref, après être passé de la v2 de Yunohost à la v3 (et bientôt à la v4), il était temps de refaire une installation propre et surtout d’opter vers une infra plus flexible pour unifié un peu le reste de mon infra !
D’autant que mon disque de backup vient de me lâcher dans la semaine…

Bref, voici la nouvelle infra pour laquelle j’ai opté avec le matériel à disposition à la maison:

  • Serveur n°1 : Proxmox VE 6.2.6 ; Xeon E3-1220v2 | 16Go RAM | 1 HDD SAS 300Go + 3x2To HDD SAS (en Raidz1).
  • Serveur n°2 : NAS OpenMediavault ; G1610T | 8Go RAM | 4 HDD SATA 1To (Raid5) pour les backup des VMs (via NFS).

Et voici comment j’ai migré :

  1. Par mesure de précaution, j’avais prévu de ne pas toucher au HDD sur lequel est installé mon Yunohost (histoire de pouvoir revenir rapidement à l’état initial si besoin).
  2. Réalisation d’une sauvegarde via l’interface graphique de l’ensemble du serveur (puis export de la backup sur mon disque dur externe USB).
  3. Installation de Proxmox sur le nouveau serveur (avec un peu de configuration histoire de blinder un peu le bouzin), création de la VM Yunohost (à partir de l’*.iso Yunohost sur le site officiel).
  4. Copier-coller de la sauvegarde dans la VM puis restauration (qui fonctionne parfaitement pour les apps officielles Nextcloud, TTRSS… mais pas pour les Customs Webapps avec bdd, mais rien de bien grave ! :sunglasses:) -> bref, l’infra est en place !
  5. Mise en place d’Openmediavault sur l’ancien serveur (toujours sans toucher à l’ancien HDD avec Yunohost -> disque que je mets de côté au cas où pour plus tard) et des partages NFS qui vont bien pour la sauvegarde des VMs du Proxmox (je “les”, car d’autres VMs viendront remplacer un ou deux de mes serveurs qui tournent sur des RPi en ce moment… à suivre :wink: )

Bref, tout s’est plutôt bien passé et surtout, j’ai désormais une infra plutôt flexible, même si pas parfaite, et surtout que je pourrai faire évoluer plus facilement par la suite !

Enfin, pour répondre à la question qui vous vient peut-être, voici à quoi ressemble l’organisation générale :

Internet ------ Box ------- Bastion IPfire ----- VM Yunohost (sur Proxmox) dans DMZ

Voilà, désolé pour ce pavé ! :sweat_smile:
@bientôt
Sangokuss

9 Likes

Petit complément : déjà un retour positif avec ce matin l’upgrade de Nextcloud 18.0.4 vers 18.0.5 qui se passe mal, mais comme j’avais fait un snapshot juste avant l’upgrade… un simple clic m’a permis de revenir en arrière en moins de 2 minutes.

Bref, on gagne vraiment en facilité d’administration :slight_smile:

Pour info, pour le moment, au regard des tailles des espaces disponibles, voici comment je gère mes sauvegardes :

  • 1 sauvegarde / semaine (durant la nuit) vers mon NAS Openmediavault (pour le moment, je conserve les 5 dernières, je verrai ensuite pour les adaptations),
  • 1 snapshot avant chaque upgrade d’application (je sais, on ne peut pas vraiment parler de sauvegarde ici… mais c’est bien pratique !)

Bonjour Sango,

Merci, c’est toujours utile d’avoir un retour d’expérience comme le tiens, ça donne confiance pour se lancer à son tour.

J’envisage de passer sur le même type d’infra que la tienne d’ici la fin de l’année. J’ai posté les semaines passées sur le forum mais le sujet est resté sans réponse, sans doute dû à mes trop nombreuses interrogations:

Besoin d'infos pour installation de plusieurs Yunohost (ou pas?)

2 Likes

Complément d’informations après 72h :

  • La configuration décrite ci-dessus suffit pour le ZFS mis en place (il ne faut pas être surpris par la consommation RAM qui avoisinne les 7-8Go, c’est normal !)
  • Vu l’efficacité et la compression, finalement, je sauvegarde deux fois par semaine (mercredi et samedi) vers mon partage NFS sur le Nas OpenMediavault.
  • Niveau performance, j’ai de la marge !

:wink:

Merci pour ce retour c’est ce que je pense faire, peux tu nous en dire plus sur ta VM ?
Les données sont stockées sur ton OMV via un partage NFS si j’ai bien compris ?
Est ce que tu utilise un reverse proxy en frontal ?

Bonjour @thomas,

Pour ce qui est de la VM :
Capture d’écran de 2020-07-01 09-18-12
Et avec un espace disque de 250Go pour le moment.

Oui, j’utilise un second serveur (mon ancien HP Microserver Gen8 que j’ai convertis en NAS via OpenMediaVault avec un partage NFS).

Concrètement, pour l’aspect sécurité, l’essentiel du travail est assuré par le bastion IPfire de la manière suivante :

  • Serveur Yunohost (VM) placée dans la DMZ (zone orange),
  • NIDS Suricata en mode IPS,
  • Blocage Geoip (je suis plutôt strict et n’autorise que peu de pays),
  • Blocage des IP Shodan & Cie… (mais les IP de Shodan viennent encore de changer me semble-t-il),
  • Bien entendu, les parefeux du proxmox sont actifs et restrictifs,
  • Et petit plus : j’ajoute Protsentry sur le Yunohost (avec un whitelisting de mon réseau perso) -> c’est très pratique car IPfire filtre 99,9% du traffic non souhaité et le reste du temps, le petit mâlin qui passe se fait piéger par le ban automatique de portsentry.

Donc pour le moment, cette configuration suffit (à suivre si cet été j’ai le temps d’aller un peu plus loin…) :wink:

1 Like

Pour le blocage geoip, j’utilise une restriction Nginx avec un script perso, nous avions échangé à ce sujet. Ce blocage par Ipfire se fait-il sur tous les ports ou uniquement les ports 80 et 443? je me pose surtout la question concernant le mail, les serveurs pouvant se trouver à l’étranger, il n’est pas possible d’utiliser une géo-restriction pour ce service.
A titre d’info, quelles listes de blocage IP Shodan utilises-tu? Est-ce intégré à Ipfire? (faut que je teste déjà Ipfire, c’est la meilleure façon de se faire une idée).

Ça m’intéresse aussi de savoir comment tu procèdes concernant cet aspect. Le reverse se fait à partir de Ipfire? A moins que tu n’en utilises pas et que tous le trafic est redirigé de Ipfire vers la VM Yunohost.

Ça consomme quand même un max de Ram quand on sait que Yunohost peut tourner sur un RPI avec 1 Go! Du coup je peux oublier vu la config que je souhaite.
Je pense passer du RPI à un mini-pc pour rester sur une consommation électrique modérée, j’ai bien un serveur beaucoup plus puissant à disposition, cependant ça me semble disproportionné vu mon usage.
Quel est l’intérêt de zfs qui t’as fais retenir cette solution?

Oui, pour ma part, le blocage Geoip se fait sur tous les ports via IPfire. L’intérêt que j’y vois (ça se discute, hein ! :wink: ), c’est de bloquer en amont du Yunohost.
Mais tu peux configurer tranquilou les règles qui vont bien pour bloquer sélectivement sur certains ports… etc

Pour les blocages de Shodan et Censys, voici les IP bloquées :

Résumé

198.20.64.0/18
71.6.202.198
66.240.205.34
71.6.146.130
188.138.1.119
198.20.87.103
198.20.87.96
198.20.99.135
198.20.99.128
198.20.70.119
198.20.70.111
198.20.69.103
198.20.69.96
198.20.69.79
198.20.69.72
98.143.148.135
155.94.222.12
155.94.254.143
155.94.254.133
98.143.148.107
216.117.2.180
80.82.77.33
185.181.102.18
159.203.176.62
89.248.167.131
71.6.146.186
89.248.172.16
185.163.109.66
80.82.77.139
94.102.49.193
93.174.95.106
94.102.49.190
162.159.244.38
104.131.0.69
209.126.110.38
198.20.87.98
71.6.158.166
104.236.198.48
66.240.219.146
85.25.43.94
71.6.146.185
85.25.103.50
71.6.165.200
188.138.9.50
82.221.105.7
71.6.167.142
198.20.69.74
198.20.69.98
198.20.70.114
198.20.99.130
93.120.27.62
66.240.236.119
71.6.135.131
66.240.192.138
82.221.105.6
198.108.66.0/23
141.212.122.0/24
141.212.121.0/24
208.180.20.97

Pour ZFS, il y a plusieurs raisons, mais je trouve que ces articles résument l’essentiel :

:warning: la consommation de RAM n’est pas un problème ici, car c’est de la mise en cache… etc Bref, le système va s’adapter si d’autres applications ont besoin de davantage de RAM pour tourner :wink:

Ok, je comprends mieux pour la ram.

Avec le blocage Geoip, n’as-tu pas des problèmes de réception de mails? C’est ce que je crains principalement, aussi c’est la raison pour laquelle je ne fais pas de restrictions GeoIp pour les ports associés à ce service.
Ton expérience est une vrai mine d’or!

Pas de souci, non, mais je dissocie mes usages. Pour faire court :

  • j’ai des boîtes “pro”, gérés par mes employeurs,
  • une boîte asso, gérée par asso,
  • une boîte “perso” sur le Yunohost -> donc échanges très restrictifs niveau échanges :wink:

Et puis bon, parmi les pays que je ne bloque pas il y a la France, l’Allemagne, les Etats-Unis, Les Royaumes Unis… bref, l’essentiel passe :slight_smile:

1 Like

Ok, je me posais principalement la question pour les US (Gmail, Yahoo, hotmail…).

Je me suis dit ce matin qu’une petite photo de l’infra serait sympa :wink:

6 Likes

Bonjour,
Merci pour ce post. Je n’ai pas votre niveau technique, mais votre utilisation d’openmediavault m’interpelle. J’ai un serveur sur le web sur une dedibox chez https://www.online.net/fr/hebergement-web. Je souhaite faire deux types de sauvegarde de ce dernier sur mon serveur openmediavault hébergé chez moi.
*une sauvegarde des fichiers utilisateurs du serveur web qui pourraient êtres facilement restaurés.
*une sauvegarde complète du serveur web. Cette sauvegarde pouvant facilement être réinstallée de mon openmediavault vers le serveur web.
Auriez-vous des tutoriels à proposer dans ce sens? En vous remerciant.

1 Like

Avant de virtualiser mon serveur sur Proxmox, j’utilisais une sauvegarde sur disque dur externe en usb en me basant sur ce poste :slight_smile:

https://forum.yunohost.org/t/sauvegarde-base-sql

Je pense qu’on peut utiliser un principe équivalent pour envoyer les sauvegardes vers un espace distant :wink:

Salut @Sango, juste un court post pour te remercier pour ton retour d’experience, c’est tres instructif, particulierement la partie IDS avec Suricata. J’ai mon Yunohost sur un R-Pi 3 et je m’interesse a la partie securite, en particulier pour savoir ce qui se passe sur/autour de mon serveur.

Tres bon retour, merci d’avoir pris le temps de partager!

1 Like

Pour ceux que cela intéresse, voici le fichier des IPs à bloquer si on souhaite interdit le scan via BinaryEdge : https://api.binaryedge.io/v1/minions

Le fichier est un peu long mais quand on voit le détails des retours (et donc le danger associé) de ce scanner… ça vaut peut-être le coup :wink:

Bonjour :slight_smile:

Je profite des vacances qui débutent pour moi pour compléter un peu mon retour d’expérience !

Voici quelques modification que j’ai apporté à mon infra Proxmox en milieu de semaine dernière :

  • Upgrade matériel : 16 -> 32 Go de Ram (vu que tout fonctionnait bien, j’ai voulu avoir un peu de marger afin de faire tourner quelques VM et/ou containers supplémentaire :wink: )
  • Toujours avec l’idée d’anticiper un peu (on n’est jamais trop prudent), j’ai configuré une VM avec Proxmox Mail Gateway https://www.proxmox.com/en/proxmox-mail-gateway, l’objectif étant de filtrer les spams et autres trucs “relous” qui pourrait passer par les mails (pour le moment juste filtrage en “entrée”, pas en sortie)
  • et mises en place de quelques VM de test, histoire de bidouiller un peu…

Bref, le résultat est pas mal :

  1. La Ram ajoutée me laisse vraiment de la marge, tout tourne sans problème !
  2. La passerelle Proxmox Mail fonctionne à merveille (ça prend 10min à configurer pour filtrer uniquement les spams en entrée) et on bénéficie en plus d’un tableau de bord sympa pour analyser le trafic des mails, les contenus… etc

A titre d’info… ou pas Proxmox annonce Proxmox Backup Server.
La prérequis être en Prxomox 6.2. quelque chose.
C’est en bêta mais on peut l’utiliser avec la solution déjà existante de sauvegarde.
L’avantage c’est la gestion de sauvegarde incrémentielle. On va gagner de la place, du temps, et de l’usure disque.
Moi aussi sous proxmox depuis 4 ans déjà, mais dans un conteneur LXC et je ne regrette pas la virtualisation avec la geston des snapshots toujours avant une mise à jour.
Le problème c’est qu’on fait un rollback sur tous les services.
Sachant que LXC existe également sous RPi je me demande si ça ne serait pas intéressant d’évoluer sur un fonctionnement plus modulaire pour Yunohost.
Par exemple la j’aimerai bien avoir un frontal comme haproxy pour gérer le SSL et d’autres services services. Avec Yunohost c’est un peu compliqué comme les customs webapps. J’en ai 3 et la dernière tentative m’avait remis à zero l’ERP Dolibarr de mon asso… Heureusement rollback

Oui, vu l’annonce de la version bêta de Proxmox Backup Server. Perso, cette fonction m’intéresse peu car je sauvegarde déjà sur deux NAS différents (le premier pour les postes, le second pour les VMx du Promox), bref, je suis déjà “confort”.

Mais je pense en effet que cette info peut intéressée certains utilisateurs :wink: