Configuration d’un espace de stockage sécurisé avec SFTP sous Debian 12
Introduction
Le protocole SFTP (Secure File Transfer Protocol) est une solution sécurisée pour transférer des fichiers sur un réseau en utilisant SSH. Contrairement à FTP, qui est souvent non chiffré, SFTP assure la confidentialité et l’intégrité des données échangées. Cet article vous guide dans l’installation et la configuration d’un serveur SFTP sous Debian 12, permettant de gérer un espace de stockage sécurisé.
Pré-requis
Avant de commencer, assurez-vous d’avoir :
- Une machine Debian 12 (serveur SFTP).
- Un accès administrateur ou root.
- Une connexion réseau opérationnelle.
- Un client SFTP (FileZilla, WinSCP ou la commande
sftp
).
Étapes détaillées
1. Mise à jour du système
Avant toute installation, mettez votre système à jour :
1
sudo apt update && sudo apt upgrade -y
2. Vérification et activation de SSH
SFTP est inclus avec OpenSSH. Vérifiez si SSH est installé et actif :
1
sudo systemctl status ssh
Si SSH n’est pas installé, installez-le avec :
1
sudo apt install openssh-server -y
Puis, démarrez et activez le service :
1
sudo systemctl enable --now ssh
3. Création d’un groupe et d’utilisateurs pour SFTP
Pour renforcer la sécurité, nous allons créer un groupe spécifique sftpusers et ajouter des utilisateurs dédiés.
1
sudo groupadd sftpusers
Ajoutez un utilisateur sftpuser au groupe et attribuez-lui un mot de passe :
1
2
sudo useradd -m -d /home/sftpuser -g sftpusers -s /sbin/nologin sftpuser
sudo passwd sftpuser
Le shell /sbin/nologin empêche l’utilisateur d’accéder au serveur en SSH.
4. Configuration de SSH pour restreindre l’accès à SFTP
Modifiez le fichier /etc/ssh/sshd_config :
1
sudo nano /etc/ssh/sshd_config
Ajoutez ces lignes à la fin du fichier :
1
2
3
4
5
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Ces paramètres :
- Restreignent les utilisateurs du groupe
sftpusers
à leur répertoire personnel. - Forcent l’utilisation du mode
internal-sftp
pour désactiver l’accès SSH. - Désactivent le transfert de ports et le transfert X11 pour plus de sécurité.
Astuce : Vous pouvez accéder à tout les paramètres de configuration à cet url: https://man7.org/linux/man-pages/man5/sshd_config.5.html
Redémarrez le service SSH pour appliquer les changements :
1
sudo systemctl restart ssh
5. Définition des permissions et sécurisation
Définissez les permissions pour sécuriser l’accès :
1
2
3
4
5
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir -p /home/sftpuser/data
sudo chown sftpuser:sftpusers /home/sftpuser/data
sudo chmod 700 /home/sftpuser/data
- Le dossier
/home/sftpuser
appartient à root pour empêcher toute modification. - Les fichiers doivent être stockés dans
/home/sftpuser/data
accessible par l’utilisateur SFTP.
6. Tester la connexion SFTP
a. Depuis un client Linux
Utilisez la commande :
1
sftp sftpuser@<IP_DU_SERVEUR>
Entrez le mot de passe et testez l’envoi d’un fichier :
1
put mon_fichier.txt
b. Depuis Windows (FileZilla/WinSCP)
- Ouvrez FileZilla et entrez :
- Hôte :
sftp://<IP_DU_SERVEUR>
- Nom d’utilisateur :
sftpuser
- Mot de passe : (celui défini précédemment)
- Hôte :
- Connectez-vous et testez le transfert de fichiers.
7. Supprimer ou gérer SFTP
a. Supprimer un utilisateur SFTP
1
sudo deluser --remove-home sftpuser
b. Supprimer complètement OpenSSH
1
sudo apt remove --purge openssh-server -y
Conclusion
L’utilisation de SFTP est une solution efficace et sécurisée pour le transfert de fichiers. En configurant correctement les permissions et en restreignant l’accès, vous améliorez la sécurité des données stockées.