Faire un DNAT pour un serveur FTPS sur IPFIRE

Introduction

Si vous avez suivi l'un des tutos sur la configuration d'un serveur FTPS, alors vous vous êtes forcément confrontés au problème de l'ajout d'un pare-feu entre votre client et le serveur FTPS.

C'est là que les choses coincent !

Expliquons donc rapidement comment gérer cette situation !

En FTPS (over SSL), dès lors qu'on place un pare-feu entre un client et un serveur FTPS, les choses se gâtent, car à la différence du SFTP (over SSH), le serveur FTPS utilise plusieurs ports !
Nombre d'administrateurs préfèrent évidemment le SFTP, en grande partie pour cette raison ! (et d'autres pour des questions de sécurité inhérentes à SSH par rapport à SSL).

Mais si vous optez pour le FTPS, il y a clairement une configuration plus simple que l'autre dans le cas de figure du pare-feu !

Il y a donc une séparation claire des canaux de commande et de transferts des données : le canal de commande (port 21 sur le serveur FTPS) reste constant, et les ports de données sont gérés dynamiquement dans la plage définie, par le serveur lui-même.


Voici comment s'établit un échange entre un client et le serveur FTPS dans une configuration FTPS explicite


Maintenant, la question : comment faire ce DNAT particulier ?

Exemple avec IPFIRE

D'abord le port de commande (21).
Pour plus de sécurité, nous le changeons pour le 2121 sur l'IP publique publique du pare-feu car il s'agît d'un port ultra connu !

Nous aurons donc la redirection suivante :
IP-PUBLIQUE-PARE-FEU:2121 -> 10.10.20.200:21 (IP du serveur FTPS)

Capture d'écran

Puis la plage de ports passifs (60000-61000)
Pour ces ports-là, la redirection reste inchangée.

Nous aurons donc la redirection suivante :
IP-PUBLIQUE-PARE-FEU:60000-61000 -> 10.10.20.200:60000-61000

Capture d'écran

Ce qui donne :

Capture d'écran

Capture d'écran


⬆️ Retour en haut de la page