Quel est le protocole FTP. Protocole de transfert de fichiers FTP. Connexion via FTP. Protocole FTP (SFTP, FTPS) - qu'est-ce que c'est, connexion entre client et serveur via FTP

Le protocole FTP est un type de protocole de transfert de données utilisé pour copier et déplacer des fichiers sur Internet et au sein des réseaux TCP. FTP est souvent utilisé pour télécharger des pages et des documents. divers typesà l'hébergement d'ordinateurs. Le protocole FTP utilise une architecture client-serveur et diverses connexions au sein d'un réseau pour transférer des commandes et des informations du client au serveur et vice versa. Les utilisateurs FTP sont autorisés à s'authentifier à l'aide d'un identifiant et d'un mot de passe ou, si ce formulaire est autorisé sur le serveur, les utilisateurs peuvent y accéder de manière anonyme.
En plus du protocole habituel, FTPS est également utilisé, qui est une extension spéciale du FTP standard, qui permet aux clients d'accéder au serveur et d'utiliser des sessions de transfert d'informations cryptées. Cette approche est mise en œuvre par l'envoi de la commande d'authentification « auth tls », qui permet au serveur d'accepter ou de rejeter les connexions qui ne demandent pas de connexions TLS.

SFTP

SFTP est une norme de transfert d'informations sur Internet, destinée au déplacement et à la copie de fichiers à l'aide d'une connexion SSH (Secure Shell) hautement fiable et sécurisée. Ce type de connexion peut fournir un accès et une transmission sécurisée, qui s'effectue avec cryptage à la fois de l'identifiant et du mot de passe, ainsi que du contenu de la transmission elle-même, protégeant ainsi les mots de passe et information confidentielle de la transmission ouverte sur le réseau.
Contrairement à FTP, Protocole SFTP, malgré des fonctions similaires, utilise un protocole de transfert de données différent et les clients standard ne peuvent donc pas communiquer avec les serveurs SFTP.

Caractéristiques de la norme FTP

Cette norme est l'une des plus anciennes protocoles réseau, qui a été créé il y a 45 ans et est aujourd'hui assez largement utilisé sur Internet. L'une des caractéristiques les plus importantes du protocole est l'utilisation de plusieurs connexions : une pour transmettre des commandes de contrôle et d'autres pour le transfert direct de fichiers. Dans ce cas, vous pouvez ouvrir plusieurs connexions parallèles, chacune pouvant transférer des données dans les deux sens.
Il existe deux modes de fonctionnement FTP, qui diffèrent par la manière dont les connexions sont établies : passif et actif. En mode actif, le serveur établit une connexion pour transmettre des informations à l'utilisateur, et en mode passif, vice versa.
Cette norme est utilisée depuis assez longtemps et est à première vue extrêmement simple. Mais une telle simplicité peut être assez trompeuse, car un grand nombre d'utilisateurs peuvent rencontrer des problèmes pour accéder à ce standard, surtout si le serveur ou l'utilisateur utilise un pare-feu ou un NAT.

Caractéristiques du mode actif

En mode actif, le client initie une connexion de contrôle au port 21 du serveur en envoyant la commande « port », qui spécifie l'adresse et le port de transfert des informations. Après avoir reçu cette commande, le serveur démarre une connexion depuis son propre port 20 vers le port utilisateur spécifié.
Le principal inconvénient de cette méthode est que l’utilisateur doit disposer d’une adresse IP dédiée sur Internet pour fonctionner. De plus, certains problèmes peuvent survenir si le client se trouve derrière un pare-feu ou un NAT.

Fonctionnalités du mode passif

Afin d'établir une connexion passive, l'utilisateur doit envoyer la commande spéciale « pasv » au serveur. En réponse à cette commande, le serveur envoie des informations sur l'adresse et le port avec lesquels le client doit établir une connexion. Après avoir reçu ces données, l'utilisateur se connecte à l'ordinateur serveur et transfère les informations.
Lors de l'utilisation du mode passif, absolument toutes les connexions sont initiées par le client et il n'y a donc aucune exigence à ce sujet. L'utilisateur est autorisé à utiliser NAT et un pare-feu, et à ne pas utiliser d'adresse IP dédiée. Par conséquent, aujourd'hui, le mode passif est utilisé comme principal type d'accès et de transfert de fichiers via FTP sur Internet.

Paramètres si vous utilisez un pare-feu

Lors de l'utilisation d'un pare-feu et du mode actif, les utilisateurs peuvent rencontrer des problèmes d'accès. Si le pare-feu est configuré pour rejeter les connexions entrantes non initiées en interne, l'ordinateur serveur ne pourra pas établir de connexion et commencer à transmettre des informations. Et du fait que le port d'information est de type dynamique, certaines difficultés surviennent lors de la configuration du pare-feu. La meilleure option dans ce cas est d'indiquer la gamme de ports utilisés et d'organiser une règle de pare-feu spéciale autorisant ceux-ci.
Si vous utilisez le mode passif, vous courez le risque de rencontrer une complexité similaire. ordinateur serveur. Dans ce cas, vous pouvez utiliser une solution similaire : spécifiez dans les options une certaine plage de ports utilisés et créez une règle spéciale pour cette plage.

Configuration lors de l'utilisation de NAT

Pour le bon fonctionnement de FTP sur NAT et un transfert de fichiers réussi, il ne suffit pas de simplement configurer le transfert des ports de travail, car un ordinateur serveur fonctionnant sous NAT transmettra l'adresse du port interne et le client ne pourra tout simplement pas se connecter et transférer des informations.
Certaines implémentations NAT modernes peuvent surveiller le canal de contrôle d'une connexion FTP et l'usurper. fonctionnement normal transfert de données adresse interne externe. De plus, les serveurs FTP ont la possibilité de spécifier port externe, qui devrait apparaître dans la session de contrôle.
Le plus souvent, pour un transfert de fichiers normal via FTP via NAT, le port de transfert 21 suffit pour mettre en œuvre une session de contrôle, ainsi que pour spécifier et transférer une plage d'adresses dynamiques utilisées pour le transfert de données sur Internet.

Réseau service de fichiers basé sur le protocole FTP ( Transfert de fichier Le protocole est l'un des premiers services utilisés pour accéder aux fichiers distants. Avant l'avènement du service WWW, il s'agissait du service le plus populaire pour accéder aux données à distance sur Internet et les réseaux IP d'entreprise. Les premières spécifications FTP remontent à 1971. Les serveurs et clients FTP sont disponibles dans presque tous les systèmes d'exploitation Famille UNIX, ainsi que dans de nombreux autres systèmes d'exploitation réseau. Les clients FTP sont aujourd'hui intégrés aux navigateurs Internet, car les archives de fichiers basées sur FTP sont toujours populaires et le navigateur utilise le protocole FTP pour accéder à ces archives.

Le protocole FTP vous permet de déplacer un fichier entier d'un ordinateur distant vers un ordinateur local et vice versa, c'est-à-dire qu'il fonctionne selon le schéma de téléchargement-téléchargement. De plus, il prend en charge plusieurs commandes pour parcourir un répertoire distant et parcourir les répertoires sur un système de fichiers distant. Par conséquent, FTP est particulièrement pratique à utiliser pour accéder aux fichiers dont les données n'ont pas de sens d'être visualisées à distance, mais il est beaucoup plus efficace de déplacer l'intégralité des données vers l'ordinateur client (par exemple, les fichiers des modules exécutables d'application).

Le protocole FTP intègre des moyens primitifs d'authentification des utilisateurs distants basés sur la transmission d'un mot de passe en texte clair sur le réseau. De plus, l'accès anonyme est pris en charge, qui ne nécessite pas de nom d'utilisateur ni de mot de passe, ce qui est plus sécurisé car il n'expose pas les mots de passe des utilisateurs à la menace d'interception.

Le protocole FTP est implémenté selon le schéma client-serveur. Le client FTP se compose de plusieurs modules fonctionnels :

L'interface utilisateur est une interface utilisateur qui accepte les commandes de caractères de l'utilisateur et affiche l'état de la session FTP sur un écran de caractères.

User-Pi est un interpréteur de commandes utilisateur. Ce module interagit avec le module serveur FTP correspondant.

User-DTP est un module qui transfère les données de fichiers à l'aide des commandes reçues du module User-Pi via le protocole client-serveur. Ce module interagit avec le local système de fichiers client.

Le serveur FTP comprend les modules suivants :

Server-Pi est un module qui reçoit et interprète les commandes transmises sur le réseau par le module User-PL

Server-DTP est un module qui contrôle le transfert des données des fichiers à l'aide des commandes du module Server-PL. Il interagit avec le système de fichiers local du serveur.

Le client et le serveur FTP prennent en charge deux sessions parallèles : une session de contrôle et une session de transfert de données. Une session de contrôle est ouverte lorsqu'une première connexion FTP est établie entre le client et le serveur, et au cours d'une session de contrôle, plusieurs sessions de transfert de données peuvent être effectuées séquentiellement, au cours desquelles plusieurs fichiers sont transférés ou reçus.

Le schéma général d'interaction entre client et serveur est le suivant :

1. Le serveur FTP ouvre toujours le port de contrôle TCP 21 en écoute, en attendant une demande d'établissement d'une session de contrôle FTP provenant d'un client distant.

2. Après avoir établi une connexion de contrôle, le client envoie des commandes au serveur qui spécifient les paramètres de connexion :

nom et mot de passe du client ;

le rôle des participants à la connexion (actifs ou passifs) ;

port de données;

type de transmission;

type de données transmises (données binaires ou code ASCII) ;

3. Après avoir convenu des paramètres, le participant passif à la connexion passe en mode d'attente pour ouvrir une connexion au port de transfert de données. Le participant actif initie cette connexion et commence le transfert de données.

4. Après la fin du transfert de données, la connexion sur les ports de données est fermée, mais la connexion de contrôle reste ouverte. L'utilisateur peut activer une nouvelle session de transfert de données via une connexion de contrôle.

Les ports de transfert de données sont sélectionnés par le client FTP (par défaut, le client peut utiliser le port de session de contrôle pour le transfert de données) et le serveur doit utiliser un port un plus petit que le port client.

Le protocole FTP utilise plusieurs commandes lorsque le client interagit avec le serveur (il ne faut pas les confondre avec les commandes interface utilisateur client que la personne utilise).

Ces commandes sont divisées en trois groupes :

commandes de contrôle d'accès au système ;

commandes de contrôle de flux ;

équipes Services FTP.

L'ensemble des commandes de contrôle d'accès comprend les commandes suivantes :

USER -- transmet le nom du client au serveur. Cette commande ouvre une session de contrôle et peut également être émise lorsqu'une session de contrôle est ouverte pour modifier le nom d'utilisateur.

PASS - transmet le mot de passe de l'utilisateur en texte clair.

CWD -- modifie le répertoire actuel sur le serveur.

REIN -- Réinitialise la session de contrôle.

QUITTER -- termine la session de contrôle.

Les commandes de contrôle de flux définissent les paramètres de transfert de données :

PORT -- spécifie l'adresse et le port de l'hôte qui sera le participant actif à la connexion lors du transfert de données. Par exemple, la commande PORT 194,85,135,126,7,205 fait de l'hôte 194.85.135.126 et du port 1997 le participant actif (le calcul du numéro de port n'est pas trivial, mais il est sans ambiguïté).

PASV -- Désigne l'hôte comme participant passif à la connexion de données. En réponse à cette commande, une commande PORT doit être envoyée indiquant l'adresse et le port qui est en mode veille.

TYPE -- spécifie le type de données transmises (code ASCII ou données binaires).

STRU -- définit la structure des données transférées (fichier, enregistrement, page).

MODE -- définit le mode de transmission (flux, blocs, etc.).

Comme le montre la description, le service FTP peut être utilisé pour travailler aussi bien avec des fichiers structurés, divisés en enregistrements ou pages, qu'avec des fichiers non structurés.

Les commandes du service FTP lancent des actions pour transférer des fichiers ou parcourir un répertoire distant :

RETR -- demande un transfert de fichier du serveur vers l'hôte client. Les paramètres de la commande sont le nom du fichier. Un décalage depuis le début du fichier peut également être spécifié - cela vous permet de démarrer le transfert du fichier à partir d'un certain endroit en cas de rupture de connexion inattendue (ce paramètre est utilisé dans la commande reget de l'interface utilisateur).

STOR -- lance le transfert de fichiers du client vers le serveur. Les paramètres sont les mêmes que ceux de la commande RETR.

RNFR et RNTO sont des commandes permettant de renommer un fichier distant. Le premier reçoit l'ancien nom de fichier en argument et le second reçoit le nouveau.

DELE, MKD, RMD, LIST - ces commandes suppriment respectivement un fichier, créent un répertoire, suppriment un répertoire et transmettent une liste de fichiers dans le répertoire actuel.

Chaque commande du protocole FTP est envoyée à forme de texte une commande par ligne. La ligne se termine par les caractères de code ASCII CR et LF.

L'interface utilisateur du client FTP dépend de son implémentation logicielle. Outre les clients traditionnels fonctionnant en mode caractère, il existe également des shells graphiques qui ne nécessitent pas que l'utilisateur connaisse les commandes de caractères.

Les clients Character prennent généralement en charge l'ensemble de commandes de base suivant :

open hostname -- ouvre une session avec un serveur distant.

au revoir -- terminer la session avec hôte distant et quitter l'utilitaire FTP.

close -- met fin à la session avec l'hôte distant, l'utilitaire ftp continue de fonctionner.

ls (dir) -- imprime le contenu du répertoire distant actuel.

get filename -- copie un fichier distant sur l'hôte local.

put filename -- copie un fichier distant sur un serveur distant.

Si vous lisez ce blog depuis longtemps, vous vous souvenez peut-être de la façon dont j'ai décidé d'y rassembler une description des protocoles réseau populaires (et moins populaires). Pourquoi j'en ai besoin, vous pouvez lire dans l'article Une description assez complète du protocole SMTP. J'ai donc décidé d'ajouter à la collection le protocole FTP, largement utilisé pour le transfert de fichiers.

1. Allons-y

Comme d'habitude, je vais tout de suite commencer par un exemple :

$ exemple telnet.ru 21
J'essaie 192.168.0.1...
Connecté à example.ru.
Le caractère d'échappement est "^]".
220-Bienvenue sur Pure-FTPd
Vous êtes l'utilisateur numéro 5 sur 100 autorisés.
L’heure locale est désormais 17h41. Port du serveur : 21.
220 Vous serez déconnecté après 15 minutes d'inactivité.
UTILISATEUR afiskon
331 L'utilisateur indique OK. Mot de passe requis
PASS mot de passe boiteux
230-L'utilisateur afiskon a un accès de groupe aux : codeurs
230 D'accord. Le répertoire restreint actuel est /

Le serveur FTP fonctionne généralement sur le port 21. Dans l'exemple ci-dessus, les lignes commençant par des chiffres sont envoyées par le serveur, le reste - par le client. Les demandes des clients sont toujours constituées d'une seule ligne de format COMMANDE [arguments], tandis que les réponses du serveur peuvent contenir plusieurs lignes.

Les première et dernière lignes commencent par trois chiffres représentant le code de réponse, suivis de description du texte réponse, séparée du code par un espace ou un tiret. Si un espace est utilisé comme délimiteur, alors la ligne est la dernière de la réponse (et éventuellement la seule), sinon nous recevons la première ligne d'une réponse multiligne. On a déjà vu ça quelque part, n'est-ce pas ?

Il existe cinq groupes de réponses de serveur :

Comme vous pouvez le voir sur l'exemple, tout commence avec l'envoi du code 220 par le serveur. Ensuite, l'utilisateur doit se connecter à l'aide des commandes USER et PASS. Si tout est fait correctement, le serveur répondra au premier avec le code 331 et au second avec le code 230. Pour une connexion anonyme (si elle est autorisée par les paramètres du serveur), vous devez spécifier « anonyme » comme nom d'utilisateur, et votre e-mail comme mot de passe. En pratique, il s'agit généralement soit d'un e-mail vide, soit de quelque chose comme [email protégé].

Comme vous pouvez le constater, le mot de passe est transmis en texte clair, il est donc fortement conseillé de crypter la connexion FTP en utilisant SSL (c'est ce qu'on appelle FTPS - FTP plus SSL), et encore mieux - de transférer des fichiers via SSH en utilisant scp, sftp ou WinSCP utilitaires. Les deux premiers sont disponibles sur n'importe quel système Unix et utilisent les mêmes protocoles exécutés sur SSH pour transférer des fichiers. WinSCP est écrit pour Windows et ressemble à Commandant total, peut fonctionner à la fois avec les versions obsolètes SCP (Secure Copy) et SFTP (SSH File Transfer Protocol), qui n'apparaissaient que dans SSH-2.

2. Regardons autour de nous

Mais quelque chose m'a emmené dans la mauvaise steppe. Après avoir passé l'authentification (wow, je ne vais pas le confondre avec autorisation) Le serveur FTP exécutera volontiers nos commandes. Voici leur liste :

Équipe Code attendu Description
SUPPRIMER 250 Supprimer un fichier
RMD 250 Supprimer le répertoire
MDC 250 Aller au répertoire
MKD 257 Créer le répertoire
P.W.D. 257 Découvrez le répertoire actuel
QUITTER 221 Terminer le travail
TAPER 200 Définir le type de transfert
PORT 200 Passer en mode actif
PASV 227 Passer en mode passif
LISTE 150, 226 Obtenir le contenu du répertoire
RETOUR 150, 226 Télécharger un fichier
STOCKER 150, 226 Téléverser un fichier
ABOR 426,226 Annuler le transfert
RNFR 350 Sélectionnez le fichier à renommer
RNTO 250 Renommer le fichier

Ici, j'ai répertorié uniquement les commandes de base, qui suffisent pour écrire un client FTP à part entière. Le fait est qu'en conditions réelles, les serveurs FTP sont très sélectifs dans la prise en charge des commandes décrites dans RFC959 et RFC3659. Donc, si nous voulons obtenir une application vraiment fonctionnelle, et non un cheval sphérique dans le vide, nous devrons nous limiter aux seules commandes de la liste donnée.

Les commandes les plus simples sont QUITTER, SUPPRIMER, MKD, CWD et RMD. Nous commandons et vérifions simplement le code renvoyé par le serveur. Si elle est égale à la valeur attendue, alors tout va bien, sinon, nous traitons l'erreur.

MKD ftp_test
257 "ftp_test" : Le répertoire a été créé avec succès
CWD ftp_test
250 d'accord. Le répertoire actuel est /ftp_test
MDC..
250 d'accord. Le répertoire actuel est /
RMD ftp_test
250 Le répertoire a été supprimé avec succès

Si j'écrivais un client FTP, le code responsable de l'exécution de ces commandes ressemblerait à ceci :

code entier ;
char * rép;
// ...
si (code = rawcmd(250 , "RMD %s \r\n", réal) )
printf("Erreur : %d \n", code) ;
autre
printf("Tout est fait ! \n") ;

Un peu plus difficile avec l'analyse de la réponse du serveur à une commande P.W.D.:

P.W.D.
257 "/ftp_test" est votre emplacement actuel

Le répertoire courant est transmis dans la seule (dernière ?) ligne de la réponse du serveur, entourée de double citation. Si le nom complet du répertoire courant contient des guillemets doubles, ils sont remplacés par deux guillemets :

P.W.D.
257 "/ftp" "test" est votre emplacement actuel

Pour renommer des fichiers, quelques commandes sont utilisées - RNFR et RNTO:

RNFR vieux_fichier.zip
350 Vous plaisantez ?
RNTO nouveau_fichier.zip
250 Fini !

Apparemment, il s'agit d'une optimisation afin que le tampon dans lequel le serveur lit les commandes client soit de l'ordre de la longueur maximale autorisée du nom complet du fichier, et non deux fois plus long. En 1971, lorsque le protocole a été créé, cela aurait pu être important.

Équipe TAPER vous permet de définir le mode de transfert de fichiers. Exemple:

TYPE E
200 TYPE est maintenant EBCDIC
TYPE A
200 TYPE est maintenant ASCII
TYPE I
200 TYPE est désormais binaire 8 bits

Pour autant que je sache, cette commande est aujourd'hui déjà obsolète et toutes les données peuvent être transmises en toute sécurité au format binaire (TYPE I). Citation de Wikipédia :

Les premiers ordinateurs utilisaient un format de mot machine de la taille d'un octet, un double mot machine, et non un multiple de 8. Il s'agissait généralement de multiples de six. Huit bits par octet ont été adoptés lors du développement du système d'instructions machine pour l'IBM System/360. C'est devenu une norme internationale et depuis le début des années 1970 La plupart des ordinateurs utilisent des octets composés de 8 bits et des mots machine en multiples de 8.

3. Agissons

Une caractéristique du protocole FTP est qu'il utilise différentes connexions. Il s'agit généralement d'une décision de conception normale. Nous ne savons pas ce qui est écrit dans ces fichiers, et si nous les transmettons avec des commandes, nous devrons en quelque sorte encoder le contenu du fichier pour le distinguer des commandes. Pourquoi augmenter la quantité de trafic et compliquer le protocole alors que vous pouvez simplement ouvrir une nouvelle connexion et envoyer le fichier tel quel ?

Lors de l’établissement d’une nouvelle connexion, quelqu’un doit réellement se connecter et quelqu’un doit accepter la connexion. Si le client ouvre un port et que le serveur s'y connecte, le mode de transfert de fichiers est dit actif. Sinon, c'est passif. Étant donné que de nombreux utilisateurs Internet sont aujourd'hui derrière le NAT, le mode passif est généralement utilisé. Et ce n'est pas très bon, car le nombre de ports sur le serveur est limité.

Ce qui est intéressant, c’est qu’il est possible de transférer directement des fichiers d’un serveur FTP à un autre. Mais comme cette fonctionnalité était souvent utilisée dans les attaques DDoS, elle est désormais désactivée presque partout.

Pour passer en mode passif, utilisez la commande PASV, pour passer en actif - PORT:

PORT 192 168,10,1,21 133
Commande 200 PORT réussie
PASV
227 Entrée en mode passif (192,168,0,1,21,216)

Comme vous pouvez le deviner, l'adresse IP et le port de connexion sont codés à l'aide de chiffres. Disons que nous sommes en mode passif et que nous souhaitons établir une connexion de données :

$ telnet 192.168.0.1 `expr 21 \* 256 + 216`
J'essaie 192.168.0.1...
Connecté à example.ru.
Le caractère d'échappement est "^]".

Après quoi on peut, par exemple, visualiser le contenu du répertoire courant en utilisant la commande LISTE:

LISTE
150 Connexion de données acceptée
226-Options : -a -l
226 5 matchs au total

Regardons la sortie telnet :

drwx------ 5 codeurs afiskon 512 7 juillet 11:35 .
drwx------ 5 codeurs afiskon 512 7 juillet 11:35 ..
drwxr--r-- 3 codeurs afiskon 512 6 juin 14h30 site Web
drwxr-xr-x 2 codeurs afiskon 1024 7 juillet 00:16 journaux
drwxr--r-- 2 codeurs afiskon 512 6 juin 14h30 tmp
Connexion fermée par hôte étranger.

Le téléchargement et l'upload de fichiers se font exactement de la même manière, seules les commandes sont utilisées RETR (fichier) Et STOCK (fichier) respectivement. Les commandes RETR, STOR et LIST peuvent être interrompues en cours d'exécution à l'aide de la commande ABOR, en réponse à quoi le serveur doit répondre par 426 "transfert interrompu", puis par 226 "l'annulation de l'opération a réussi".

4. Conclusion

C'est ici que je terminerai probablement mon histoire. Le résultat était de 9 Ko de texte contre 130 Ko de RFC959. A partir de cet article, il est tout à fait possible d'écrire un simple Client FTP ou serveur, j'ai vérifié ! Le plus important est de tester sa compatibilité avec autant de logiciels que possible, car, comme je l'ai déjà noté, dans le monde FTP, peu de gens suivent strictement la RFC. Et enfin, rappelez-vous règle d'or« Soyez libéral avec les apports, strict avec les résultats. »

    Abréviation FTP vient de l'anglais F ile T transfert P. rotocol (file transfer protocol) est un protocole de couche application permettant d'échanger des fichiers via le protocole de transport TCP/IP entre deux ordinateurs, un client FTP et un serveur FTP. Il s’agit de l’un des protocoles les plus anciens et pourtant toujours activement utilisé.

Le protocole FTP est conçu pour résoudre les problèmes suivants :

  • accéder aux fichiers et répertoires sur des hôtes distants
  • garantir l'indépendance du client par rapport au type de système de fichiers de l'ordinateur distant
  • transmission de données fiable
  • utilisation des ressources du système distant.
  • Le protocole FTP prend en charge deux canaux de connexion à la fois : un pour le transfert équipes et les résultats de leur mise en œuvre, l'autre est destiné au partage données. À paramètres standards Le serveur FTP utilise le port TCP 21 pour organiser un canal d'envoi et de réception de commandes et le port TCP 20 pour organiser un canal de réception/transmission de données.

    Le serveur FTP attend les connexions des clients FTP sur le port TCP 21 et, après avoir établi une connexion, accepte et traite Commandes FTP, qui sont des chaînes de texte normales. Les commandes définissent les paramètres de connexion, le type de données transférées et les actions relatives aux fichiers et répertoires. Après s'être mis d'accord sur les paramètres de transmission, l'un des participants à l'échange passe en mode passif, en attente des connexions entrantes pour le canal d'échange de données, et le second établit une connexion avec ce port et commence la transmission. Une fois le transfert terminé, la connexion de données est fermée, mais la connexion de contrôle reste ouverte, vous permettant de poursuivre la session FTP et de créer une nouvelle session de transfert de données.

    Le protocole FTP peut être utilisé non seulement pour transférer des données entre un client et un serveur, mais également entre deux serveurs. Dans ce cas, le client FTP établit une connexion de contrôle avec les deux serveurs FTP, fait passer l'un d'eux en mode passif et le second en actif, créant ainsi un canal de transfert de données entre eux.

    Un client FTP est un programme qui se connecte à un serveur FTP et effectue les opérations nécessaires pour afficher le contenu des répertoires du serveur et recevoir, transférer et supprimer des fichiers ou des dossiers. Un tel programme peut être utilisé comme navigateur standard, comme composants du système d'exploitation ou spécialement développé. produits logiciels, comme le populaire gestionnaire de téléchargement Télécharger le maître ou multifonctionnel gratuit Client FTP FileZilla.

    Le protocole FTP a été développé à l'époque où le client et le serveur interagissaient directement, sans aucune transformation intermédiaire des paquets TCP, et en mode standard, il suppose la possibilité de créer une connexion TCP non seulement à l'initiative du client, mais également à l'initiative du serveur du port TCP 20 sur le port TCP - client dont le numéro est transmis lors de la création d'une session de données.

    Réalités aujourd'hui sont telles qu'une telle connexion TCP du serveur au client est dans la grande majorité des cas impossible, voire très difficile à mettre en œuvre du fait que dans la plupart des cas, la technologie de diffusion est utilisée pour se connecter à Internet adresses réseau NAT(Network Address Translation) lorsque le client ne dispose pas d'une interface réseau disponible pour créer une connexion TCP directe à partir d'Internet. Schéma typique connexion standard Internet ressemble à ceci :

    La connexion Internet s'effectue via un appareil spécial - Routeur(routeur avec fonction NAT) qui possède au moins deux ports réseau - un connecté au réseau du fournisseur, ayant une interface réseau avec une adresse IP routée (appelée « IP blanche »), par exemple 212.248.22.144, et un port avec une interface réseau pour connecter des périphériques de réseau local avec une adresse IP privée non routable, par exemple 192.168.1.1 (« IP grise »). Lors de la création de connexions à partir de Périphériques réseau réseau local vers les nœuds du réseau externes, les paquets IP sont envoyés au routeur, qui effectue la traduction d'adresse et de port afin que l'adresse de l'expéditeur devienne la sienne adresse IP blanche. Les résultats de la traduction sont enregistrés et lorsqu'un paquet de réponse est reçu, une traduction d'adresse inverse est effectuée. Ainsi, le routeur assure le transfert des paquets TCP/IP depuis n'importe quel périphérique du réseau local vers des réseaux externes et le retour des paquets de réponse reçus. Mais dans les cas où un paquet non lié aux paquets de réponse TCP est reçu à l'entrée d'une interface réseau connectée au réseau du fournisseur, les options de réaction suivantes sont possibles pour le logiciel du routeur :

    Le paquet est ignoré car il n'existe aucun service réseau pour le traiter.

    Le paquet est reçu et traité par le service réseau du routeur lui-même, si un tel service existe et attend une connexion entrante (« écoute ») sur le port dont le numéro est indiqué dans le paquet reçu.

    Le paquet est transmis à un serveur du réseau local qui attend ce type de connexion entrante conformément aux règles de redirection de port (port mapping) paramètres donnés routeur.

    Par conséquent, à l'heure actuelle, le principal mode de fonctionnement utilisant le protocole FTP est devenu ce que l'on appelle le « mode passif », dans lequel les connexions TCP sont établies uniquement du client au port TCP du serveur. Le mode actif est utilisé dans les cas où il est possible de connecter TCP du serveur aux ports clients, par exemple lorsqu'ils sont sur le même réseau local. Le mode de connexion FTP est sélectionné à l'aide de commandes spéciales :

    PASV- le client envoie une commande pour effectuer un échange de données en mode passif. Le serveur renverra l'adresse et le port auxquels vous devez vous connecter pour recevoir ou transmettre des données. Exemple d'un fragment d'une session FTP avec le mode passif défini :

    PASSV- commande de passage en mode passif transmise par le client FTP au serveur FTP

    227 Entrée en mode passif (212,248,22,144,195,89)- Réponse du serveur FTP, où 227 est le code réponse, message texte sur le passage en mode passif et entre parenthèses l'adresse IP et le numéro de port qui seront utilisés pour créer un canal de transmission de données. L'adresse et le numéro de port sont affichés sous la forme Nombres décimaux, séparé par des virgules. Les 4 premiers chiffres sont l'adresse IP (212.248.22.144), les 2 chiffres restants spécifient le numéro de port, qui est calculé par la formule - le premier nombre est multiplié par 256 et le deuxième nombre est ajouté au résultat, en dans cet exemple numéro de port 195*256 +89 = 50017

    PORT Adresse IP du client Numéro de port- le client envoie une commande pour établir une session en mode actif. L'adresse IP et le numéro de port sont spécifiés dans le même format que dans l'exemple précédent, par exemple PORT 212.248.22.144,195,89 Pour organiser le transfert de données, le serveur lui-même se connecte au client sur le port spécifié.

    Installation et configuration du serveur FTP FileZilla.

    Vous pouvez télécharger le package d'installation de FileZilla Server pour votre version du système d'exploitation à l'adresse

    L'installation du serveur s'effectue de manière standard, à l'exception de l'élément de sélection des paramètres du panneau de configuration du serveur :

    Il s'agit du principal outil de gestion de serveur grâce auquel tous paramètres nécessaires. Par défaut, la centrale fonctionne sur une interface de bouclage sans accès par mot de passe. Si nécessaire, par exemple, si nécessaire télécommande Serveur FTP, ces paramètres peuvent être modifiés.

    Une fois l'installation terminée, une fenêtre d'invitation s'ouvrira pour se connecter au serveur :

    Après avoir saisi l'adresse IP, le numéro de port et le mot de passe (si vous les avez spécifiés lors du processus d'installation), le panneau de configuration de FileZilla Server s'ouvre :

    En haut de la fenêtre se trouvent le menu principal et les boutons du panneau de commande. Vous trouverez ci-dessous deux domaines - message d'information serveur et informations statistiques. Dans l'ensemble, le panneau de configuration FTP de FileZilla Server est assez simple et facile à utiliser. Éléments du menu principal :

    Déposer- les modes de fonctionnement du panneau de contrôle du serveur FTP. Contient des sous-éléments

    - Connecter au serveur- se connecter au serveur
    - Déconnecter- se déconnecter du serveur
    - Quitter- arrêt du panneau de commande.

    Serveur- Gestion du serveur FTP. Contient des sous-paragraphes :

    - Actif- démarrer/arrêter le serveur FTP. Si la case est cochée, le serveur FTP est démarré, si elle n'est pas cochée, il est arrêté.
    - Verrouillage- interdire/autoriser les connexions au serveur. Lorsque la case est cochée, les nouvelles connexions au serveur sont interdites.

    Modifier- édition des paramètres. Sous-éléments :

    - Paramètres- paramètres de base du serveur.
    - Utilisateurs- Paramètres utilisateur du serveur FTP
    - Groupes- paramètres du groupe d'utilisateurs.

    À titre d'exemple, configurons le serveur pour les conditions suivantes :

  • le serveur est derrière NAT, possède une adresse IP privée, mais doit être accessible depuis Internet, prend en charge le mode passif et utilise des applications non standard Ports TCP. L'utilisation de ports non standard réduit le risque attaques de pirates, et en plus, certains fournisseurs utilisent le filtrage du trafic et bloquent les ports standard 20 et 21.
  • les utilisateurs ont la possibilité de télécharger depuis le serveur, de télécharger sur le serveur, de supprimer et de renommer des fichiers et des dossiers.
  • Si vous utilisez une adresse IP dynamique, vous devez vous assurer que le serveur est accessible par nom DNS.
  • le serveur fonctionnera sur un poste de travail dans un environnement OS Windows 7 / Windows 8.
  • Autrement dit, il faut créer un serveur FTP accessible depuis Internet pour échanger des fichiers entre utilisateurs, bien sûr gratuitement. Il est bien clair qu'en plus de créer la configuration nécessaire du serveur FTP lui-même, vous devrez modifier certains paramètres du routeur, les paramètres du pare-feu Windows et résoudre le problème d'une adresse IP dynamique afin que le serveur soit accessible par son nom, quel que soit le problème. du changement d’adresse IP.

    Résoudre le problème de l'adresse IP dynamique.

        Ce problème ne nécessite pas de solution dans les cas où, lors de la connexion à Internet, une adresse IP statique ou dynamique est utilisée, mais conformément aux paramètres du fournisseur, elle est presque toujours la même. DANS sinon, vous pouvez utiliser une technologie appelée DNS dynamique (DDNS) . Cette technologie, vous permet de mettre à jour les informations d'adresse IP sur le serveur DNS en temps quasi réel et d'accéder au routeur (et aux services derrière lui) par son nom enregistré, sans prêter attention aux changements dynamiques d'IP.

    Pour mettre en œuvre cette technologie gratuitement, vous devrez vous inscrire auprès d'un service DNS dynamique et installer un logiciel client pour mettre à jour l'enregistrement DNS si l'adresse IP correspondante change. Le support du DNS dynamique est généralement assuré par les fabricants d'équipements réseaux (D-Link, Zyxel, etc.), certains hébergeurs et sociétés spécialisées, comme le célèbre DynDNS. Cependant, après qu'au cours du second semestre 2014, tous les services fournis gratuitement aux utilisateurs enregistrés pour une utilisation non commerciale soient devenus payants, la solution la plus populaire était peut-être l'utilisation d'un DNS dynamique basé sur le service. No-IP.org, qui fournit des services de support gratuits pour 2 nœuds avec IP dynamique. Pour utilisation gratuite Le service nécessitera une inscription et une visite périodique (environ une fois par mois) sur le site pour mettre à jour les informations sur les nœuds utilisés avec une adresse IP dynamique. Si vous ignorez la mise à jour des données du nœud, le service est suspendu et, par conséquent, il deviendra impossible de se connecter au nœud par son nom. Lors de l’utilisation du service payant, aucune mise à jour n’est requise.

        Presque tous les routeurs (modems) modernes prennent en charge un client DNS dynamique. Sa configuration est généralement très simple : vous remplissez les champs avec le nom d'utilisateur et le mot de passe, ainsi que le nom d'hôte reçu lors de l'inscription au service DDNS. Exemple pour Zyxel P660RU2

        L'utilisation du client DDNS intégré au routeur/modem est préférable à l'utilitaire de mise à jour des données DNS exécuté dans l'environnement du système d'exploitation, car il vous permet de mettre en œuvre des fonctionnalités supplémentaires, telles que la gestion du routeur via Internet lorsque l'ordinateur est éteint et activation à distance alimentation des ordinateurs derrière la technologie NAT Réveil sur réseau local.

    Dans les cas où il n'est pas possible d'utiliser le client DDNS intégré, vous devrez vous contenter d'un logiciel d'application - un programme client permettant de prendre en charge le DNS dynamique. Un tel programme se connecte périodiquement à un serveur prenant en charge un Nom de domaine, associé au routeur via lequel la connexion Internet est établie, et appelle la procédure de mise à jour IP lorsqu'elle change. Les paramètres du serveur sont définis de telle manière que la comparaison du nom DNS et de l'adresse IP de la connexion Internet s'effectue en très peu de temps et que le caractère dynamique de l'adresse n'a pratiquement aucun effet sur les performances des services associés à le nom DNS.

    La procédure est la suivante :

  • Nous allons sur le site No-IP.org. Pour travailler avec un compte existant ou nouveau, utilisez le bouton "Se connecter"(en haut à droite de la page).

  • Créez, s'il n'a pas encore été créé, votre compte - cliquez "Créer un compte". Le formulaire d'inscription change périodiquement, mais il est obligatoire de saisir le nom d'utilisateur, le mot de passe souhaité et votre E-mail. Un email avec un lien pour confirmer l'inscription est envoyé à l'e-mail indiqué lors de l'inscription. Lors de votre inscription, sélectionnez accès libre- appuie sur le bouton Inscription gratuite après avoir rempli tous les champs requis du formulaire.
  • Après une inscription réussie, connectez-vous au site et ajoutez une entrée pour votre nœud - cliquez sur le bouton "Ajouter des hôtes"

    En fait, il vous suffit de saisir le nom d'hôte sélectionné, dans ce cas - monhôte8.ddns.net. Il n'est pas nécessaire de modifier d'autres paramètres. Ensuite, vous devez télécharger et installer un logiciel spécial - Client de mise à jour dynamique(DUC), dont le lien vers se trouve sur la page principale du site. Une fois l'installation de DUC terminée, il se lancera et une fenêtre d'autorisation s'ouvrira, dans laquelle vous devrez saisir le nom d'utilisateur ou l'e-mail et le mot de passe reçus lors de votre inscription sur le site no-ip.org. Appuyez ensuite sur le bouton Modifier l'hôte et cochez la case à côté du nom d'hôte créé précédemment (myhost8.ddns.net). Désormais, le nom d'hôte sélectionné correspondra toujours à « l'adresse IP blanche » de votre connexion Internet. Si vous rencontrez des difficultés pour mettre à jour votre adresse IP, vérifiez si l'activité réseau de votre client DUC est bloquée par un pare-feu.

    Configuration d'un serveur FTP

        L'utilisation de numéros de port non standard pour un serveur FTP n'est pas du tout nécessaire si le fournisseur n'utilise pas de filtrage du trafic ou si vous ne vous souciez pas d'analyser les ports à la recherche de vulnérabilités et d'essayer de deviner les mots de passe. Dans cet article, en utilisant FTP-les serveurs dotés de ports TCP non standards, présentés comme l'un des options possibles.

    Les paramètres de FileZilla Server sont définis via le menu "Modifier" - "Paramètres".

    Fenêtre réglages généraux destiné à réglages généraux Serveur ftp.

    Dans le champ "Écouter sur ce port", vous pouvez spécifier le numéro de port pour les connexions TCP entrantes. Par défaut, ce champ est défini sur 21 , et pour utiliser un numéro non standard, vous devez spécifier la valeur sélectionnée, par exemple - 12321 . Utiliser un port TCP non standard présente quelques inconvénients, car il nécessite de préciser sa valeur lors de la création d'une session :

    Si le serveur est prévu pour être utilisé à la fois avec un accès depuis Internet et sur le réseau local, il est logique de laisser la valeur standard 21 et d'utiliser un numéro de port non standard pour les connexions depuis Internet, en mettant en place la redirection des paquets arrivant. sur le port 12321 du routeur vers le port 21 du serveur FTP en réseau local. Avec cette configuration, il n'est pas nécessaire de spécifier un numéro de port pour les sessions FTP au sein du réseau local.

    D'autres paramètres servent à régler les performances et les délais d'expiration des sessions. Ils peuvent rester inchangés. Les sections restantes des paramètres généraux peuvent également être laissées par défaut :

    Message de bienvenue- texte envoyé au client lors de la connexion.

    Liaison IP- sur quelle interface réseau les connexions client seront attendues. Par défaut - sur n'importe lequel, mais vous pouvez en spécifier un spécifique, par exemple - 192.168.1.3.

    Filtre IP- mise en place de règles de filtrage des adresses IP clients. Par défaut, les connexions sont autorisées pour n'importe quelle IP.

    Chapitre Paramètres du mode passif sert à configurer le mode FTP passif et nécessitera de modifier presque tous les paramètres par défaut.

    Les numéros de port qui seront utilisés pour transmettre les données en mode passif doivent être définis manuellement, car le routeur devra être configuré pour les rediriger vers l'interface réseau écoutée par le serveur. Par conséquent, vous devez cocher la case pour activer le mode "Utiliser la plage de ports personnalisée" et définir la plage - par exemple, de 50000 avant 50020 . Le nombre de ports écoutés par le serveur détermine la limite du nombre de sessions de transfert de données simultanées.

    Sous-section Spécifique à IPv4 définit l'adresse IP qui sera envoyée par le serveur en réponse à la commande PASV. Dans ce cas, il ne doit pas s’agir de l’adresse IP 192.168.1.3 du serveur, mais de « l’adresse IP blanche » de notre connexion Internet. Par conséquent, vous devez définir le mode « Utiliser l'adresse IP suivante » et au lieu de l'adresse IP, saisir le nom reçu lors de l'inscription au service DNS dynamique - monhôte8.ddns.net. Comme alternative, vous pouvez utiliser le mode de détermination de l'adresse IP externe à l'aide du projet FileZilla en l'activant. "Récupérer l'adresse IP externe de :". Cette option peut être sélectionné dans les cas où il n’est pas possible d’utiliser l’outil DNS dynamique. Si vous avez l'intention d'utiliser un serveur FTP sur votre réseau local, vous devez définir le mode sur "Ne pas utiliser d'adresse IP externe pour les connexions locales" (n'utilisez pas d'adresse IP externe pour les connexions au sein du réseau local)

    Le reste des paramètres du serveur peut rester inchangé ou, si nécessaire, effectué ultérieurement : Les paramètres de sécurité- Les paramètres de sécurité. Par défaut, les connexions pouvant être utilisées pour mettre en œuvre des attaques DDoS sont interdites

    Divers- paramètres de taille de tampon et autres paramètres de journal ainsi que certaines commandes FTP.

    Paramètres de l'interface d'administration- paramètres du panneau de contrôle du serveur. Vous pouvez spécifier l'interface réseau, le numéro de port d'écoute, les adresses IP à partir desquelles les connexions à la centrale sont autorisées et un mot de passe.

    Enregistrement- Paramètres du journal des événements du serveur. Par défaut, l'écriture dans le fichier n'est pas effectuée.

    Limite de vitesse- Paramètres de limite de taux de transfert de données. Par défaut - aucune restriction.

    Compression de transfert de fichiers- paramètres de compression des fichiers pendant le transfert. La valeur par défaut est aucune compression.

    Paramètres SSL/TLS activer le mode de cryptage pour les données transmises. La valeur par défaut n'est pas de cryptage.

    Autoban- activer le blocage automatique des utilisateurs qui devinent le mot de passe pour se connecter. Par défaut, le blocage automatique est désactivé.

    Configuration de la redirection de port et du pare-feu

    Pour que le serveur FTP soit accessible depuis Internet, il est nécessaire de configurer le routeur pour que les connexions entrantes arrivant sur certains ports TCP de l'interface externe soient redirigées vers les ports TCP écoutés par le serveur FTP sur le réseau interne. Pour divers modèles routeurs, les paramètres peuvent différer dans la terminologie, mais leur signification est la même : un paquet TCP reçu sur l'interface externe (WAN) avec numéro spécifique transfert de port vers réseau localà l’adresse IP et au port souhaités. Exemple de paramètres du routeur D-Link DIR-320NRU pour la redirection de port utilisée pour le mode FTP passif :

    Les paquets reçus sur une interface avec une "IP blanche" et ayant des numéros de port compris entre 50000 et 50020 seront redirigés vers l'adresse IP spécifiée dans le champ "IP interne" (dans notre cas - 192.168.1.3). De même, une redirection est créée vers le port 50021 si vous avez modifié le numéro de port standard, ou vers le port 21 du serveur FTP si vous l'avez laissé inchangé.

    Après avoir appliqué ces paramètres, le serveur FTP sera accessible via URL ftp://myhost8.ddns.net:50021 ou, pour une connexion au sein d'un réseau local :

    ftp://192.168.1.3- si vous n'avez pas modifié le numéro de port par défaut (21) dans les paramètres du serveur FTP.

    ftp://192.168.1.3:50021- si un numéro de port non standard est utilisé.

    Vous pouvez utiliser un nom d'ordinateur au lieu d'une adresse IP s'il peut être résolu en adresse IP

    ftp://comp1

    ftp://comp1.mydomain.ru

    Diagnostic des problèmes

    Si la connexion au serveur FTP ne se produit pas, des problèmes peuvent survenir avec le pare-feu bloquant les connexions nécessaires au fonctionnement du serveur FTP créé. Si vous utilisez le Fenêtre pare-feu, vous devez alors ajouter une règle qui autorise l'activité réseau pour le service "Serveur FTP FileZilla". Si vous utilisez un pare-feu ou un antivirus tiers avec filtrage du trafic, vous devez créer une règle correspondante à l'aide des outils de paramètres disponibles pour autoriser les connexions de réseau. Des options sont possibles lorsque des paramètres sont définis pour autoriser toute activité réseau d'un programme spécifique ou pour autoriser des adresses et des ports sélectionnés qui s'appliquent à tous les programmes.

    Le meilleur endroit pour démarrer les diagnostics est sur le serveur FTP lui-même. En tant qu'outil de diagnostic, vous pouvez utiliser un standard client telnet(utilitaire telnet.exe) . Tous les firewalls ne bloquent pas les connexions sur l'interface de bouclage, et pour vérifier que les paramètres du serveur sont corrects, vous pouvez vous y connecter en entrant la commande :

    telnet localhost 21- si un numéro de port standard est utilisé.

    telnet localhost 50021- si le numéro de port standard a été modifié.

    Lorsque cette commande est exécutée, une connexion au serveur FTP est établie via l'interface de bouclage et une invitation du serveur (message de bienvenue) doit s'afficher dans la fenêtre telnet. Si cela ne se produit pas, le serveur peut être arrêté, il y a un conflit de port ou le port 21 (50021) n'écoute pas. Pour les diagnostics, vous pouvez utiliser la commande netstat:

    netstat –nab

    Les options de ligne de commande signifient :

    n- utiliser des numéros de port numériques et des adresses IP

    un- afficher toutes les connexions et ports d'écoute

    b- afficher les noms des programmes impliqués dans la création de connexions.

    Exemple de résultats de commande affichés :

    Connexions actives

    Nom     Adresse locale     Adresse externe     Statut
    TCP         0.0.0.0:21                 0.0.0.0:0                 ÉCOUTE
    TCP         0.0.0.0:135               0.0.0.0:0                 ÉCOUTE
    RpcS

    Dans une chronique Adresse locale il y a un sens 0.0.0.0:21 , ce qui indique que le programme nommé FileZilla Server.exeécoute (état ÉCOUTE) Port TCP numéro 21 sur toutes les interfaces réseau. Si une interface spécifique et un numéro de port différent ont été spécifiés dans les paramètres du serveur FTP, alors cette valeur contiendra IP : port, Par exemple - 192.168.1.3:50021

    Pour afficher les résultats en mode page, vous pouvez utiliser la commande :

    netstat-nab | plus

    Ou utilisez les résultats de recherche par numéro de port : netstat-nab | trouver ":21"

    Si le serveur n'est pas disponible sur une interface sans bouclage, mais accessible sur une interface de bouclage, vous devez comprendre les paramètres du pare-feu.

    Configuration des utilisateurs et des groupes.

    La configuration des utilisateurs et des groupes se fait via le menu "Modifier" - "Utilisateurs" ("Groupes"). Il n'est pas nécessaire de créer des groupes, mais cela est parfois pratique dans les cas où il y a un grand nombre d'utilisateurs et où leurs droits par rapport au serveur FTP diffèrent. Les paramètres pour les groupes et les utilisateurs sont presque identiques :

    Cet exemple montre le résultat de l'ajout d'un utilisateur de serveur FTP nommé utilisateur1 avoir tous les droits pour écrire, lire, supprimer et fusionner des fichiers, ainsi que pour afficher le contenu, supprimer et créer des sous-répertoires dans le répertoire C:\ftp\public

    Sur la page Général les propriétés utilisateur sont ajoutées, supprimées et modifiées.
    Sur la page Dossiers partagés des paramètres sont définis qui déterminent la liste des répertoires du système de fichiers qui seront utilisés par le serveur FTP pour y accéder via le protocole FTP. Chaque utilisateur ou groupe d'utilisateurs peut se voir attribuer son propre répertoire avec certains droits relatifs à son contenu.
    Sur la page Limites de vitesse Vous pouvez définir des restrictions sur la vitesse d'échange de données.
    Sur la page Filtre IP Vous pouvez définir des règles de filtrage de l'adresse IP de l'utilisateur, indiquant les adresses à partir desquelles la connexion au serveur est interdite ou autorisée.

    Liste des commandes FTP de base

    ABOR – Abandonner le transfert de fichiers
    CDUP - Changez le répertoire pour un répertoire supérieur.
    CWD - Changer le répertoire actuel.
    DELE - Supprimer un fichier (nom de fichier DELE).
    AIDE - Affiche une liste des commandes acceptées par le serveur.
    LISTE - Renvoie une liste de fichiers dans un répertoire. La liste est transmise via la connexion de données (port 20).
    MDTM - Renvoie l'heure de modification du fichier.
    MKD - Créez un répertoire.
    NLST - Renvoie une liste de fichiers dans un répertoire dans un format plus court que LIST. La liste est transmise via la connexion de données (port 20).
    NOOP - Opération à vide
    PASV - Entrez en mode passif. Le serveur renverra l'adresse et le port auxquels vous devez vous connecter pour collecter les données. Le transfert commencera lorsque les commandes RETR, LIST, etc. seront entrées.
    PORT - Entrez en mode actif. Par exemple PORT 12,34,45,56,78,89. Contrairement au mode passif, le serveur lui-même se connecte au client pour transférer les données.
    PWD - Renvoie le répertoire actuel du serveur.
    QUITTER - Déconnecter
    REIN - Réinitialiser la connexion
    RETR - Télécharger le fichier. RETR doit être précédé d'une commande PASV ou PORT.
    RMD - Supprimer le répertoire
    RNFR et RNTO - Renommez le fichier. RNFR - quoi renommer, RNTO - quoi renommer.
    SIZE - Renvoie la taille du fichier
    STOR - Téléchargez un fichier sur le serveur. STOR doit être précédé d'une commande PASV ou PORT.
    SYST - Renvoie le type de système (UNIX, WIN,)
    TYPE - Définissez le type de transfert de fichier (A - texte ASCII, I - binaire)
    UTILISATEUR - Nom d'utilisateur pour se connecter au serveur

    Exemple de session FTP

    Le client FTP se connecte au serveur avec le nom d'utilisateur utilisateur1, un mot de passe vide et télécharge un fichier nommé cpu-v. Les messages du serveur FTP sont surlignés en rouge, les messages du client FTP sont surlignés en bleu. L'échange de directives et de paramètres peut différer légèrement pour différentes versions Logiciel client FTP et serveur FTP.

    Après connexion, le serveur transmet des informations le concernant au client :
    220-FileZilla Server version 0.9.45 bêta
    220-écrit par Tim Kosse ( [email protégé])
    220 Veuillez visiter http://sourceforge.net/projects/filezilla/
    Le client transmet le nom d'utilisateur :
    UTILISATEUR utilisateur1
    Le serveur demande un mot de passe :
    331 Mot de passe requis pour l'utilisateur 1
    Le client passe un mot de passe vide :
    PASSER
    Le serveur vérifie le compte utilisateur et signale le début de la session :
    230 Connecté
    Le client demande le type de système d'exploitation sur le serveur :
    SYSTÈME
    Le serveur signale que le type Unix, émulé par le serveur Filezilla :
    215 UNIX émulé par FileZilla
    Le client demande une liste de paramètres supportés par le serveur :
    EXPLOIT
    Le serveur répond avec une liste de paramètres pris en charge :
    211-Caractéristiques :
    MDTM
    FLUX DE REPOS
    TAILLE
    Type MLST*;taille*;modifier*;
    MLSD
    UTF8
    CLNT
    MFMT
    211 Fin

    Le client demande le répertoire courant du serveur :
    P.W.D.
    Le serveur signale que le répertoire courant est le répertoire racine ("/") :
    257 "/" est le répertoire actuel.
    Le client signale qu'il transférera des données binaires :
    TYPE I

    Le serveur confirme le type de données transférées :
    200 Type défini sur I
    Le client signale qu'il utilisera le mode FTP passif :
    PASV
    Le serveur signale le passage au mode passif et transmet l'IP et le port pour le mode FTP passif.
    227 Entrée en mode passif (212,248,22,114,195,97)
    Le client demande à recevoir un fichier nommé cpu-và partir du répertoire du serveur actuel
    RETR cpu-v
    Le serveur signale le début du transfert de données :
    150 Ouverture du canal de données pour le téléchargement de fichiers depuis le serveur de "/cpu-v"
    Une fois terminé, le serveur signale un transfert réussi :
    226 "/cpu-v" transféré avec succès

    En conclusion, je voudrais ajouter que le projet Filezilla inclut non seulement le développement et le support de logiciels de haute qualité. FTP gratuit-server, mais aussi un client FTP gratuit populaire

    Article de brève description client FTP gratuit pour Linux, Mac OS et Windows. Ce client FTP prend en charge de nombreux protocoles de transfert de données d'application : FTP, FTP sur SSL/TLS (FTPS), SSH File Transfer Protocol (SFTP), HTTP, SOCKS et FTP-Proxy. Autrement dit, FileZilla FTP Client est un logiciel universel permettant de recevoir et de transmettre des fichiers via tous les protocoles d'application modernes entre des nœuds sur différentes plates-formes.

    L'un des protocoles réseau les plus anciens est FTP. À quoi est-il destiné, quel est son rôle dans la « communication » réseau des ordinateurs, comment fonctionne ce protocole et s'il vaut la peine de l'utiliser - vous trouverez les réponses à toutes ces questions dans l'article ci-dessous.

    Quelle est l’essence de la technologie FTP ?

    Le protocole FTP moderne est utilisé un peu différemment qu'auparavant. Il a été initialement développé pour fonctionner avec de gros volumes de données. C’est pourquoi non seulement le protocole FTP a été inventé, mais aussi l’archive FTP. Aujourd'hui, ce dernier est devenu un référentiel mondial pour de nombreux fichiers situés sur des serveurs du monde entier. L'archive est constituée d'un grand nombre de serveurs FTP et il existe des moteurs de recherche, qui vous permettent de rechercher des données par hôte, comme Napalm ou FileSearch.

    Toutes les parties de l'archive FTP ne peuvent pas s'adapter outsider via un moteur de recherche. Il y a un serveur avec différents niveaux accéder. De nombreuses personnes connaissent FTP comme le protocole nécessaire pour télécharger un site Web sur un hébergement, c'est-à-dire nécessaire pour une utilisation confidentielle. Les archives FTP sont utilisées exactement aux mêmes fins par les organisations commerciales qui y stockent certaines informations secrètes.

    Mais il existe également de nombreuses archives FTP publiques, similaires aux services de partage de fichiers. C'est pour ces archives que des moteurs de recherche spéciaux ont été créés - afin que les utilisateurs puissent trouver immédiatement des fichiers, et non des articles avec de longues descriptions de programmes ou de jeux, au lieu des applications elles-mêmes.

    Quel est le but du protocole FTP

    Le protocole FTP est destiné au transfert de données entre le client et le serveur. C’est ce qu’on appelle « protocole de transfert de données ». Utilisé depuis très longtemps, FTP est devenu l’un des standards d’Internet. Le protocole a été utilisé pour la première fois en 1971. Au cours de son existence, il a beaucoup changé. Certaines fonctions ont été supprimées et l'accent a été mis sur le fait que FTP est bien adapté à l'échange de données entre ordinateurs distants. Au fil du temps, il est devenu plus pratique pour utilisateurs ordinaires. Après tout, vous pouvez vous connecter à un serveur FTP soit à l'aide d'un programme spécial, soit à l'aide de services standard systèmes d'exploitation. Par exemple, vous pouvez même vous connecter à Serveur ftp en utilisant l'Explorateur Windows standard.

    De plus, FTP est conçu pour répartir les droits d'accès entre les utilisateurs du serveur. Différents utilisateurs du serveur disposent de leur propre ensemble de droits. Par exemple, certains peuvent uniquement lire des données, tandis que d'autres peuvent déplacer, renommer, modifier et télécharger des fichiers sur l'hôte. Étant donné que créer un serveur FTP est aussi simple que de l'utiliser, de nombreux utilisateurs utilisent ce protocole pour créer accès à distanceà vos ordinateurs.

    Certaines personnes confondent FTP et TCP. Bien que ces concepts ne puissent pas être comparés. FTP est un protocole et TCP est le canal sur lequel il fonctionne. Et ce canal est établi entre le périphérique serveur et le périphérique client. « Appareil », pas un ordinateur, car FTP peut également être utilisé sur des smartphones à l'aide de programmes spéciaux, pas seulement sur un PC.

    Veuillez noter que FTP est un bon protocole à utiliser sur ordinateur distant, si vous devez y télécharger des données, ou vice versa, téléchargez-les.

    Mais ce protocole n'est pas du tout adapté à la transmission d'informations confidentielles. C'est pourquoi les développeurs du service Yandex Disk ont ​​refusé d'utiliser FTP comme protocole principal et ont plutôt choisi WebDAV. FTP est un protocole ouvert qui ne crypte pas les données. Et même si vous configurez une authentification par mot de passe pour les clients sur le serveur, les données qu'ils saisiront lors de l'autorisation seront transmises à l'hébergeur en texte clair. Autrement dit, s'ils sont interceptés, les attaquants pourront pénétrer dans le serveur.

    Comment fonctionne le protocole FTP

    En général, le modèle de fonctionnement du protocole FTP est très simple, vous ne devriez donc avoir aucun problème lors de son utilisation. Le modèle le plus courant est celui où l'utilisateur utilise un programme interpréteur. En l'utilisant, vous pouvez exécuter toutes les commandes dans une interface pratique, vous n'avez donc pas besoin de les connaître et de les saisir dans le terminal. Vous envoyez des commandes à l'interpréteur et celui-ci les envoie au serveur via une connexion de contrôle. La connexion de contrôle fonctionne selon le protocole TELNET. Ainsi, en établissant le contact avec l'interpréteur du serveur, l'utilisateur est autorisé sur l'hôte et peut utiliser davantage de commandes.

    Le comportement du serveur et du client, ainsi que le processus de transfert de données, dépendent de l'ensemble des commandes transmises via la connexion de contrôle. De plus, vous pouvez utiliser des commandes pour gérer le système de fichiers du client et du serveur.

    Un canal différent du canal de contrôle est utilisé pour transmettre les données. Mais ce dernier initie l'appel de connexion de données. Le principe de fonctionnement d'une connexion de données est différent de celui d'un canal de contrôle, car le serveur initie l'échange de fichiers et de données. Bien que cette connexion puisse être utilisée dans les deux sens : à la fois pour recevoir et transmettre des données.

    Mais voici l'algorithme général de fonctionnement de tout protocole FTP sur le serveur :

    1. Le serveur est toujours dans un état d'attente du côté de l'utilisateur. Le client peut se connecter au serveur à tout moment, car le canal de contrôle maintient le port 21 ouvert. C'est là que vont toutes les commandes de contrôle. Le port 21 est celui par défaut, mais peut être modifié. Ensuite, l'utilisateur devra saisir manuellement le numéro de port, sinon il ne pourra pas accéder au canal de contrôle.
    2. Après s'être connecté via le port du canal de contrôle, le programme côté client peut émettre des commandes à l'interpréteur du serveur. Ces commandes déterminent à la fois les modifications au sein du système de fichiers du serveur, ainsi que la méthode de transfert des données, leur contenu, leur volume, le type de mode de fonctionnement et bien plus encore.
    3. Une fois que toutes les commandes de transfert de données ont été convenues, l'un des participants à la connexion passe en mode veille passive (serveur ou client). Il attend qu'on lui donne un numéro de port pour l'ouvrir et recevoir ou envoyer des données.
    4. Une fois le processus de transfert de données terminé, la connexion est fermée, mais le canal de contrôle reste ouvert. Cela permet à l'utilisateur de tout refaire : donner une commande au serveur et recommencer le transfert de données. Il n'est pas nécessaire de recréer la session. C'est pourquoi FTP fonctionne avec deux types de connexions.

    Puisqu'il s'agit du modèle le plus courant de fonctionnement du protocole FTP, il existe des cas plus complexes. Par exemple, lorsque ce n'est pas l'utilisateur qui travaille avec le serveur, mais le serveur avec le serveur. Dans ce cas, le client contrôle le transfert des données directement entre serveurs, sans intermédiaires. Et il existe de nombreux exemples similaires de configurations serveur-client. C'est l'un des avantages du protocole FTP : la flexibilité de fonctionnement.

    La principale chose que vous devez comprendre à propos du protocole FTP est l’interaction des connexions et des ports. La plupart des erreurs lors de l'utilisation de ce protocole sont dues au fait que l'une des parties à la connexion n'a pas configuré son port. Il y a un côté passif et actif du protocole. Le passif doit écouter attentivement et attendre que l'actif transmette le numéro de port, qui doit être ouvert immédiatement. Si le port n'est pas ouvert, le transfert de données ne commencera pas.

    Ne pensez pas que vous devez attendre manuellement certaines commandes du participant actif à la connexion - tout cela se fait automatiquement. Des problèmes apparaissent lorsque, par exemple, l'un ou l'autre port de votre ordinateur est déjà occupé ou bloqué pour les connexions entrantes/sortantes. C'est dans de tels moments qu'il faudra « retrousser ses manches » et configurer manuellement l'ordinateur pour qu'il puisse fonctionner correctement lorsque Aide FTP.

    Quelles commandes le protocole FTP utilise-t-il ?

    Très probablement, vous n'en aurez pas besoin dans votre travail, puisque vous utiliserez l'agent utilisateur sous la forme d'un programme avec interface conviviale. Un de ces programmes est FileZIlla. Mais tout peut arriver. Peut-être n'avez-vous que Far Maneger à portée de main, où tout doit être fait via le terminal. Dans ce cas, vous devez vous familiariser avec les commandes de base de FTP.

    Pour vous connecter au serveur, vous devrez utiliser la commande USER. Il est nécessaire d'indiquer le nom de l'utilisateur qui souhaite ouvrir une session avec le serveur. Après avoir entré votre identifiant utilisateur dans la commande USER, vous devez saisir un mot de passe de connexion. Pour ce faire, utilisez équipe spéciale- PASSER.

    L'une des fonctionnalités les plus populaires qui vous permet de « voyager » sur le serveur est CWD. La commande est nécessaire pour que vous puissiez vous déplacer entre les répertoires du serveur. Pour utiliser la commande, entrez CWD et le chemin du répertoire auquel vous souhaitez accéder.

    Si, dans certains cas, vous devez réinitialiser, c'est-à-dire omettre toutes les données et paramètres de la connexion actuelle, utilisez la commande REIN. Pendant son utilisation, la transmission des données ne s'arrête pas et les paramètres de transmission restent les mêmes qu'avant la commande REIN. Ou vous pouvez le faire d'une manière encore plus radicale : fermez la connexion de contrôle à l'aide de la commande QUIT. Il n'interrompt pas non plus le transfert de données et ce n'est qu'une fois le téléchargement terminé que la session est complètement interrompue.

    Afin d'enregistrer un port en mode actif, c'est-à-dire de l'attribuer à un participant passif, vous devez utiliser la commande PORT. Le problème est que cette commande est très difficile à écrire - vous devrez spécifier 32 bits de l'adresse IP du serveur et 16 bits du numéro de port, ce qui est totalement gênant. Il est donc préférable de trouver un moyen d'utiliser un client simplifié pour travailler via le protocole FTP, afin de ne pas trop s'encombrer. Chez un tel client, changer le numéro de port est un jeu d’enfant. Accédez simplement aux paramètres, recherchez l'élément souhaité et entrez un autre numéro au lieu de celui actuel.

    Vous utiliserez les commandes RETR et STOR pour transférer des données depuis et vers le serveur. La première commande est nécessaire pour envoyer le fichier sélectionné au périphérique client et la seconde au serveur. Et pour renommer un fichier, vous devez utiliser deux commandes consécutives. Écrivez d'abord RNFR avec l'ancien nom de fichier, puis RNTO avec le nouveau nom de fichier. Vous aurez également besoin de la commande DELE, nécessaire pour supprimer les données du système de fichiers, plus précisément le fichier actuellement sélectionné.

    D'autres commandes sont utilisées pour supprimer des répertoires. Pour supprimer le répertoire sélectionné, vous aurez besoin de la commande RMD. Et pour créer un nouveau dossier, utilisez la ligne MKD. De plus, les utilisateurs ont souvent besoin de la fonction d'affichage des fichiers qui se trouvent dans un répertoire. Pour ce faire, utilisez la commande LIST ou NLST.

    Quels sont les analogues du FTP ?

    Le protocole de transfert de données FTP a ses « descendants » directs, c'est-à-dire des protocoles dérivés de FTP. Il s'agit de deux protocoles : TFTP et SFTP. Le premier protocole n’est pas le plus répandu, car il est très limité en termes de commandes. Il est beaucoup moins adapté à la gestion du système de fichiers du serveur que FTP. Vous ne pourrez même pas afficher une liste des fichiers de répertoire qui l'utilisent. TFTP n'est nécessaire que pour transférer les informations 8 bits les plus simples, pas plus. Et dans ce protocole, seules 5 commandes sont nécessaires pour lire, écrire, demander un paquet de données et d'autres opérations simples.

    Mais le protocole SFTP est bien plus performant que TFTP et, dans certains cas, que FTP. Le fait est qu'il s'agit d'un protocole FTP sécurisé. Il s'agit d'une combinaison d'une connexion SSH cryptée et du protocole de transfert de données FTP. De plus, SFTP possède de nombreux fonctions inutiles exclus sont ceux qui ont été introduits dans FTP il y a longtemps, mais qui ne sont utilisés par personne. C'est pourquoi SFTP est plus sûr que FTP, et en même temps plus modeste dans le bon sens du terme. Il est recommandé de choisir SFTP dans les cas où vous travaillez avec des données confidentielles. Ainsi, même si les pirates interceptent les données envoyées via la connexion de contrôle, elles seront toujours cryptées et n’apporteront aucune valeur aux pirates.

    Et il est préférable d'utiliser le protocole FTP dans les programmes clients normaux, et non dans le terminal. Après tout, vous accélérerez ainsi considérablement le travail sur le protocole de transfert de données et accéderez à ses fonctions plus sophistiquées.