SFTP Dropbox sur Debian 12

Parfois, on a besoin d’un dossier un peu spécial : un endroit où chacun peut déposer ses fichiers, mais sans jamais pouvoir les modifier ni les supprimer ensuite. Pratique quand on veut collecter des documents en toute sécurité, sans risque de perte ou de mauvaise manipulation.

Imaginez un cours : chaque étudiant remet son devoir, mais personne ne peut aller fouiller dans ceux des autres. Ou encore une entreprise qui reçoit des factures ou des candidatures : les documents arrivent dans la boîte, mais restent intouchables. Même pour un projet collaboratif ou un événement, on peut récolter photos et vidéos de tous les participants sans craindre que quelqu’un mette le bazar.
Si vous venez du monde Windows, vous pouvez comparer ça à un dossier partagé en “écriture seule”. On y colle un fichier, mais on ne voit pas ce qu’il y a déjà dedans. Finalement, c’est comme une boîte aux lettres verrouillée : tout le monde peut y glisser une enveloppe, mais seul le propriétaire a la clé pour l’ouvrir.
Ce type de répertoire est traditionnellement appelé SFTP dropbox : un espace d’envoi où les utilisateurs peuvent déposer des fichiers sans jamais voir ni modifier ceux des autres.
Dans ce tutoriel, je vais vous montrer pas à pas comment créer ce répertoire. J’utiliserai Proxmox et un conteneur LXC Debian 12, mais si vous préférez un autre Linux, pas de problème, la logique reste la même.
👉 Pour commencer, il faut créer un conteneur (voir le guide : Les conteneurs LXC sur Proxmox).
Il faut aussi créer un utilisateur sudo, ou utiliser directement root. Dans ce guide, j’utiliserai l’utilisateur root.

Étape 1. Installer les paquets de base

Vérifier que SSH fonctionne :

systemctl status ssh --no-pager

Si SSH n’est pas installé, il faut l’installer :

apt update
apt install -y openssh-server

 

Étape 2. Préparer la structure chroot + dossier « incoming»

Le répertoire qui sert de racine au chroot doit appartenir à root et ne peut pas être modifié par d’autres utilisateurs.

2.1 Racine du chroot

mkdir -p /srv/sftp
chown root:root /srv/sftp
chmod 755 /srv/sftp

 

2.2 Dossier de dépôt (write-only, sans listing)

mkdir -p /srv/sftp/incoming
chown root:root /srv/sftp/incoming
chmod 1733 /srv/sftp/incoming

Petite explication:
1733 = 1 + 733.
7 pour le propriétaire (rwx)
3 pour le groupe (wx seulement)
3 pour les autres (wx seulement)
→ Tout le monde peut déposer un fichier, mais personne ne peut lister le contenu.
Le premier chiffre 1 active le sticky bit :
seul le propriétaire du fichier (ou root) peut le supprimer ou le renommer.
Cela empêche qu’un client efface ou modifie un fichier déposé par un autre.
En résumé : les clients peuvent déposer, mais ne voient pas le contenu, et ne peuvent rien supprimer sauf leurs propres fichiers — root reste le seul à avoir un accès complet.

 

Étape 3. Créer l’utilisateur dropbox

3.1 Utilisateur sans shell (pas de console SSH)

adduser --shell /usr/sbin/nologin --home /incoming dropbox

saisir un mot de passe

 

3.2 Changer le mot de passe plus tard au besoin

passwd dropbox

Étape 4. Configurer OpenSSH pour le chroot SFTP

Éditer :

nano /etc/ssh/sshd_config

Ajouter à la fin :

# --- SFTP dropbox (chroot) ---
Match User dropbox
ChrootDirectory /srv/sftp
ForceCommand internal-sftp -d /
PasswordAuthentication yes
X11Forwarding no
AllowTcpForwarding no

 

Redémarrer SSH :

systemctl restart ssh

(Si erreur « bad ownership or modes » → vérifier que /srv/sftp = root:root 755.)

 

Étape 5. Test de connexion client

Depuis une machine du réseau je me connecte avec la ligne de commande :

sftp [email protected]

Et bien sûr, je ne peux pas voir le contenu du dossier incoming.

Aussi je teste la connexion client avec FileZilla.

Je crée une nouvelle connexion SFTP :
Adresse : 10.10.0.251
Protocole : SFTP (port 22)
Login : dropbox
Mot de passe : celui que vous assignez pour dropbox
et cliquez sur Connect.

Je fais un glisser-déposer (drag & drop) du fichier Test.txt dans le dossier incoming.
Dans le log on peut voir que le fichier a été transféré avec succès.

 

Étape 6. Vérification / récupération côté root

J’ai créé une deuxième connexion root dans FileZilla :
Adresse : 10.10.0.251
Protocole : SFTP (port 22)
Login : root
Mot de passe : celui que vous assignez pour root
et se connecter en cliquant sur Connect.

Dans le dossier /srv/sftp/incoming

On peut voir le fichier Test.txt

 

Seul root peut tout voir ; les clients peuvent seulement déposer.

Option : blocage automatique après dépôt

Empêcher qu’un client puisse supprimer ou écraser son fichier après upload.

1. Installer inotify-tools

apt update
apt install -y inotify-tools

2. Créer le script /usr/local/bin/lock-dropbox.sh

#!/bin/bash
WATCH_DIR="/srv/sftp/incoming"

inotifywait -m -e close_write --format "%w%f" "$WATCH_DIR" | while read FILE
do
chown root:root "$FILE"
chmod 0644 "$FILE"
done

Donner les droits :

chmod +x /usr/local/bin/lock-dropbox.sh

3. Créer le service systemd

nano /etc/systemd/system/lock-dropbox.service

Contenu :

[Unit]
Description=Auto-lock uploaded files in SFTP dropbox
After=network.target ssh.service

[Service]
ExecStart=/usr/local/bin/lock-dropbox.sh
Restart=always
User=root

[Install]
WantedBy=multi-user.target

Activer le service :

systemctl daemon-reexec
systemctl enable --now lock-dropbox.service

4. Vérification

Client envoie Test.txt
Sur le serveur :

ls -l /srv/sftp/incoming

Résultat :

-rw-r--r-- 1 root root 12345 Sep 17 15:00 test.pdf

le fichier appartient à root, donc non supprimable/modifiable par le client.

Et voilà, vous avez une boîte aux lettres SFTP sécurisée : les clients déposent, seul root peut lire ou gérer les fichiers.

Bonne chance!

Installation d’un serveur TFTP sous Linux

Le protocole TFTP (Trivial File Transfer Protocol) est un protocole de transfert de fichiers simple, léger et sans authentification.
Il est souvent utilisé dans les environnements réseau pour mettre à jour le firmware des équipements (comme les switchs ou les routeurs), ou encore pour transférer rapidement des fichiers de configuration.

Dans ce tutoriel, je vous montre comment :
– Installer un serveur TFTP sur Linux (Debian, Ubuntu, Linux Mint)
– Transférer un fichier vers un équipement réseau, comme un switch
– Désactiver ou supprimer le serveur TFTP après utilisation, pour des raisons de sécurité

Continue reading

Installer et utiliser Midnight Commander

Si vous cherchez un outil capable de simplifier vos tâches quotidiennes tout en augmentant votre productivité dans la gestion des serveurs, alors Midnight Commander (MC) est la solution idéale. Que vous soyez débutant en Linux ou administrateur système expérimenté, MC propose une interface en mode texte qui rend la navigation dans les fichiers aussi intuitive qu’avec un gestionnaire graphique. Vous pouvez copier, déplacer, renommer, et même éditer des fichiers directement depuis le terminal.
Mais qu’est-ce qui rend Midnight Commander si spécial ? Tout d’abord, il est compatible avec pratiquement toutes les distributions Linux et Unix. De plus, il prend en charge FTP, SSH, et la manipulation des archives compressées, faisant de lui un outil incroyablement polyvalent. Si vous êtes prêt à découvrir cet outil essentiel pour les utilisateurs Linux, plongez dans ce tutoriel détaillé !

Continue reading

Installation d’un serveur FTP sur Debian 12

Le FTP (File Transfer Protocol) est un outil incontournable pour transférer des fichiers entre des machines dans une infrastructure réseau TCP/IP. Bien qu’il existe d’autres protocoles modernes comme SFTP ou FTPS, FTP reste largement utilisé pour des environnements locaux ou éducatifs. Dans cet article, nous vous guiderons étape par étape pour configurer un serveur FTP basé sur vsftpd (Very Secure FTP Daemon) sur Debian 12. Vous apprendrez à gérer des utilisateurs, configurer leurs répertoires, tester votre configuration avec FileZilla et le terminal.
Pour simplifier la démonstration, nous ne configurerons pas SSL/TLS, mais une section en fin d’article expliquera pourquoi il est crucial de sécuriser votre serveur FTP en production.

Continue reading

Utilisation de MobaXterm pour la gestion des serveurs

Dans cet article, je vais vous montrer comment utiliser l’un des meilleurs programmes pour gérer un serveur à partir de Windows : MobaXterm. Cet outil tout-en-un offre une interface simple et intuitive pour accéder à des serveurs distants via SSH, SFTP, VNC, RDP, Serial et bien d’autres protocoles. Que vous ayez besoin de vous connecter à un serveur Linux ou de gérer plusieurs sessions simultanées, MobaXterm vous simplifie la tâche grâce à ses fonctionnalités avancées. Vous apprendrez ici les bases de son utilisation et comment l’intégrer dans votre flux de travail quotidien pour améliorer votre efficacité.
Pour installer ce programme, il suffit de le télécharger depuis le site officiel. Il n’est pas nécessaire de l’installer, car il existe une version portable que vous pouvez utiliser sans installation. Bien que MobaXterm soit disponible en version payante, il est possible d’utiliser la version gratuite, qui présente quelques limitations, comme la gestion de 12 sessions maximum. Cependant, cette version gratuite est largement suffisante pour la plupart des besoins courants.

Continue reading

Comment installer Krusader sur Ubuntu

Si vous cherchez un bon gestionnaire de fichiers, Krusader est une excellente option. Ce programme est fait pour les ordinateurs qui utilisent KDE, un type d’interface pour les systèmes comme Ubuntu. Krusader est facile à utiliser grâce à ses deux fenêtres qui vous permettent de voir et de gérer vos fichiers facilement. Il peut aussi se connecter à d’autres ordinateurs en utilisant un protocole sécurisé appelé SFTP, ce qui est pratique pour travailler avec des fichiers à distance.

Krusader est flexible et peut être personnalisé selon vos besoins, ce qui le rend parfait pour ceux qui commencent à apprendre l’informatique, mais aussi pour ceux qui ont plus d’expérience et qui ont besoin d’outils plus avancés. Dans cet article, nous allons voir comment installer Krusader sur Ubuntu pour rendre la gestion de vos fichiers plus simple et plus efficace.

Continue reading

Installation et configuration d’un serveur OpenVPN sur UBUNTU (partie 2/2)

Nous continuons la configuration d’OpenVPN entamée dans la première partie. Dans cette étape, nous allons créer manuellement le deuxième et le troisième clients. Le deuxième client sera utilisé pour connecter un téléphone portable au réseau VPN, tandis que le troisième client sera destiné à un ordinateur sous Linux via la ligne de commande. Une fois ces deux clients configurés, nous utiliserons l’ordinateur Windows pour accéder à l’ordinateur Linux via SSH et SFTP, car ils seront tous les deux dans le même réseau virtuel.

Création Manuelle des Fichiers de Configuration Client

Vous pouvez télécharger le fichier client2.ovpn de mon GitHub sur votre ordinateur. Il vous faudra également télécharger les fichiers suivants depuis votre serveur (si vous avez suivi mes instructions sur le blog, ils se trouvent dans ~/openvpn-ca/keys) en utilisant SFTP ou FTP :

Continue reading