Bandeau

File Transfert Protocol

Ftp utilise Tcp pour transférer des fichiers entre 2 systèmes au travers d' un réseau Ip. L'implémentation met en jeux 2 composants : un client et un serveur.

Le client s' exécute sur la machine de l' utilisateur et initie une connexion depuis un port X sur le port 21 du serveur Ftp. Le serveur est en écoute sur son port 21, ou il attend les requêtes de connexion. Lorsqu 'une requête est reçue, un échange en 3 étapes à lieu afin d' établir la connexion Tcp. Cette connexion Tcp est appelée connexion de contrôle, et sert à échanger les commandes entre client et serveur. Lorsque le client appelle une commande de transfert de données, il met un de ses ports locaux Y (> 1024) en attente de connexion et transmet ce n° Y grâce à la connexion de contrôle. Lorsque le serveur reçoit le n° Y du client, il initie une connexion entre son port 20 et le n° de port Y du client.

Cette connexion est appelée connexion de données et ne sert que pour le transfert du fichier. A la fin du transfert la connexion de données meurt, et une autre connexion est créée pour chaque transfert. La connexion de contrôle reste active jusqu' à la demande de déconnections du service.

Connexion Passive

Utilisée en cas de problèmes avec un firewall qui interdit la connexion entrante vers le client.
Le client effectue une demande de transfert au serveur. Le serveur lui transmet le port (Z) sur lequel il va écouter la demande de création de connexion du client. Le client initie la connexion d' un de ses ports (Y) sur le port (Z) du serveur.

Configuration

Le fichier /etc/proftpd.conf fonctionne sur le modèle de contexte de configuration. Le 1er est implicite et c'est le ''server config''. Toutes les options décrites dans ce contexte sont appliquées. On dispose d' autres contextes prédéfinis :

		<Anonymous> /home/ftp>	# Connexions anonymes rep : /home/ftp
		MaxClients	5	"Nombre de clients maximum atteints : 5"
		User		ftp	# Compte utilisés pour la connexion anonymous 
		Group		ftp
		<Limit WRITE>
			DenyAll		# Personne n'a le droit d'uploader en anonymous 
		</Limit>
		<Directory uploads/*>	# Concerne le répertoire uploads ainsi que ses sous-
			<Limit READ>	# répertoires
		    		DenyAll	# Personne logué en anomymous n'a le droit de
			</Limit>		# télécharger depuis le répertoire uploads
			<Limit STOR>
		    		AllowAll	# Tout le monde logué en anonymous à le droit d'uploader
			</Limit>		# dans le répertoire uploads 
		</Directory>		
		</Anonymous>
	

Exercice

Création d' un répertoire /ftp qui sera la racine du serveur. Créer 1 sous-répertoire /ftp/public

		Conf 1 : 1 compte anonyme user guest, passwd 123. Lecture sur /ftp et sous-répertoires
		Conf 2 : Créer le rep /ftp/prive et en interdire l'accès à guest (anonymous)
			 Créer un utilisateur joe password joe qui à accès à /ftp/prive en lecture
		Conf 3 : Créer un utilisateur jim password jim qui à accès à tout en lecture et à /ftp/prive en écriture
		Conf 4 : Créer un utilisateur jack password jack qui à accès à tout en écriture
	

© 2005/2017 - Pep - Pour m'envoyer un mail - Connecté en ipv4