web-dev-qa-db-fra.com

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

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?
33
user3293

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 pour NAT modifiées, 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 le lire ni le 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 ou non NAT et s'il est statique NAT ou NAT dynamique. Si votre machine client a un statique adresse ou étant statiquement NATé, 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.

19
pcapademic

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 un à un/statique NAT vers l'IP interne et seuls les ports TCP 21, 21000-21010 sont ouverts.

29
David

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 cryptage lors des transferts de données [si le cryptage des données est maintenu est configurable côté serveur avec PROT P], tandis que l'implicite conserve également le cryptage 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.

11
Marin

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 celui 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, faire semblant de ne pas comprendre qu'ils peuvent l'écrire dans la langue de leur choix, car ils ne savent pas écrire un programme trivial à partir de zéro.).

2
carlito

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é.

1
Chris W. Rea

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).

0
djangofan