SFTP

Guide des ports SFTP : transfert de fichiers sécurisé via SSH

Comprendre comment SFTP utilise SSH, quand exposer le port 22, comment tester l'accès à distance et comment protéger les comptes, les répertoires et les journaux d'audit.

Port par défaut
22
Protocole
TCP
Usage principal
Transfert de fichiers sécurisé
Transport
SSH

Qu'est-ce que le port SFTP ?

SFTP est le protocole de transfert de fichiers SSH. Il s'exécute généralement sur le même port TCP que SSH, le port 22, et utilise le transport SSH pour authentifier les utilisateurs, crypter les transferts de fichiers et protéger les opérations de répertoire. Contrairement au FTP classique, SFTP n'a pas besoin d'un canal de commande et d'un canal de données distincts.

  • SFTP utilise normalement SSH sur le port 22

    Si un serveur SSH écoute le 22 et que SFTP est activé pour le compte, les clients SFTP peuvent généralement se connecter sans ouvrir un autre port.

  • Le transfert sécurisé nécessite toujours un contrôle d'accès

    Le cryptage protège les fichiers en transit, mais vous avez toujours besoin d'une authentification forte, de répertoires restreints, du moindre privilège et d'une journalisation.

Comment fonctionne SFTP

SFTP n'est pas FTP avec un cryptage ajouté en haut. Il s'agit d'un protocole distinct qui s'exécute au sein d'une session SSH. Le client se connecte au serveur SSH, s'authentifie avec un mot de passe, une clé, un certificat ou une autre méthode prise en charge par SSH, puis démarre le sous-système SFTP pour répertorier les répertoires, télécharger des fichiers, renommer les chemins et gérer les autorisations.

Étant donné que SFTP repose sur SSH, il bénéficie du cryptage SSH, de la vérification de la clé hôte et de contrôles d'authentification avancés. Pour la plupart des déploiements, le port SFTP est donc TCP 22. Certaines organisations déplacent SSH et SFTP vers un autre port pour réduire le bruit d'analyse en arrière-plan, mais le changement de port ne remplace pas les contrôles d'authentification et d'autorisation.

SFTP contre FTP, FTPS et SCP

FTP classique utilise généralement le port 21 pour les commandes et des ports de données séparés pour les transferts. Cela rend le pare-feu et le NAT plus complexes, et le simple FTP envoie les informations d'identification et les données sans cryptage. FTPS ajoute TLS à FTP, mais il conserve toujours le modèle FTP avec des canaux de commande et de données.

SFTP utilise une connexion SSH, qui est généralement plus facile à autoriser via les pare-feu et à auditer. SCP utilise également SSH, mais SFTP offre des opérations de gestion de fichiers plus riches et constitue la meilleure valeur par défaut pour les transferts interactifs, les abandons de partenaires et les flux de travail de fichiers automatisés.

Quand ouvrir l'accès SFTP

Ouvrez l'accès SFTP lorsqu'un partenaire, une tâche d'automatisation, un processus de sauvegarde, un pipeline de déploiement ou une équipe interne a besoin d'échanger des fichiers en toute sécurité avec un serveur. Les exemples courants incluent les flux de données des fournisseurs, les exportations nocturnes, la collecte de journaux, la livraison sécurisée de documents et les zones de téléchargement contrôlées pour les clients ou les appareils de terrain.

N'exposez pas SFTP à grande échelle simplement parce qu'il est chiffré. Un service SSH accessible sur Internet attire les attaques d’identifiants et l’analyse automatisée. Si seul un petit groupe a besoin d'accéder, limitez les adresses IP sources, publiez SFTP derrière un VPN ou un réseau privé, ou utilisez une passerelle de transfert gérée avec des contrôles de politique plus stricts.

Avant d'ouvrir le port SFTP

Avant d'ouvrir le port 22 pour SFTP, vérifiez que le serveur SSH est installé, en cours d'exécution et configuré pour autoriser le sous-système SFTP. Décidez ensuite quels utilisateurs ou comptes de service doivent se connecter, quels répertoires ils peuvent voir, si l'authentification par mot de passe est autorisée et comment les téléchargements seront enregistrés.

Séparez l'accessibilité du réseau de l'autorisation du compte. Un vérificateur de port peut montrer si TCP 22 est accessible depuis Internet, mais il ne peut pas prouver qu'un utilisateur spécifique peut se connecter ou qu'un répertoire chroot est correct. Utilisez un client SFTP ou des tests de ligne de commande ssh pour vérifier le comportement au niveau de l'application.

Comment activer SFTP sur Windows, Linux et macOS

Sur Windows Server, installez et activez le serveur OpenSSH, autorisez TCP 22 entrant dans le pare-feu Windows Defender et confirmez que le service sshd est en cours d'exécution. Si le serveur se trouve dans un environnement cloud, autorisez également le port 22 dans le pare-feu cloud ou le groupe de sécurité. Utilisez des comptes dédiés plutôt qu’un accès administrateur étendu.

Sous Linux, installez OpenSSH Server, confirmez que sshd écoute sur le port 22 et assurez-vous que le sous-système SFTP est activé dans sshd_config. Pour les comptes de transfert de fichiers restreints, configurez les répertoires chroot, les règles de propriété et ForceCommand internal-sftp afin que les utilisateurs ne puissent pas obtenir un shell interactif.

Sur macOS, SFTP est disponible via le service SSH intégré. Il est le plus souvent utilisé pour les réseaux locaux, les machines de développement ou les environnements de laboratoire. Si vous l'exposez au-delà d'un réseau approuvé, appliquez les mêmes règles d'authentification par clé et de pare-feu que vous utiliseriez sur un serveur.

  • Couche de service : le serveur OpenSSH ou une autre implémentation SSH doit être en cours d'exécution et doit activer le sous-système SFTP.
  • Couche réseau : les pare-feu hôtes, les groupes de sécurité cloud, le transfert de routeur et les politiques VPN doivent autoriser le port TCP choisi.
  • Couche de compte : les utilisateurs doivent disposer des autorisations de moindre privilège, de répertoires dédiés et d'aucun accès au shell, sauf si nécessaire.
  • Couche d'audit : enregistre les transferts réussis, les échecs de connexion, les modifications de clé, les erreurs d'autorisation et les réseaux sources inhabituels.

Comment tester la connectivité SFTP

Commencez par une vérification du port externe par rapport au nom d'hôte public ou à l'adresse IP et au port 22. Si le port est ouvert, le chemin TCP vers le service SSH est accessible. Ensuite, utilisez un client SFTP ou exécutez sftp user@example.com pour vérifier l'authentification, la confiance de la clé hôte, l'accès au répertoire et les autorisations de téléchargement.

Si vous avez besoin de détails de niveau inférieur, testez la négociation SSH avec ssh -vvv user@example.com ou vérifiez les écouteurs sur le serveur avec ss -tlnp, netstat ou PowerShell. Pour les serveurs cloud, comparez les règles de pare-feu hôte avec les groupes de sécurité cloud, car les deux couches doivent autoriser la connexion.

Testez le port 22 pour SFTP

Cas de dépannage SFTP courants

Si le port SFTP est fermé, sshd n'est peut-être pas en cours d'exécution, peut être en train d'écouter sur un autre port ou peut être bloqué par le pare-feu hôte. Si la vérification expire, un groupe de sécurité cloud, une règle NAT de routeur, un filtre de FAI, une stratégie VPN ou une liste blanche d'adresse IP source peuvent supprimer des paquets avant qu'ils n'atteignent le serveur.

Si le port est ouvert mais que la connexion SFTP échoue, inspectez le nom d'utilisateur, les autorisations de clé, la politique de mot de passe, les exigences MFA, les utilisateurs autorisés, la propriété du chroot, les règles ForceCommand et les journaux du serveur. Une erreur courante consiste à accorder à un répertoire chroot des autorisations d'écriture pour l'utilisateur ; OpenSSH nécessite des modèles de propriété et d'autorisation spécifiques pour que chroot fonctionne en toute sécurité.

Liste de contrôle de sécurité pour SFTP

Préférez les clés SSH ou l'authentification par certificat aux mots de passe. Désactivez la connexion root, limitez les utilisateurs pouvant se connecter, alternez les clés, supprimez les comptes inutilisés et protégez les clés privées avec des phrases secrètes ou un stockage matériel. Pour l'accès partenaire, créez un compte par partenaire afin que l'activité puisse être attribuée et révoquée proprement.

Restreignez l'accès au système de fichiers avec un chroot ou des répertoires à portée étroite, évitez les dossiers partagés inscriptibles à moins qu'ils ne soient requis et surveillez les échecs de connexion et les volumes de transfert inhabituels. Si SFTP est accessible sur Internet, combinez la limitation du débit, les listes autorisées de sources, la détection d'intrusion et l'application régulière de correctifs au serveur SSH.

Questions fréquentes

Quel port SFTP utilise-t-il ?

SFTP utilise généralement le port TCP 22 car il fonctionne sur SSH. Il peut s'exécuter sur un port différent si le serveur SSH est configuré pour y écouter et que le client spécifie ce port.

SFTP est-il identique à FTPS ?

Non. SFTP est un protocole de transfert de fichiers qui s'exécute dans SSH. FTPS est protégé par FTP avec TLS. Il s'agit de protocoles différents et ne sont pas interchangeables à moins que le client et le serveur ne prennent en charge le même.

Puis-je utiliser SFTP sans ouvrir le port 22 vers Internet ?

Oui. Vous pouvez exposer SFTP uniquement sur un VPN, un réseau privé, un hôte bastion, une couche d'accès zéro confiance ou une liste blanche d'IP source. C'est souvent plus sûr que de publier SSH sur l'ensemble d'Internet.

Pourquoi le port 22 est-il ouvert mais SFTP échoue toujours ?

Le port TCP peut être accessible pendant l'authentification ou lorsque le sous-système SFTP échoue. Vérifiez les autorisations du compte, le format de clé, la propriété du chroot, les paramètres ForceCommand, les utilisateurs autorisés, les stratégies MFA et les journaux du serveur SSH.