Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)

« Installation de SFTPGo sur eole3 » : différence entre les versions

De AJLSM
Aller à la navigation Aller à la recherche
Page créée avec « == Installation de SFTPGo sur eole3 == category:eole3 === Objectif === Mettre en place un serveur SFTP moderne permettant : * la gestion fine des accès ; * la sépa... »
 
Ligne 163 : Ligne 163 :


---
---
=== Répertoire /srv/sftpgo ===
Par défaut, SFTPGo utilise le répertoire <code>/srv/sftpgo</code> pour :
* le stockage local des utilisateurs ;
* les sauvegardes internes.
Dans l’architecture eole3 :
* les données sont stockées dans <code>/var/data/</code> (ZFS) ;
* les accès se font via des virtual folders ;
* les répertoires techniques sont dans <code>/var/sftpgo-homes/</code>.
==== Vérification ====
<syntaxhighlight lang="bash">
ls -la /srv/sftpgo
grep -R "/srv/sftpgo" /etc/sftpgo
</syntaxhighlight>
==== Conclusion ====
Si le répertoire est vide et non utilisé :
<syntaxhighlight lang="bash">
rm -rf /srv/sftpgo
</syntaxhighlight>
==== Recommandation ====
Adapter la configuration SFTPGo pour utiliser :
* <code>/var/sftpgo-homes</code> pour les homes techniques ;
* <code>/var/lib/sftpgo</code> pour les données internes.
Le répertoire <code>/srv/sftpgo</code> ne doit pas être utilisé dans une architecture basée sur ZFS et virtual folders.


=== Organisation des données clients ===
=== Organisation des données clients ===

Version du 10 avril 2026 à 11:41

Installation de SFTPGo sur eole3

Objectif

Mettre en place un serveur SFTP moderne permettant :

  • la gestion fine des accès ;
  • la séparation logique des données via des virtual folders ;
  • la gestion des quotas indépendamment de ZFS ;
  • une alternative à OpenSSH SFTP utilisé en mode secours.

---

Pré-requis

  • serveur Ubuntu 24 (noble) fonctionnel ;
  • accès root ;
  • datasets clients déjà montés sous /var/data/ ;
  • groupe pleade existant ;
  • service SSH déjà configuré.

---

Installation du dépôt SFTPGo

Installation des dépendances :

apt update
apt install -y software-properties-common

Ajout du dépôt officiel via PPA :

add-apt-repository ppa:sftpgo/sftpgo
apt update

---

Installation de SFTPGo

apt install -y sftpgo

---

Vérification du service

systemctl status sftpgo

Résultat attendu :

  • service actif (running) ;
  • écoute par défaut sur le port 2022 pour SFTP.

---

Activation au démarrage

systemctl enable --now sftpgo

---

Fonctionnement du service

  • le service tourne avec l’utilisateur système sftpgo ;
  • UID typique : 995 ;
  • GID typique : 987.

Vérification :

id sftpgo

---

Accès aux données

Par défaut, l’utilisateur sftpgo n’a accès à aucun dataset client.

Pour permettre l’accès aux données :

usermod -aG pleade sftpgo
systemctl restart sftpgo

Explication

  • les données clients appartiennent au groupe pleade ;
  • SFTPGo doit pouvoir lire/écrire dans ces répertoires ;
  • l’ajout au groupe pleade permet cet accès.

⚠️ Important :

  • il s’agit d’un accès technique (daemon), pas d’un utilisateur humain ;
  • ne pas ajouter d’utilisateurs humains dans ce groupe pour des raisons de sécurité.

---

Vérification des accès aux datasets

Exemple :

namei -l /var/data/apbp-data/data/pleade

Conditions nécessaires :

  • tous les répertoires traversés doivent être au minimum r-x ;
  • les répertoires d’écriture doivent être rwx pour le groupe.

---

Droits recommandés

Pour les zones d’écriture :

chmod -R 775 /var/data/<client>-data/data/pleade
chmod -R 775 /var/data/<client>-data/data/projets

⚠️ Ne pas modifier :

  • data-private (zone interne applicative) ;
  • les répertoires système.

---

Répertoire technique des homes SFTPGo

Créer un répertoire dédié pour les chroot techniques :

mkdir -p /var/sftpgo-homes
chown sftpgo:sftpgo /var/sftpgo-homes
chmod 755 /var/sftpgo-homes

Puis, pour chaque client :

mkdir -p /var/sftpgo-homes/<client>
chown sftpgo:sftpgo /var/sftpgo-homes/<client>
chmod 755 /var/sftpgo-homes/<client>

Explication

  • ces répertoires servent de racine technique pour SFTPGo ;
  • ils restent vides ;
  • les données réelles sont montées via des virtual folders.

---

Répertoire /srv/sftpgo

Par défaut, SFTPGo utilise le répertoire /srv/sftpgo pour :

  • le stockage local des utilisateurs ;
  • les sauvegardes internes.

Dans l’architecture eole3 :

  • les données sont stockées dans /var/data/ (ZFS) ;
  • les accès se font via des virtual folders ;
  • les répertoires techniques sont dans /var/sftpgo-homes/.

Vérification

ls -la /srv/sftpgo
grep -R "/srv/sftpgo" /etc/sftpgo

Conclusion

Si le répertoire est vide et non utilisé :

rm -rf /srv/sftpgo

Recommandation

Adapter la configuration SFTPGo pour utiliser :

  • /var/sftpgo-homes pour les homes techniques ;
  • /var/lib/sftpgo pour les données internes.

Le répertoire /srv/sftpgo ne doit pas être utilisé dans une architecture basée sur ZFS et virtual folders.

Organisation des données clients

Structure cible :

/var/data/<client>-data/
└── data/
    ├── pleade/
    ├── projets/
    └── data-private/

Règles :

  • pleade : dépôt client principal ;
  • projets : espace de travail client ;
  • data-private : données internes (non exposées).

---

Bonnes pratiques

  • ne jamais exposer data-private via SFTPGo ;
  • limiter l’écriture aux seuls répertoires nécessaires ;
  • conserver les droits Unix comme source de vérité ;
  • utiliser SFTPGo comme couche de présentation et de contrôle.

---

Interaction avec rsync eole2 → eole3

Le rsync synchronise :

/var/data/<client>-data/ → /var/data/<client>-data/data/

Options utilisées :

-aHAX --numeric-ids --delete-after

Conséquences :

  • les fichiers sont synchronisés depuis eole2 ;
  • les permissions, ACL et propriétaires peuvent être écrasés ;
  • les fichiers absents côté eole2 peuvent être supprimés.

⚠️ Recommandation :

  • désactiver le cron rsync avant toute modification des droits ;
  • ou travailler hors des répertoires synchronisés.

---

Conclusion

L’installation de SFTPGo repose sur :

  • un service système dédié (sftpgo) ;
  • un accès contrôlé aux données via le groupe pleade ;
  • une séparation claire entre :
 * stockage réel (ZFS) ;
 * exposition logique (SFTPGo).

La configuration des accès utilisateurs se fait ensuite via l’interface Web de SFTPGo.