From 792d7f51b5a2331486579666cd8649c2852b61dd Mon Sep 17 00:00:00 2001 From: Pierre Date: Mon, 24 Aug 2026 10:26:12 +0000 Subject: [PATCH] Ajout documentation backups clients WordPress (event-solutions + bonelliphotographie via vsftpd) --- architecture.md | 27 ++++++++++++++++++++++++++- infrastructure.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/architecture.md b/architecture.md index f70dabf..23723c5 100644 --- a/architecture.md +++ b/architecture.md @@ -65,6 +65,12 @@ graph TB RAID[RAID5 md0
/srv/media
3.6 To] KDrive[kDrive
Backups] end + + subgraph "Backups clients WordPress" + FTP[vsftpd
Proxmox Host] + EventDir[/srv/backups/event-solutions/uploads/] + BonelliDir[/srv/backups/bonelli/uploads/] + end end DNS --> NPM @@ -95,6 +101,9 @@ graph TB KDrive -.->|backup| MDB KDrive -.->|backup| PG + + FTP -.->|chroot| EventDir + FTP -.->|chroot| BonelliDir ``` ## Flux réseau @@ -202,6 +211,7 @@ graph LR subgraph "Proxmox Host" Cron[Cron
Dim 3h00] Script[/usr/local/bin/
proxmox-backup.sh] + VSFTPD[vsftpd
Port 21] end subgraph "Sources" @@ -214,10 +224,17 @@ graph LR PVEConf[/etc/pve/] end - subgraph "Destination" + subgraph "Destination backup interne" KDrive[kDrive
rclone] end + subgraph "Backups clients WordPress" + WPEvent[event-solutions.fr
o2switch
UpdraftPlus FTP] + WPBonelli[bonelliphotographie.fr
Infomaniak
UpdraftPlus FTP] + EventDir[/srv/backups/event-solutions/uploads/] + BonelliDir[/srv/backups/bonelli/uploads/] + end + Cron --> Script Script --> MariaDB Script --> PG @@ -229,6 +246,11 @@ graph LR Script --> KDrive KDrive -.->|Retention 3| Old[Suppression
anciens backups] + + WPEvent -.->|FTP| VSFTPD + WPBonelli -.->|FTP| VSFTPD + VSFTPD -.->|chroot| EventDir + VSFTPD -.->|chroot| BonelliDir ``` ## Sécurité @@ -241,6 +263,7 @@ graph LR | Firewall | UFW sur Proxmox host | | Isolation | Chaque service dans son propre LXC | | BDD | Utilisateurs dédiés par appli, pas d'accès root | +| FTP | vsftpd sur Proxmox host, chroot par user, userlist | ## Fichiers clés @@ -249,5 +272,7 @@ graph LR | Backup script | `/usr/local/bin/proxmox-backup.sh` | Script hebdomadaire de sauvegarde | | rclone config | `/root/.config/rclone/rclone.conf` | Config kDrive | | Backup log | `/var/log/proxmox-backup.log` | Log des sauvegardes | +| vsftpd config | `/etc/vsftpd.conf` | Serveur FTP pour backups clients | +| vsftpd userlist | `/etc/vsftpd.userlist` | Users FTP autorisés | | NPM config | LXC 100, Docker volume | Nginx Proxy Manager | | Gitea data | LXC 108, Docker volume | Données Git | diff --git a/infrastructure.md b/infrastructure.md index 0068ec8..1d5ea34 100644 --- a/infrastructure.md +++ b/infrastructure.md @@ -77,6 +77,8 @@ Tous les certificats Let' Encrypt sont gérés via Nginx Proxy Manager (API) : ## Sauvegardes +### Sauvegarde interne (Proxmox) + - **Script** : `/usr/local/bin/proxmox-backup.sh` - **Fréquence** : Chaque dimanche à 3h00 (cron) - **Destination** : kDrive via rclone (remote `kdrive`, user `pierre@secourit.fr`) @@ -84,6 +86,43 @@ Tous les certificats Let' Encrypt sont gérés via Nginx Proxy Manager (API) : - **Contenu** : Dump MariaDB + PostgreSQL, sites nginx, données dyna, app gestion, Gitea, configs Proxmox - **Log** : `/var/log/proxmox-backup.log` +### Backups clients WordPress (vsftpd) + +Le serveur OVH fait also office de serveur FTP de backup pour les sites WordPress clients. Les clients configurent **UpdraftPlus** (version gratuite) sur leur WordPress pour envoyer les sauvegardes en FTP vers le serveur OVH. + +| Client | Site | Hébergeur | User FTP | Dossier serveur | Description | +|--------|------|-----------|----------|-----------------|-------------| +| event-solutions.fr | event-solutions.fr | o2switch | `ftp-event` | `/srv/backups/event-solutions/uploads/` | Site pas créé par moi, contrat de maintenance uniquement. Mise à jour + backup sur le serveur OVH | +| bonelliphotographie.fr | bonelliphotographie.fr | Infomaniak | `ftp-bonelli` | `/srv/backups/bonelli/uploads/` | Site créé par moi (SecourIT), hébergé chez Infomaniak | + +#### Configuration vsftpd + +- **Service** : vsftpd sur Proxmox host (pas dans un LXC) +- **Port** : 21 (FTP non-encrypté) +- **Config** : `/etc/vsftpd.conf` +- **Userlist** : `/etc/vsftpd.userlist` (userlist_deny=NO → seuls les users listés peuvent se connecter) +- **Chroot** : Chaque user est chrooté dans son propre dossier +- **PAM** : `/usr/sbin/nologin` ajouté dans `/etc/shells` pour autoriser les comptes système +- **Passif** : Ports 40000-40100 + +#### Mot de passe + +- `ftp-event` : `3rBQCyQ9F15E!N22TxYy` +- `ftp-bonelli` : `K95uqz4pvaZ963vL` + +#### UpdraftPlus (côté WordPress) + +Configuration à renseigner dans WordPress > UpdraftPlus > Réglages > Stockage distant > FTP : + +| Paramètre | event-solutions.fr | bonelliphotographie.fr | +|-----------|-------------------|----------------------| +| Type | FTP (non-encrypté) | FTP (non-encrypté) | +| Serveur | 51.195.5.147 | 51.195.5.147 | +| Port | 21 | 21 | +| Utilisateur | ftp-event | ftp-bonelli | +| Mot de passe | 3rBQCyQ9F15E!N22TxYy | K95uqz4pvaZ963vL | +| Chemin | / | / | + ## Nginx Proxy Manager - **Container** : `nginx-proxy-manager` (LXC 100) @@ -99,3 +138,6 @@ Géré sur **Infomaniak**. Tous les enregistrements A pointent vers 51.195.5.147 - `/usr/local/bin/proxmox-backup.sh` : Script de sauvegarde - `/root/.config/rclone/rclone.conf` : Config rclone kDrive - `/var/log/proxmox-backup.log` : Log des sauvegardes +- `/etc/vsftpd.conf` : Config serveur FTP backups clients +- `/etc/vsftpd.userlist` : Users FTP autorisés +- `/srv/backups/` : Dossiers de backup clients