Table de Matieres
I. Présentation
Sous Windows, il est possible de mettre en place un serveur FTP avec des logiciels tiers comme FileZilla Server, mais aussi grâce à un serveur IIS qui correspond à une fonctionnalité propre à Windows.
L’objectif de ce tutoriel est de mettre en place un site FTP sur un serveur IIS en version 8.5, installé sous Windows Server 2012 R2. De plus, chaque utilisateur devra être isolé dans son répertoire personnel sur le FTP, et, il ne pourra pas accéder (ni voir) les autres répertoires des autres utilisateurs. Cela permet de réduire le champ d’action de chaque utilisateur.
Avant de commencer, assurez-vous d’avoir installé un serveur web IIS fonctionnel sur votre machine, car nous commencerons à partir de l’installation du module FTP sur IIS (installer IIS 8 sous Windows 8).
II. Infrastructure
Avant de commencer la configuration, voici un schéma de l’infrastructure que j’utilise pour la réalisation de ce tutoriel :
Le site FTP dans IIS sera nommé « IT-CONNECT-FTP » et permettra l’accès à deux utilisateurs possédant un compte dans le domaine Active Directory : admin01 et technicien01. Chaque utilisateur pourra accéder uniquement à son dossier personnel sur le FTP, d’où l’architecture FTP présentée ci-dessus.
III. Installation du serveur FTP
Commençons par installer le serveur FTP au sein d’IIS. Pour cela, on utilisera PowerShell. Pour visualiser si le serveur FTP est déjà installé ou non, saisissez cette commande :
Get-WindowsFeature | Where $_.Name -match "FTP"
On remarque que la case « Serveur FTP » n’est pas cochée, il faut donc l’installer.
Pour l’installation, on procédera comme ceci :
Install-WindowsFeature -Name Web-Ftp-Server -IncludeAllSubFeature
Pour ceux qui souhaitent le faire l’interface graphique, il faudra ajouter une fonctionnalité et cochez le serveur FTP sous « Serveur Web (IIS) »
La phase d’installation de la fonctionnalité est terminée. Passons à la création des données du site FTP.
IV. Création de l’arborescence FTP
Avant de créer le site FTP, on va créer l’arborescence FTP décrite sur mon schéma d’infrastructure dans la partie précédente. Tout d’abord, accédez à :
C:\inetpub\ftproot
Dans ce répertoire, créez un répertoire portant le nom NETBIOS de votre domaine. Par exemple, dans mon cas il s’agit du domaine « it-connect.fr » donc je crée un répertoire « IT-CONNECT« . Ceci est essentiel pour l’isolation.
Ensuite, dans ce répertoire créez un dossier pour chaque utilisateur où le nom de dossier sera le nom de connexion de l’utilisateur. Par exemple, pour l’utilisateur « admin01 » créez un dossier nommé « admin01« . Placez des données – éventuellement – dans les dossiers de vos utilisateurs (utile pour les tests).
Vous obtiendrez ceci (comme décrit sur l’infrastructure) :
V. Création du site FTP
Passons à la création du site FTP et à sa configuration. Ouvrez le « Gestionnaire des services Internet (IIS) » sur votre serveur FTP. Effectuez un clic droit sur le nom de votre serveur (exemple : SRV01) et cliquez sur « Ajouter un site FTP« .
Donnez un nom au site FTP, pour ma part j’indique « IT-Connect-FTP » et comme chemin d’accès physique indiquez « C:\inetpub\ftproot« . Continuez.
Ensuite, configurons la liaison, pour l’adresse IP vous pouvez choisir « Toutes non attribuées« . Concernant le SSL bien qu’il soit intéressant de le mettre en place pour sécuriser les communications et les échanges client/serveur, choisissez « Pas de SSL« , car cela nécessiterait la création d’un certificat via une autorité de certificat (CA). Cliquez sur « Suivant« .
Pour l’authentification, choisissez « De base« , dans ce cas nous n’autorisons pas les connexions en Anonyme, mais vous pouvez les autoriser. Concernant les autorisations, sélectionnez « Tous les utilisateurs » et donnez les droits de Lecture et Écriture pour que chaque utilisateur puisse travailler dans son répertoire.
Choisir « Tous les utilisateurs » est très flexible, si vous devez définir seulement quelques utilisateurs vous pouvez indiquer explicitement la liste.
Cliquez sur « Terminer » pour finaliser la création du site FTP qui sera directement opérationnel.
VI. Configurer l’isolation des utilisateurs
Point final de la configuration, l’isolation des utilisateurs afin qu’ils soient dirigés directement vers leur répertoire personnel sur le serveur FTP. Pour cela, sélectionnez le site FTP que nous venons de créer dans la console IIS, puis sur la droite double cliquez sur « Isolation d’utilisateur FTP« .
Sélectionnez l’option « Répertoire des noms d’utilisateurs (désactiver les répertoires virtuels globaux) » pour qu’un utilisateur soit mappé directement dans le répertoire qui porte son nom. Cliquez sur « Appliquer« .
L’option « Répertoire des noms d’utilisateurs (désactiver les répertoires virtuels globaux) » permet d’isoler également les utilisateurs, mais, les répertoires virtuels de plus haut niveau sont actifs et peuvent être accessibles par l’utilisateur s’il dispose des droits nécessaires.
Enfin, l’option « Répertoire de base FTP configuré dans Active Directory » permet de mapper l’utilisateur dans son répertoire FTP défini dans l’Active Directory. Voir au niveau des directives msIIS-FTPRoot et msIIS-FTPDir.
VII. La phase de test
Désormais, notre serveur FTP est fin prêt ! Passons sur la machine cliente afin de simuler un test de connexion. Pour cela, je vais utiliser l’explorateur Windows, mais aussi le client FileZilla.
Dans l’explorateur, j’indique : ftp://(email protected)
On me demande de m’authentifier, suite à cette authentification je serais redirigé vers le répertoire « admin01 » du FTP.
Par ailleurs, lors que je tente un accès avec le logiciel FileZilla en utilisant le nom DNS de la machine SRV01, j’accède également au FTP :
On remarque bien la présence de mon fichier, et il m’est impossible de remonter à un niveau supérieur du FTP.
Note : Si un problème d’upload survient, vérifiez les droits NTFS sur le dossier FTP. Donnez les droits en lecture seule ou en lecture/écriture à l’utilisateur concerné au niveau NTFS afin qu’il puisse écrire sur l’espace disque.
Le FTP est opérationnel, les utilisateurs autorisés sont bien mappés chacun dans leur dossier respectif.
Hébergez votre site à partir de 2$ sur 👉👉👉 https://www.tnctech.ca