Vue lecture

GoBackup - Pour sauvegarder vos bases de données facilement

Vous savez, ce script bash de backup que vous avez écrit en 2018 et que vous n’osez plus toucher ? Celui avec les 150 lignes de mysqldump + tar + gzip + aws s3 cp qui marche à moitié et que vous relancez manuellement quand il plante ?

Hé bien vous allez pouvoir le foutre à la poubelle parce que maintenant y’a GoBackup !

GoBackup c’est un binaire codé en Go qui remplace tous vos scripts de backup maison d’un coup. MySQL, PostgreSQL, MongoDB, Redis, peu importe. Local, FTP, S3, Google Cloud, Azure, peu importe. Vous installez, vous configurez un fichier YAML, et c’est fini.

Ensuite, vous n’aurez plus jamais besoin de retoucher à tout ce bordel.

Avant GoBackup y’avait backup/backup, une gem Ruby qui faisait exactement ce job avec de la sauvegarde automatique, multi-bases, multi-destinations et c’était bien. Sauf que Ruby c’est lourd et les dépendances Ruby c’est l’enfer. Du coup le projet est mort tout doucement. Heureusement, huacnlee, un dev chinois, en a eu marre alors il a tout réécrit en Go. Zéro dépendance externe et un seul binaire compilé (installable aussi avec Brew pour ceux qui sont sous macOS).

Vous pouvez l’installer comme ceci (vérifiez le script) :

curl -sSL https://gobackup.github.io/install | sh

Ou via homebrew comme ceci :

brew install gobackup

Avec GoBackup, vous définissez vos bases de données, vos fichiers à archiver, vos destinations de stockage, votre planning, tout dans un fichier YAML propre et ensuite le binaire gère tout : Compression, chiffrement, upload, rotation des backups, notifications si ça échoue…etc. Bref, tout ce que vous faisiez à la main avec vos scripts pourris.

Et GoBackup est pas juste un CLI (Interface en ligne de commande). C’est un CLI + un daemon + une Web UI + un scheduler. Comme ça vous lancez “gobackup start” et ça tourne en background.

Le daemon surveille alors le planning défini dans votre config et lance les backups automatiquement. Et l’interface web vous permet de voir l’état des backups, les logs, les erreurs.

Avec GoBackup, vous remplacez littéralement 5 outils en un : votre script bash + cron + un monitoring pourri + un truc pour lire les logs + l’interface d’admin que vous avez jamais eu le temps de faire.

Votre config ressemble à ça :

models:
 mon_app:
 compress:
 type: tgz
 databases:
 mon_mysql:
 type: mysql
 host: localhost
 database: ma_base
 username: user
 password: $MYSQL_PASSWORD
 storages:
 mon_s3:
 type: s3
 bucket: mes-backups
 region: eu-west-1
 access_key_id: $AWS_KEY
 secret_access_key: $AWS_SECRET
 schedule:
 every: 1day
 at: "04:05"

Et c’est tout. Avec ce fichier, GoBackup dump votre base MySQL tous les jours à 4h05, compresse en .tar.gz, chiffre si vous voulez, et upload sur S3. Et si ça échoue vous recevez une notif. Et si ça marche vous avez les logs comme ça, pas besoin de surveiller, ni de débugger à 3h du matin parce que le backup a planté et que vous avez perdu 6 mois de données.

Notez quand même que GoBackup fait du backup classique, et pas du backup incrémental intelligent à la Restic ou à la Borg donc si vous avez 500 GB de données à backup tous les jours vous allez peut-être préférer un outil plus sophistiqué mais pour 90% des cas d’usage sysadmin standard, GoBackup suffira largement.

Votre script bash dégeu a eu une belle vie, il peut maintenant partir à la retraite.

  •  

Ludus - Pour monter un lab de cybersécurité en une commande

Vous faites du pentest, de la recherche en sécu ou vous êtes juste un curieux qui aime bidouiller des environnements de test ? Dans ce cas, il faut absolument que vous vous montiez un lab cybersécurité ! Mais c’est vai que c’est souvent la galère… Y’a Active Directory à configurer, des VMs Windows à déployer, des réseaux isolés à créer, tout ça manuellement… Ça prend des heures, voire des jours. Heureusement, Ludus règle le problème ! Vous décrivez ce que vous voulez dans un fichier YAML, vous tapez une commande, et hop, votre lab est prêt.

Ludus , c’est donc un système d’automatisation open-source qui tourne sur Proxmox. Vous définissez votre environnement de test (ce qu’ils appellent un “range”) dans un fichier de config, et Ludus s’occupe de tout déployer. Active Directory, machines Windows avec Office et Chocolatey, réseaux isolés, firewall rules personnalisées, DNS interne… Tout ce qu’il faut pour un lab de red team, blue team ou purple team.

Le truc cool, c’est que Ludus utilise Packer et Ansible en arrière-plan. Les templates sont construits à partir d’ISOs vérifiées, et tout est déployé de manière reproductible. Comme ça si vous voulez 255 VLANs, pas de souci. Si vous avez besoin de règles firewall custom ou de définir rôles Ansible pour configurer vos machines, c’est fastoche. Bref, Ludus vous laisse faire du high-level en YAML tout en gérant la complexité technique pour vous.

L’isolation est également bien pensée. Vous pouvez couper vos VMs d’internet, prendre des snapshots avant de leur autoriser l’accès, et ne whitelister que les domaines ou IPs spécifiques dont vous avez besoin. Du coup, pas de télémétrie qui fuit, pas de mises à jour Windows qui cassent votre environnement de test. Vous contrôlez tout !

Pour l’accès, Ludus intègre un serveur WireGuard ce qui vous permettra de vous connecter depuis n’importe où via SSH, RDP, VNC ou KasmVNC. Pratique si vous voulez accéder à votre lab depuis l’extérieur sans exposer vos machines de test sur internet.

Techniquement, ça tourne uniquement sur Debian 12/13 avec Proxmox 8/9. Il vous faudra au minimum 32GB de RAM par range (environnement de test), 200GB de stockage initial plus 50GB par range supplémentaire, et un CPU x86_64 avec un score Passmark au-dessus de 6000. C’est des specs correctes, mais pas non plus délirant si vous montez un serveur dédié pour ça.

Après une fois que c’est en place, le workflow pour les utilisateurs est assez simple. Vous récupérez une clé API et une config WireGuard auprès de l’admin du serveur Ludus, vous installez le client Ludus, vous importez votre VPN, et vous pouvez gérer votre range via la ligne de commande.

Le projet est sous licence AGPLv3, donc full open-source et comme d’hab, le code est sur GitHub . C’est en train de devenir un outil de référence dans la communauté sécu pour qui veut des environnements de test reproductibles.

Bref, si vous en avez marre de passer des heures à configurer vos labs à la main, pensez à Ludus ! Un fichier YAML, une commande vite fait, et votre infrastructure de test est toute prête ! Après, vous pouvez toujours aller bidouiller manuellement dans Proxmox si besoin, Ludus ne vous en empêchera pas, mais pour le gros du boulot chiant, il automatisera tout.

Ah et la documentation est ici !

  •