Mettre en place un serveur SFTP sécurisé sur un Raspberry Pi est une solution idéale pour gérer des transferts de fichiers fiables dans un environnement sécurisé, tout en conservant une configuration simple et flexible. En associant SFTPGo, un serveur SFTP complet et configurable, à Docker pour simplifier son déploiement, vous bénéficiez de plusieurs avantages notables :
- Isolation et sécurité renforcée grâce au conteneur Docker
- Administration simplifiée via une interface web intuitive de SFTPGo
- Gestion précise des utilisateurs avec dossiers isolés et quotas
- Pérennité des données grâce à un stockage persistant indépendant du conteneur
Ce guide détaille les étapes nécessaires pour lancer ce serveur sécurisé sur votre Raspberry Pi, optimiser sa configuration et tester efficacement les transferts de fichiers depuis différents systèmes. Nous verrons également les points clés pour assurer une sécurité réseau solide dans le cadre d’un usage domestique ou professionnel.
Lire également : Créer votre propre station météo : guide complet et comparaison des meilleures options DIY
Table des matières
Installation et configuration de SFTPGo avec Docker sur Raspberry Pi
Pour commencer, l’installation de SFTPGo dans un conteneur Docker vous permet de déployer rapidement un serveur SFTP sans alourdir le système d’exploitation du Raspberry Pi. Docker fournit un environnement isolé, ce qui évite les conflits et facilite la maintenance.
Voici un résumé des prérequis et de la procédure :
A lire en complément : Comment établir une connexion efficace entre un Raspberry Pi et un Arduino
- Matériel requis : Raspberry Pi 4 ou 5 avec Raspberry Pi OS à jour (support 64 bits recommandé)
- Logiciels : Docker Engine et Docker Compose installés via la documentation officielle Docker
- Espace de stockage : un disque SSD USB ou un NVMe est conseillé pour des transferts fréquents et performants
- Préparation : création d’un dossier dédié ~/sftpgo avec répertoire data pour stockage persistant
Ensuite, un fichier docker-compose.yml est créé pour configurer les services exposant le port SFTP (par défaut le 2022) et l’interface d’administration web (port 8080) comme suit :
| Service | Image Docker | Ports exposés | Volumes montés |
|---|---|---|---|
| sftpgo | drakkan/sftpgo:latest | 8080 (interface web), 2022 (SFTP) | ./data:/var/lib/sftpgo |
Cette configuration assure que la remontée des services se fait automatiquement et que les données de configuration ne sont pas perdues lors des mises à jour du conteneur.
Création des comptes utilisateurs et gestion des accès sécurisés
Une fois le serveur lancé, accédez à l’interface web via http://IP_DU_PI:8080 dans votre réseau local. La création d’un compte administrateur s’effectue lors de la première connexion. Cette interface vous permet ensuite de :
- Créer des utilisateurs avec identifiants uniques
- Définir des dossiers isolés dédiés à chaque compte (exemple : /srv/sftp/partage)
- Attribuer des quotas pour contrôler l’espace disque utilisé
- Choisir le mode d’authentification : mot de passe robuste ou clé publique SSH pour une sécurité renforcée
- Limiter les permissions (lecture, écriture, suppression) selon les besoins du transfert
Veillons à ne pas utiliser le compte administrateur pour les transferts réguliers afin de garantir un contrôle optimal des accès. Les logs générés par SFTPGo facilitent la traçabilité des opérations et la gestion des droits.
Tester le serveur SFTP sécurisé depuis différents clients
La vérification du bon fonctionnement du serveur SFTP passe par des tests sur des clients variés, incluant Windows (WinSCP, FileZilla), macOS, et Linux en ligne de commande. Voici un exemple concret sous Linux :
- Ouvrir un terminal et se connecter avec la commande : sftp -P 2022 utilisateur@IP_DU_PI
- Uploader un fichier avec : put test.txt
- Lister le contenu avec : ls
- Vérifier que le fichier se retrouve bien dans le dossier configuré sur le Raspberry Pi
- Quitter avec : exit
Ces manipulations démontrent la validité de la chaîne d’authentification et la robustesse du transfert de fichiers.
Assurer la sécurité réseau et la pérennité du service SFTP sur Raspberry Pi
Pour garantir l’intégrité des transferts et éviter tout accès non autorisé, maintenons le serveur dans le réseau local quand c’est possible. Lorsqu’un accès distant est nécessaire, privilégions un VPN comme Tailscale ou WireGuard qui encadre la communication avec un tunnel sécurisé. Évitons de publier directement les ports d’administration (8080) sur Internet.
Par ailleurs, il convient de :
- Utiliser systématiquement des clés SSH quand le port SFTP est exposé à l’extérieur
- Mettre à jour régulièrement l’image Docker avec docker compose pull pour profiter des correctifs
- Consulter les logs pour surveiller les tentatives de connexion et déceler toute anomalie
- Désactiver les comptes inutilisés pour réduire la surface d’attaque
| Problème courant | Cause possible | Solution recommandée |
|---|---|---|
| Connexion refusée | Port 2022 incorrect ou conteneur Docker arrêté | Vérifier l’IP, le port et relancer le conteneur avec docker compose up -d |
| Interface web inaccessible | Port 8080 bloqué par pare-feu | Tester l’accès depuis le LAN et ajuster les règles du pare-feu |
| Droits refusés lors de l’upload | Mauvaise configuration des permissions sur le dossier de destination | Vérifier les droits utilisateur dans SFTPGo et au niveau système |
| Données perdues après mise à jour | Absence de volume monté pour la persistance | Confirmer la présence de ./data:/var/lib/sftpgo dans Docker Compose |
