Home
Télécharger

Accueil Généralités Les Pare-feu Les spywares Internet Le Peer to peer Logiciels P2P Les News Powergrab Démo Le FTP Récap. des sites

Le FTP


    C'est le moyen idéal pour échanger un fichier de PC à PC. Typiquement vous avez un fichier et vous voulez l'envoyer à un ami. Si la taille est petite, vous employez le mail. Voir MSN s'il est un peu plus gros... Mais pour un gros fichier ?? Ne cherchez plus , le ftp est fait pour vous !
FTP signifie File Transfer Protocol. C'est le protocole standard pour transférer des fichiers, comme le protocole HTTP (Hyper Text Transfer Protocol) permet de transférer des pages Web. Il a été développé et conçu pour cela il y a longtemps maintenant, et fait partie de la suite TCP/IP.

Mode Client / Serveur

Il fonctionne sur le mode client/server: un client se connecte sur un serveur, et peut ensuite transférer des fichiers, dans un sens comme dans l'autre. Mais il faut avant tout établir une connexion, peu importe qui est qui, il faut un client d'un côté et un serveur de l'autre !
On a vu précédemment que la notion client/serveur est très vaste, et qu'il faut rester simple. Là, ce qu'il faut comprendre, c'est que seul le client peut initier la connexion, et exécuter des commandes. Côté serveur, il ne s'agit que d'un programme qui tourne sur votre PC, sans interface graphique (vous ne voyez donc rien), et qui se contente de répondre aux demandes de connexions ainsi qu'aux commandes émises par le client (copier les fichiers dans un sens ou dans l'autre).
Concrètement:
L'un des PC doit donc être "Serveur Ftp" et l'autre PC se connectera et pourra au choix télécharger des fichiers de ce PC, ou en déposer sur ce serveur.

Serveur

On a vu qu'il n'y pas d'interface graphique, c'est un programme qui tourne en "tâche de fond" . Sous Windows, cela s'appelle un service: vous devrez d'abord l'installer (ce n'est pas le cas par défaut), puis vous pourrez choisir de le démarrer automatiquement ou manuellement (pensez à la sécurité, si c'est pour transférer de fichiers de manière ponctuelle, il est préférable de choisir démarrage manuel). Une fois démarré, le PC client (l'ami qui veut copier un fichier) pourra se connecter sur votre PC et faire ce qu'il a à faire. J'explique plus bas comment installer et configurer le serveur sous Windows.

Client

Pour être client, il suffit d'installer un logiciel (on en trouve des gratuits sur internet comme Filezilla), de connaître l'adresse IP du PC faisant office de serveur. Le client par contre existe par défaut sous Windows, mais de manière très basique: pas d'interface graphique, uniquement en mode commande (vous savez, la boite noire où il faut taper plein de choses incompréhensibles ??). J'explique plus loin comment installer un client graphique (gratuit).

Comment ça marche ?


    On voit sur ce shéma que le client comme le serveur possèdent deux processus permettant de gérer ces deux types d'information : le DTP (Data Transfer Process) est le processus chargé d'établir la connexion et de gérer le canal de données (donc le tranfert du fichier proprement dit) et le PI (Protocol Interpreter) est l'interpréteur de protocole permettant de commander le DTP à l'aide des commandes reçues sur le canal de contrôle.
On remarque aussi qu'il n'y a pas d'interface (GUI qui signifie Graphic User Interface) côté serveur. C'est le client qui fait tout: il initie la connexion et envoie des commandes. Le serveur l'autorise (ou non) puis répond à ses commandes par le canal de données.

Pour plus d'infos, vous pouvez aller voir la page suivante :http://www.commentcamarche.net/internet/ftp.php3 (d'où j'ai d'aileurs copié le shéma).

L'authentification

    Pour ce faire, il faudra s'authentifier, c'est à dire donner un nom d'utilisateur et un mot de passe... C'est le principe de base ! Le serveur (une fois installé, voir plus loin) autorisera les demandes de connexions des clients en fonction d'un nom et du mot de passe fourni. Mais le serveur peut être configuré de 2 manières: en mode Anonyme, ou en mode normal. Sans trop rentrer dans les détails, le protocole FTP transmet les mots de passe en clair sur le réseau (pas de cryptage). Il est donc préférable d'autoriser les connexions anonymes lors de l'installation du serveur, ceci afin d'éviter de devoir transmettre sur le réseau de vrais noms d'utilisateurs/mots passe (c'est-à-dire ceux que vous utilisez sur votre ordinateur et qui ont à priori plus de droits que le droit du compte par défaut créé. Voilà un peu plus d'explications:

Authentification FTP anonyme

    Vous pouvez configurer votre serveur FTP pour autoriser l'accès anonyme aux ressources FTP. Si l'authentification anonyme est activée, IIS (Internet Information Services, qui est utilisé pour installer la partie "serveur ftp") essaiera toujours d'utiliser cette méthode en premier, même si l'authentification de base est également activée.
Si vous sélectionnez l'authentification anonyme pour une ressource, toutes les demandes concernant cette ressource sont traitées sans demander de nom d'utilisateur ni de mot de passe. Cela est possible parce que IIS crée automatiquement un compte d'utilisateur Windows appelé IUSR_nom_ordinateur (nom_ordinateur étant le nom donné au PC sur lequel IIS s'exécute). Cette méthode est très similaire à l'authentification Web anonyme.

Authentification FTP de base

    Pour établir une connexion FTP avec votre serveur Web à l'aide de l'authentification de base, les utilisateurs doivent ouvrir une session en utilisant un nom d'utilisateur et un mot de passe correspondant à un compte valide. Si le serveur FTP ne parvient pas à vérifier l'identité d'un utilisateur, il renvoie un message d'erreur. L'authentification FTP est assez peu sécurisée, car l'utilisateur transmet son mot de passe et son nom d'utilisateur sur le réseau sans les crypter.

Nous verrons comment faire cela lors de l'installation du serveur.

Le Serveur - Installation

    Il n'est pas installé par défaut sous Windows. Il faut donc l'ajouter, comme on peut ajouter n'importe quel composants Windows qui ne l'est pas par défaut. Je prendrai ici l'exemple avec Windows 2000, c'est à peu près identique sous XP Professionel.

A noter que sur Windows XP Edition familiale (Home), ce composant n'est pas disponible (merci Microsoft). Il vous faudra alors installer un FTP Serveur comme FileZilla Server, logiciel Open-source, donc gratuit, et qui finalement se révèle plus simple d'utilisation que celui de Microsoft.
Il vous faut d'abord installer le composant: allez dans le Panneau de Configuration, et cliquez sur "Ajout et Suppresion de Programmes". Puis cliquez sur Ajouter/Supprimer des composants Windows:


Une fenêtre s'ouvre. Sélectionnez "Services Internet IIS" (Attention: ne cliquez pas sur la case, vous modifieriez la sélection existante ! Si vous ne savez plus, faites Annuler et recommencez), puis cliquez sur"Détail":

On a vu que IIS signifie Internet Information Services. On n'installe que la partie FTP, mais on pourrait installer d'autres services WEB...
Sélectionner (cocher la case) sur "Serveur FTP (File Transfer Protocol)", puis cliquez sur OK. D'autres composants seront sans doute ajoutés automatiquement par Windows. C'est normal.

Faites alors "Suivant" et laissez la procédure se terminer. Votre serveur FTP est installé ! Il s'agit en fait d'un service Windows, qui par défaut est installé en démarrage automatique. Si vous préférez ne démarrer le Serveur FTP que lorsque vous en avez besoin (préférable), il vous faut alors modifier le type de démarrage. Pour cela, ouvrez l'explorateur windows, sous Panneau de Configuration, sélectionner Outils d'administration, puis  Gestion de l'ordinateur dans la partie droite; puis sélectionner "Services" (sous Services et applications) dans la partie gauche. Cherchez ensuite "Service de publication FTP".

Sélectionnez le et faites ensuite "Action - Propriétés". Changez alors de mode de démarrage de Automatique à Manuel:
(ceci afin de contrôler l'accès à votre ordinateur: il faudra le lancer manuellement lorsque vous voulez que quelqu'un se connecte sur votre PC (contrainte), mais le service sera arrêté le reste du temps (sécurité).

Reste à configurer le compte utilisateur. Avant cela, il vous faut comprendre les modes d'authentification possible... Encore un petit effort !!

Le Serveur - Configuration

Pour accéder à la console des Services Internet, faites Programmes - Outils d'administration - Gestionnaire de Services Internet. La fenêtre suivante s'ouvre. (Pour démarrer le service, il suffit de cliquer sur le bouton indiqué).

Sélectionnez le Site FTP par défaut, et cliquez sur Action - Propriétés:

Dans l'onglet Comptes de sécurité, Windows a créé pour vous un compte utilisateur appelé IUSR_nom_de_l'ordinateur, et coché la case "Autoriser les connections anonymes". Vous pouvez bien sûr utiliser un compte utilisateur de votre choix, si vous le souhaitez. Il faut bien comprendre que ce sont les droits de ce compte qui seront utilisés par les clients FTP se connectant sur votre PC.
Vous pouvez désactiver l'accès aux connexions anonymes, mais rappelez vous qu'alors les mots de passe passeront en clair sur le réseau ! Ce n'est pas l'idéal en matière de sécurité !! Le mieux (et le plus simple) est donc sans doute de laisser l'accès en mode anonyme, mais de limiter au minimum les droits de l'utilisateur IUSR_MENHIR... (si vous suivez, vous aurez compris que MENHIR est le nom de mon PC ! vous aurez à priori un autre nom !).

Il faut maintenant donner des droits sur le répertoire qui sera utilisé pour transférer les fichiers. Dans l'onglet "Répertoire de base", on voit que Windows crée et partage le répertoire C:\Inetpub\ftproot. Vous pouvez soit laisser celui-ci, soit changer et sélectionner un répertoire de votre choix, que vous aurez créé auparavant... par exemple sur un autre disque que le disque C... A vous de voir.

Il faut ensuite aller donner les droits (permissions) à l'utilisateur IUSR_MENHIR d'accéder à ce répertoire. Il y a alors 2 niveaux de permissions à appliquer: le partage et le répertoire lui-même. Cela se fait dans les boites suivantes:

D'abord sélectionner le répertoire ftproot dans l'explorateur Windows, puis affichez les propriétés. Sur l'onglet Partage, cliquez sur Autorisations, et veillez à ce que IUSR_MENHIR ait bien les droits souhaités: s'il ne fait que copier des fichiers que vous lui proposez, le droit de lecture suffira. S'il doit aussi y déposer des fichiers, alors il lui faudra le droit d'écriture (Modifier).

Il faut appliquer la même logique au niveau des droits du répertoire lui-même: sélectionnez l'onglet Sécurité :

Enfin, il faudra que vous donniez votre adresse IP à la personne qui va se connecter (le client). Ouvrez une boite de commande (Démarrer - Exécuter - cmd), et tapez la commande ipconfig:


Relevez votre adresse (81.57.182.135 dans l'exemple) et communiquez la au "client" (votre ami qui veut copier un fichier).

Voilà votre serveur est prêt, il ne reste plus qu'au client à se connecter et télécharger ou y déposer des fichiers... Pensez au firewall (pare-feu) si vous en utilisez un: il va détecter des tentatives de connexions !. Il faudra donc les autoriser, puisque vous savez d'où vient cette demande de connexion.

Le client

Tous les PCs tournant sous Windows ont le client FTP d'installé de base (en installant le protocole TCP/IP). Vous pouvez tout simplement ouvrir une boite de commande, et vous connecter sur un serveur: Les 2 seules choses à connaître sont le nom (ou l'adresse TCP/IP) du serveur, ainsi que le nom d'utilisateur et le mot de passe.

Pour me connecter sur le site de Free pour y copier les fichiers de  mon site Web, par exemple, je tape:

Il existe aussi des clients sous Windows plus faciles d'emploi. Un bon freeware:  FileZilla, ou en logiciel payant CuteFTP ou encore FTP Expert. L'interface graphique vous simplifiera grandement les choses !

Installation de FileZilla

L'installation est vraiment très simple, laissez-vous guider par l'assistant, il n'y a aucune question compliquée. Une fois installé et démarré, il faudra d'abord créer un site (c'est-à-dire identifier le serveur sur lequel vous allez vous connecter. Pour vous connecter au PC d'un ami, remplacez dans l'exemple ci-dessous le nom d'hôte (ftpperso.free.fr) par l'adresse IP du PC distant, et choisissez Type d'authentification "Anonyme" (voir installation du serveur plus haut).

Une fois le site créé, il suffit de sélectionner, et de cliquer sur "Connexion"...

Vous pourrez alors visualiser les fichiers de votre PC dans la fenêtre de gauche (Site local) ainsi que les fichiers sur le PC de votre ami (Site distant). Il suffit alors de sélectionner les fichiers de votre choix avec la souris, et de les déposer dans l'autre fenêtre (dans les deux sens).

Vous trouverez plein d'autres clients gratuits (ou pas) sur cette page : http://www.soft411.com/software/ftp.html

La commande proxy

Pour finir, une autre utilisation du protocole FTP: transférer des fichiers entre 2 machines à partir d'une 3e (qui fait le rôle du client).  C'est une utilisation avancée, vous ne devriez pas en avoir besoin, mais sachez que c'est possible

Regardez le shéma ci-desous:


Comment cela se passe ? on utilise une commande appelée "proxy" qui permet d'exécuter des commandes sur une deuxième connexion.
Le principe est le suivant:

>ftp
ftp> open serveurA <- on se connecte sur le serveurA
utilisateur:
mot de passe:
ftp> proxy open serveurB <- on se connecte sur le serveurB
utilisateur:
mot de passe:
ftp> dir <- liste des fichiers sur le serveurA
ftp> proxy dir <- liste des fichiers sur le serveurB
ftp> cd /tmp <- changement de répertoire sur le serveurA
ftp> proxy cd /tmp <- changement de répertoire sur le serveurB
ftp> quote pasv <- mode "Passive" sur le serveurA
ftp> proxy quote pasv <- mode "Passive" sur le serveurB
ftp> proxy get file1 <- Transfert de fichier du serveurA vers le serveurB
ftp> proxy put file2 <- Transfert de fichier du serveurB vers le serveurA

Dans Filezilla (ou tout autre client qui supporte cette fonctionnalité), on configure le serveur B dans les paramètres de connexion. Je ne l'ai jamais fait (pas eu besoin), donc pas d'exemple !! Peut-être un jour...


Retour haut de page