Quels ports de pare-feu dois-je ouvrir lors de l'utilisation de FTPS?

33

J'ai besoin d'accéder à un serveur FTPS (vsftpd) sur le site d'un fournisseur. Le vendeur a un pare-feu devant le serveur ftps. J'ai un pare-feu devant mon client FTPS.

Je comprends que les ports 990, 991 et peut-être 989 doivent être ouverts pour contrôler le trafic.

J'ai quelques questions:

  1. Lorsque vous l'examinez du point de vue du pare-feu du fournisseur, ces ports doivent-ils être ouverts pour le trafic entrant et sortant?
  2. Qu'en est-il des ports pour le canal DATA?
  3. Dois-je ouvrir tous les ports au-dessus de 1000?
  4. Dois-je le faire pour le trafic entrant et sortant?
Tim
la source

Réponses:

19

Ma compréhension du FTP sur SSL (ftps) est qu'il ne fonctionne pas bien avec les pare-feu et NAT. Dans une session FTP ordinaire, les informations sur les connexions de données sont lues et modifiées pour NAT par le pare-feu afin que le pare-feu ouvre dynamiquement les ports nécessaires. Si ces informations sont sécurisées par SSL, le pare-feu ne peut pas les lire ni les modifier.

L'utilisation de SFTP, ou scp, facilite considérablement le travail de l'administrateur réseau - tout se passe sur le port 22 du serveur et la transaction suit le modèle client / serveur normal.

Une chose non mentionnée est de savoir si votre pare-feu exécute le NAT et s'il s'agit ou non d'un NAT statique ou d'un NAT dynamique. Si votre ordinateur client a une adresse statique ou est NAT statique, vous n'aurez peut-être pas besoin de modifier le pare-feu, en supposant que vous autorisez tout le trafic sortant et que le serveur fonctionne uniquement en mode passif (PASV).

Pour savoir exactement quels ports vous devrez ouvrir, vous devrez soit:

a) parler au fournisseur pour obtenir des détails sur la configuration de leur système.

b) Utilisez un analyseur de protocole, tel que tcpdump ou wirehark, pour examiner le trafic, à la fois de l'extérieur de votre pare-feu et de l'intérieur de votre pare-feu

Vous devez savoir quel port est la connexion de contrôle. Vous en citez 3, ce qui me semble étrange. En supposant que le serveur ne fonctionne qu'en mode PASV (passif), vous devez comprendre comment le serveur est configuré pour les ports DATA alloués. Ont-ils verrouillé le canal DATA sur un seul port entrant? Ont-ils verrouillé le canal DATA sur une petite plage ou des ports?

Avec ces réponses, vous pouvez commencer à configurer votre pare-feu.

pcapademic
la source
3
le mode passif FTPS utiliserait un port de contrôle sur le port # 1024 et fonctionnerait donc mieux avec un pare-feu que non passif. le client indique au port 21 quel port de limite supérieure ouvrir et vous pouvez donc configurer le client pour qu'il dise "le contrôle est sur le port 2000 ou 2001", puis le serveur ouvrira le port sortant 2000 ou 2001. la plupart des clients FTP prennent en charge la définition d'une plage spécifique de ports pour que le "contrôle" soit activé et cela facilite les définitions de pare-feu.
djangofan
27

Je crois que les ports autour de 990 étaient pour SSL implicite, qui était une ancienne façon non standard de faire FTP / SSL. La "bonne" façon de nos jours est le SSL explicite, ce qui signifie que vous vous connectez toujours sur le port 21, puis négociez SSL avant d'envoyer vos cadeaux. Pour prendre en charge les connexions via un pare-feu, vous devez utiliser le mode PASV et définir les ports de données à utiliser.

Je pense que vous avez besoin d'au moins un port par connexion de données que vous souhaitez prendre en charge. Si c'est juste vous, vous allez probablement bien n'ouvrir que quelques ports supplémentaires. Spécifiquement pour moi, j'utilise 21000-21010.

Dans vsftpd.conf, j'ai ces deux lignes (avec toutes les autres choses pour prendre en charge SSL):

pasv_min_port=21000

pasv_max_port=21010

Sur mon pare-feu, j'ai une IP statique publique avec NAT un à un / statique vers l'IP interne et seuls les ports TCP 21, 21000-21010 sont ouverts.

David
la source
10

Je sais que c'est un fil extrêmement ancien, cependant ..

Veuillez noter que SFTP est complètement différent de FTPS. (SSH vs SSL)

FTPS fonctionne de 2 manières. Explicite et implicite. Explicit est moins sécurisé car après la prise de contact initiale saute le chiffrement lors des transferts de données [si le chiffrement des données est maintenu est configurable côté serveur avec PROT P], tandis que l'implicite conserve également le chiffrement des données après la prise de contact. Le port FTPS explicite par défaut est 21. Le port implicite par défaut est 990 (après la prise de contact, il passera automatiquement à 989 pour la transmission de données, s'il n'est pas configuré différemment). Alors que le port 21 est généralement accepté comme EXPLICIT FTPS et 990 comme IMPLICIT FTPS, en réalité, quel que soit le port que vous configurerez, à l'exception de 990/989, conduira à EXPLICIT FTPS tandis que SEULEMENT 990/989 sera accepté comme IMPLICIT FTPS.

Donc, pour répondre à votre question: - selon la configuration du serveur FTPS, vous devrez ouvrir le port 21 ou 990/989. Cependant, juste pour être sûr, vous devez contacter l'administrateur du serveur FTPS et demander des instructions. En outre, gardez à l'esprit que pour le mode passif, comme avec tous les autres logiciels FTP, vous devrez ouvrir des ports supplémentaires (TCP / UDP) généralement quelque chose de la plage 64000-65000.

Marin
la source
2

Fondamentalement, ftps est presque inutile, car vous devez faire des demandes embarrassantes aux administrateurs de pare-feu. Le conseil de limiter les ports à 10 est bon. Bien plus, cela devient pathétique.

sftp est beaucoup mieux en théorie. Mais vous avez besoin d'un serveur sftp viable, par exemple un serveur qui restreint les clients à leur propre répertoire personnel.

En fonction de l'application, envisagez HTTPS. Un téléchargement de fichier est vraiment simple, et un téléchargement l'est évidemment aussi. Si vous scriptez le FTP de toute façon, il sera probablement plus facile de scripter un téléchargement de fichier HTTPS.

Le FTP automatisé est le signe d'un problème de conception. Je l'ai remarqué lorsque je faisais affaire avec une douzaine de fournisseurs au total qui `` nécessitaient '' un endroit où je travaillais pour faire du FTP automatisé (pour des choses TRÈS importantes), et lorsque des dizaines de clients le faisaient avec cette même boutique (un échec de conception pendant environ 20 utilisations distinctes dont j'ai été témoin). Il était facile de convaincre la plupart des gars de l'application d'utiliser HTTPS (généralement à la mention, ils ont dit "attendez, il n'y a aucune raison pour laquelle nous ne les faisons pas simplement obtenir HTTPS à partir du serveur Web sur lequel nous leur fournissons déjà des données?" ), à l'exception de quelques-uns qui ont donné des réponses telles que "eh bien, nous avons déjà ces scripts qui semblent fonctionner, et personne dans notre équipe n'est vraiment bon en script, nous ne pouvons donc pas vraiment apporter de modifications" (une équipe de 5 à 10 programmeurs,

carlito
la source
1

Le vendeur peut être en mesure de configurer une plage de ports étroite pour les ports de connexion DATA, s'ils ne l'ont pas déjà fait. Ensuite, vous pouvez ouvrir la même plage de votre côté, pour les hôtes qui ont besoin d'un tel accès. Le mode PASV doit être utilisé.

Chris W. Rea
la source
-1

Le port 22 est standard car le démon SSH sous UNIX possède un module SFTP que vous pouvez activer pour créer un serveur SFTP explicite. Si vous souhaitez exécuter un serveur FTP implicite avec Filezilla, vous pouvez l'exécuter sur n'importe quel port de votre choix, mais il y a un hic: si vous utilisez le client FileZilla, vous devez spécifier l'URL du site ftp comme ftps: //mysite.com: 8086 plutôt que de placer le port dans le champ de port séparé fourni par le client FileZilla.

Pour l'option explicite, vous n'avez besoin que D'UN seul port: 22. Pour l'option implicite, il vous suffit d'ouvrir le pare-feu pour le port de contrôle: 8086 (qui transfère en interne vers le port 21 sur votre serveur Filezilla).

djangofan
la source
6
La question portait sur FTPS, pas SFTP.
Michael Lang
-7

si ftps est identique à sftp , il vous suffit de pouvoir accéder au port 22 sur le site du vendeur.

De votre côté, vous devez configurer votre pare-feu pour autoriser le port 22 sortant et le trafic entrant associé . Cela permettra la communication sur tout port entrant lié à la connexion sortante initiale sur le port 22.

Brent
la source
11
SFTP n'est pas identique à ftps ( codeguru.com/csharp/.net/net_general/internet/article.php/… ). SFTP est le protocole de transfert de fichiers utilisé avec SSH. FTPS est FTP avec SSL, FTPS démarre une nouvelle connexion DATA sur un nouveau port aléatoire, ce qui rend le déploiement difficile derrière les pare-feu, mais je ne peux pas supprimer le pare-feu dans cette situation.
2
Désolé alors. Je laisserai cependant ce message, au cas où d'autres auraient la même confusion.
Brent
C'est une confusion très courante. Du côté du pare-feu, sftp est beaucoup plus facile à autoriser, sauf qu'il est construit sur un protocole destiné à l'accès à la connexion. Négligent pour les groupes de sécurité indépendants de permettre sans validation indépendante significative. Difficile pour les administrateurs système de trouver / configurer un serveur sftp raisonnable pour les clients non fiables. Toute discussion sur sftp ou ftps doit mentionner l'autre protocole car la confusion est SI courante.
carlito