IIS 8.5 : Créer un site FTP avec isolation des utilisateurs
Sommaire
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.
Je n’ais pas le Gestionnaire des services Internet (IIS) pouvez-vous m’aidez ?
Bonjour,
Quel est l’OS ? IIS est bien installé ? Il me semble qu’il faut installer les outils de gestion d’IIS pour avoir cette console. Si besoin, merci de créer un nouveau sujet dans notre forum.
Florian
io Florian
Avec cette solution, Est-ce que l’on peut créer des serveurs ftp sur différent poste PC et assurer une synchro des data ?
Bonjour,
Peux-tu détailler un peu plus ta demande ? Pour cela, je t’invite à utiliser notre forum qui est plus adapté. Merci.
Florian
Bonjour,
Malgré avoir suivi votre tutoriel à la lettre, je n’obtiens aucune erreur mais incapable de me connecter. Est-ce qu,il y a des droits en particuliers a ajouter aux différents répertoires ?
Merci!
Bonsoir, je n’arrive pas à isoler les utilisateurs. Impossible de connecter plusieurs users.
Merci de votre aide.
Merci Florian! Beaucoup de très bon tuto de ta part!
A+
J’ai une question, mon serveur 2012 R2 est sur AZURE dans le cloud. Je souhaite ouvrir mon FTP vers l’extérieur sur le port 21 (Par le biais d’une NAT)Tout fonctionne sur le port 80 j’accède à ISS depuis l’extérieur mais impossible de me connecter en FTP avec FILEZILLA (Par-feux tous déconnectés pour le test). j’ai fait un netstat -a pour écouter les ports(3389ok normal, 80 ok, test 8080 ok mais 21 rien.
Un paramétrage à faire pour les IP Public sur le 2012 afin d’autoriser le FTP?
Bonjour,
ayant crée et installé le service ftp qui fonctionne bien avec l’adresse local mais si je veux accéder via no-ip en distance il me demande sans cesse le nom d’utilisateur et mot de pass alors que avec l’adresse local 192.168.1.1 sa fonctionne en rentrant le nom d’utilisateur et mot de pass
quel est le problème ?
Bonjour,
Pourquoi l’isolation nécessite la création du sous-dossier IT-CONNECT?
=> est-ce parce que vous utilisez des utilisateurs du domaines?
je demande car j’ai mis en place un serveur ftp pour la machine d’un client qui n’est pas intégrée à domaine.
Mes comptes sont des comptes locaux, dans ce cas si je crée mes dossiers utilisateurs juste après c:\inetpub\ftproot, est-ce bon (ex: c:\inetpub\ftproot\user1) ?
Merci 🙂