Il y a 389 articles et 19 utilisateurs inscrits (ce bandeau est défini dans MediaWiki:Sitenotice)
Installation de SFTPGo sur eole3
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
pleadeexistant ; - 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
2022pour 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
pleadepermet 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
rwxpour 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.
---
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-privatevia 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.