Historique des versions Version 0.10 27 octobre 2003 PM Création du document. Version 0.11 30 octobre 2003 PM Ajout d'un lien vers la version PDF.



Documents pareils
Procédures informatiques administrateurs Création d un serveur FTP sous Linux

Administration Linux - FTP

FTP & SMTP. File Transfert Protocol. Deux applications fondamentales pour le réseau Internet. Un protocole d échange de fichier «au dessus» de TCP :

Couche application. La couche application est la plus élevée du modèle de référence.

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

FTP & SMTP. Deux applications fondamentales pour le réseau Internet.

Plan. Le système de transfert de fichiers d'internet. Introduction aux systèmes de transfert de fichiers Le protocole FTP.

Le service FTP. M.BOUABID, Page 1 sur 5

Services Réseau SSH. Michaël Hauspie. Licence Professionnelle Réseaux et Télécommunications

ftp & sftp : transférer des fichiers

Serveurs de noms Protocoles HTTP et FTP

Introduction...3. Objectif...3. Manipulations...3. Gestion des utilisateurs et des groupes...4. Introduction...4. Les fichiers de base...

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

V - Les applications. V.1 - Le Domain Name System. V Organisation de l espace. Annuaire distribué. Définition. Utilisation par le resolver

Protocoles DHCP et DNS

Service FTP. Stéphane Gill. Introduction 2

Serveur d application WebDev

Documentation Utilisateur/Développeur. Client de Monitoring CamTrace

Gestion des utilisateurs : Active Directory

Sécurité GNU/Linux. FTP sécurisé

Onglet sécurité de Windows XP Pro et XP Home

Configuration d un firewall pour sécuriser un serveur WEB

pare - feu généralités et iptables

FreeNAS Shere. Par THOREZ Nicolas

FTPS AVEC UNE APPLIANCE FAST360 EN COUPURE. Table des matières

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

Live box et Nas Synology

Administration Réseau sous Ubuntu SERVER Serveur FTP. Installation d un serveur FTP (File Transfert Protocol) sous Ubuntu Server 12.

Configuration d'un annuaire LDAP

Guide de configuration de la Voix sur IP

Novell. NetWare 6. GUIDE D'ADMINISTRATION DE NETDRIVE

SERVEUR DE MESSAGERIE

Live box et Nas Synology

Configuration de WebDev déploiement Version 7

GRETA SISR1 TP Installation et mise en place d un serveur FTP sous Windows Server 2013

JetClouding Installation

Guide d utilisation. Table des matières. Mutualisé : guide utilisation FileZilla

Internet Information Services (versions 7 et 7.5) Installation, configuration et maintenance du serveur Web de Microsoft

Chapitre 2 Accès aux partages depuis votre système d'exploitation

1. Installation du Module

GENERALITES. COURS TCP/IP Niveau 1

Objet : Guide d'installation et de maintenance pour "My IC Phone 8082" connecté à un OmniPCX Office R810

Service Informatique et Télématique (SITEL), Emile-Argand 11, 2009 Neuchâtel, Tél ,

Présentation, mise en place, et administration d'ocs Inventory et de GLPI

LES ACCES ODBC AVEC LE SYSTEME SAS

Installation d'un serveur FTP géré par une base de données MySQL

Assistance à distance sous Windows

Intranet d'établissement avec Eva-web Installation configuration sur serveur 2000 ou 2003 Document pour les administrateurs

Un serveur FTP en 5 minutes chrono. Home Nagios & Co Réseau IP GStreamer Hébergement Mes projets Annonceurs Contact

File Transfer Protocol (FTP)

BTS SIO SISR3 TP 1-I Le service Web [1] Le service Web [1]

Mise en place d'un antivirus centralisé

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

Comment créer vos propres pages web?

SSH, le shell sécurisé

Les commandes relatives aux réseaux

Introduction au protocole FTP. Guy Labasse

FTP Pourquoi s'intéresser à FTP? Que peut-on faire avec FTP?

Manuel d installation De la Cryptolib CPS Dans un environnement client/serveur TSE/CITRIX

Le protocole FTP (File Transfert Protocol,

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

TP LINUX : MISE EN RÉSEAU D UN SERVEUR LINUX

NAS 224 Accès distant - Configuration manuelle

Mise en place d'un serveur FTP avec vsftpd / pureftpd sous netbsd 3.1. Compte-rendu

Acronis Backup & Recovery for Mac. Acronis Backup & Recovery et Acronis ExtremeZ-IP ARCHITECTURE DE RÉFÉRENCE

TP réseaux 4 : Installation et configuration d'un serveur Web Apache

ETI/Domo. Français. ETI-Domo Config FR

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Version Wraptor Laboratories. SpamWars Serveur Proxy-SMTP

Configurer ma Livebox Pro pour utiliser un serveur VPN

Projet Administration Réseaux

Guide d installation de OroTimesheet 7

Installation du client Cisco VPN 5 (Windows)

Installation personnalisée d'oracle 10g

Installation. du serveur SCRIBE virtuel d'amonecole

Installation de Windows 2003 Serveur

Guide rapide d'installation SUSE Linux Enterprise Server 11 SP1

Date : NOM Prénom : TP n /5 DISTANT : CONCEPTS ET DIFFÉRENCES

VTX FTP. Transfert de fichiers business par FTP - Manuel de l'utilisateur. Informations complémentaires : info@vtx.

Installation et utilisation d'un certificat

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

WINDOWS SERVER 2003-R2

INSTALLATION ET CONFIGURATION D'UN SERVEUR FTP

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Installation du client Cisco VPN 5 (Windows)

Charte d'utilisation des infrastructures de la plate-forme bioinformatique Genotoul

Installation du client Cisco VPN 5 (Windows)

Installer une imprimante réseau.

Les cahiers pratiques de Anonymat.org. SocksCap32. Edition du 20 Octobre 2000

Utiliser Subversion (SVN) avec Tortoise

Raccordement desmachines Windows 7 à SCRIBE

But de cette présentation

Parallels Plesk Panel. Module Pare-feu de Parallels Plesk Panel 10 pour Linux/Unix. Guide de l'administrateur

1/ Introduction. 2/ Schéma du réseau

Installation d'un serveur sftp avec connexion par login et clé rsa.

Capture, Filtrage et Analyse de trames ETHERNET avec le logiciel Wireshark. Etape 1 : Lancement des machines virtuelles VMWARE et de Wireshark

Transcription:

Page 1 sur 7 PureFTPd Pacôme Massol Néotech III Cité scolaire du Butor, Sainte-Clotilde Copyright 2003 Néotech III La reproduction exacte et la distribution intégrale de ce document sont permises sur n'importe quel support d'archivage, pourvu que cette notice soit préservée. Historique des versions Version 0.10 27 octobre 2003 PM Création du document. Version 0.11 30 octobre 2003 PM Ajout d'un lien vers la version PDF. 1. Introduction 1.1. Le modèle FTP 1.2. Les commandes FTP 1.3. Les réponses FTP 2. Installation 2.1. Compilation 2.2. Utilisateur FTP 2.3. Utilisateurs virtuels 2.4. Lancement du serveur 3. Les serveurs virtuels 4. Surveillance 5. Exercices 6. Lectures conseillées Résumé Dans ce chapitre, nous allons présenter l'installation du serveur FTP PureFTPd. Pour me joindre : <pacome.massol@laposte.net> Ce fichier existe également au format PDF. 1. Introduction Le protocole FTP (File Transfer Protocol) est un protocole de transfert de fichiers. La mise en oeuvre de ce protocole date de 1971, lorsque un mécanisme de transfert de fichiers entre les machines du MIT (Massaschussetts Institute of Technology) a été mis au point. Par la suite, de nombreuses améliorations ont été apportées. Actuellement, le protocole FTP est défini dans le RFC 959. 1.1. Le modèle FTP

Page 2 sur 7 Le protocole FTP s'inscrit dans un modèle client-serveur. Une machine envoie des ordres (le client) que l'autre (le serveur) attend pour effectuer des actions (le serveur). Lors d'une connexion FTP, deux canaux de transmission sont ouverts : un canal pour les commandes (canal de contrôle sur le port TCP 20); un canal pour les données (sur le port TCP 21). Figure 1. Architecture de FTP Ainsi, le client comme le serveur exécutent chacun un processus pour 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 ; le PI (Protocol Interpreter) est l'interpréteur de protocole permettant de commander le DTP à l'aide de commandes reçues sur le canal de contrôle. Il est différent sur le client et sur le serveur : Le SERVER-PI est chargé d'écouter les commandes provenant d'un USER-PI sur le canal de contrôle sur un port donné, d'établir la connexion pour le canal de contrôle, de recevoir sur celui-ci les commandes FTP de l'user-pi, d'y répondre et de piloter le SERVER-DTP ; Le USER-PI est chargé d'établir la connexion avec le serveur FTP, d'envoyer les commandes FTP, de recevoir les réponses du SERVER-PI et de contrôler le USER-DTP si besoin. Lors de la connexion d'un client FTP à un serveur FTP, le USER-PI initie la connexion. Le client envoie des commandes FTP au serveur, ce dernier les interprète, pilote son DTP, puis renvoie une réponse. Lorsque la connexion est établie, le serveur-pi donne le port sur lequel les données seront envoyées au Client DTP. Le client DTP écoute alors sur le port spécifié, les données en provenance du serveur. 1.2. Les commandes FTP Toutes les commandes passées sur le canal de contrôle sont au format ASCII. Les commandes FTP permettent de préciser : le port utilisé ;

Page 3 sur 7 le mode de transfert des données ; la structure des données ; la nature de l'action à effectuer (Retrieve, List, Store,...). Le tableau ci-dessous résume les principales commandes FTP : Tableau 1. Quelques commandes FTP USER PASS CWD CDUP QUIT PORT PASV RETR STOR Chaîne de caractères identifiant l'utilisateur. Cette identification est nécessaire pour établir une communication sur le canal de données. Chaîne de caractères spécifiant le mot de passe de l'utilisateur. Cette commande doit suivre immédiatement la commande USER. Il revient au client de masquer l'affichage de cette commande pour des raisons de sécurité. Change Working Directory : cette commande permet de changer le répertoire courant. Cette commande nécessite le chemin d'accès au répertoire à atteindre comme argument. Change to Parent Directory : cette commande permet de remonter au répertoire parent. Commande permettant de terminer la session en cours. Le serveur attend de finir le transfert en cours le cas échéant, puis fournit une réponse avant de fermer la connexion. Chaîne de caractères indiquant le numéro de port à utiliser. Commande permettant d'indiquer au serveur DTP de se mettre en attente d'une connexion sur un port spécifique choisi aléatoirement parmi les ports disponibles. La réponse à cette commande est l'adresse IP de la machine et le port. Cette commande (RETRIEVE) demande au serveur DTP une copie du fichier dont le chemin d'accès est passé en paramètre. Cette commande (STORE) demande au serveur DTP d'accepter les données envoyées sur le canal de données et de les stocker dans le fichier portant le nom passé en paramètre. Si le fichier n'existe pas, le serveur le crée, sinon il l'écrase. 1.3. Les réponses FTP Les réponses FTP permettent d'assurer la synchronisation entre client et serveur FTP. Ainsi, à chaque commande envoyée par le client, le serveur effectuera éventuellement une action et renverra systématiquement une réponse. Les réponses sont constituées d'un code à 3 chiffres indiquant la façon suivant laquelle la commande envoyée par le client a été traitée. Toutefois, ce code à 3 chiffres étant difficilement lisible par un humain, il est accompagné d'un texte (chaîne de caractères séparée du code numérique par un espace). Les codes de réponse sont constitués de 3 chiffres dont voici les significations : le premier chiffre indique le statut de la réponse (succès ou échec) ; le second chiffre indique la référence de la réponse ; le troisième chiffre donne une signification plus spécifique (relative à chaque deuxième chiffre). Tableau 2. Codes des réponses FTP

Page 4 sur 7 1yz 2yz 3yz 4yz 5yz x0z x1z Réponse préliminaire positive Réponse positive de réalisation Réponse intermédiaire positive Réponse négative de réalisation Réponse négative permanent Syntaxe Information L'action demandée est en cours de réalisation, une seconde réponse doit être obtenue avant d'envoyer une deuxième commande. L'action demandée a été réalisée, une nouvelle commande peut être envoyée. L'action demandée est temporairement suspendue. Des informations supplémentaires sont attendues de la part du client. L'action demandée n'a pas eu lieu car la commande n'a temporairement pas été acceptée. Le client est prié de réessayer ultérieurement. L'action demandée n'a pas eu lieu car la commande n'a pas été acceptée. Le client est prié de formuler une requête différente. L'action possède une erreur de syntaxe, ou bien il s'agit d'une commande non comprise par le serveur. Il s'agit d'une réponse renvoyant des informations (par exemple pour une réponse à une commande STAT). x2z Connexions La réponse concerne le canal de données. x3z x4z Authentification et comptes Non utilisé par le protocole FTP La réponse concerne le login (USER/PASS) ou la demande de changement de compte (CPT). x5z Système de fichiers La réponse concerne le système de fichiers distant. 2. Installation De nombreuses options de PureFTPd sont fixées lors de la compilation. Il vaut mieux donc faire une installation à partir des sources. 2.1. Compilation Il faut rapatrier l'archive contenant les sources à partir du site www.pureftpd.org. De nombreuses options de compilation sont disponibles. Parmi les plus intéressantes, on peut noter : Tableau 3. Quelques options de compilation --with-ftpwho --with-everything --with-language=french --with-paranoidmsg --with-virtualhosts --with-puredb --with-quotas --with-ratios Permet l'utilisation de cette commande qui indique qui utilise le serveur. Active toutes les directives "with". Choix de la langue des messages générés par le serveur. Génère des messages d'erreur peu explicites lors des échecs de connexion. Utilisation de serveurs virtuels (voir plus loin). Utilisation d'utilisateurs virtuels (voir plus loin). Limitation de la taille des fichiers stockés par l'utilisateur. Définition d'un ratio entre upload/download.

Page 5 sur 7 --with-boring --without-banner --without-inetd --without-iplogging Messages à l'aspect professionnel. Aucune bannière lors de la connexion au serveur. Fonctionne en mode standalone uniquement (donc sans passer par inetd). N'enregistre pas dans les logs, les IP des clients (confidentialité). La compilation se déroule en trois temps. Dans le répertoire de décompression des sources, il faut lancer le script./configure en indiquant les paramètres souhaités : srv001:/root/pure-ftpd-1.0.11#./configure --with-ftpwho --with-language=french -- --with-virtualhosts --with-puredb --with-boring --without-banner --without-inetd Ensuite, on fait un make suivi d'un make install. 2.2. Utilisateur FTP Si vous souhaitez offrir un accès FTP anonyme, un utilisateur ftp doit exister : # groupadd ftp # useradd ftp -m -g ftp 2.3. Utilisateurs virtuels Vous pouvez créer des utilisateurs qui auront accès au serveur FTP tout en n'étant pas des utilisateurs Unix. Utilisez une commande de PureFTPd : # pure-pw useradd test -u 600 -g 600 -d /var/ftp Password : Enter it again : Il faut indiquer un UID (u) et un GID (g) nouveau. Le répertoire d'accueil (/var/ftp) doit exister. Ensuite, et à chaque modification du fichier, il faut lancer la commande : # pure-pw mkdb Les commandes useradd, userdel et usermod existent et fonctionnent de façon quasi identique à celles d'unix. La commande pure-pw show <utilisateur> permet d'avoir un état de l'utilisateur virtuel : # pure-pw show test Login : test Password : $1$ae2E7Kp0$I2waTWAlM7LO5rdEt./5C1 UID : 600 (-) GID : 600 (-) Directory : /var/ftp/./ Full name : Download bandwidth : 0 Kb (disabled) Upload bandwidth : 0 Kb (disabled) Max files : 0 (disabled) Max size : 0 Mb (disabled) Ratio : 0:0 (disabled:disabled) Allowed local IPs : Denied local IPs : Allowed client IPs : Denied client IPs : Time restrictions : 0000-0000 (disabled) 2.4. Lancement du serveur PureFTPd accepte de nombreux paramètres au chargement :

Page 6 sur 7 -A: Demande au serveur de chrooter tous les utilisateurs ftp. Concrètement, cela veut dire qu'ils ne pourront sortir du répertoire maison défini [ici /var/ftp]. Ils ne verront rien d'autre du système que le répertoire /var/ftp et ses sous-répertoires. -b: Être moins exigeant avec les standards pour permettre la connexion à des clients ftp peu soucieux des standards (tel IExplorer ;-). -B: Fonctionnement du serveur en arrière-plan. -c: Autoriser au maximum [n] connexions simultanées au serveur. -C: Autoriser au maximum [n] connexions simultanées venant de la même adresse ip au serveur. -e: Accepter uniquement que les connexions anonymes. -F: A chaque connexion d'un client, afficher un message de bienvenue pris de manière aléatoire dans le fichier /usr/share/games/fortune/fr/amusantes. -H: Ne pas résoudre les noms de domaine pour accélérer les connexions (ne pas chercher à déterminer le nom de domaine associé à l'adresse ip qui demande la connexion). -k: Ne pas autoriser les uploads dès lors que la partition est à [pourcentage]% pleine. -K: Autoriser les utilisateurs à uploader et à reprendre leur upload en cas d'erreur mais pas à supprimer ou renommer leur fichiers uploadés. -l: Autoriser la connexion d'utilisateurs autres que Unix (virtuels par exemple). -M: Autoriser les utilisateurs anonymes à créer des répertoires. -q: Mettre en place les ratios [ratio upload]:[ratio download] pour les utilisateurs anonymes. Ici -q 1:2 signifie que les utilisateurs anonymes doivent uploader 1Mo de données pour pouvoir downloader 2Mo. -r: Ne jamais écraser un fichier existant. Le fichier est automatiquement renommé si un fichier du même nom existe déjà sur le serveur. -s: Protection anti-warez. Ne pas autoriser les utilisateurs anonymes à télécharger des fichiers qui viennent d'être uploadés par d'autres utilisateurs anonymes. Il faut qu'auparavant, l'administrateur du serveur est validé tous les fichiers uploadés comme étant disponibles [ou non] au téléchargement. -t: Mettre en place une limitation de la bande passante [n kb/s upload]:[m kb/s download]. Ici -t :12 signifie que pour les utilisateurs, la vitesse en upload est illimitée [d'où l'absence de valeur] et que la vitesse en download est limitée à 12 kb/s. -S (port ): Connexion à PureFTPd sur un port non standard. Il existe beaucoup d'autres options dont vous trouverez le détail dans la documentation fournie avec le logiciel. A chaud, vous pouvez saisir la commande suivante, éventuellement agrémentée des options précédentes pour démarrer le serveur : # pure-ftpd -l unix -l puredb:/etc/pureftpd.pdb -B Avec l'option -l, on autorise les utilisateurs du système (Unix) et les utilisateurs virtuels à se

Page 7 sur 7 connecter. A froid, il faut créer un simple script dans /etc/rc.boot ou dans /etc/rcx.d selon le runlevel souhaité. 3. Les serveurs virtuels La principale configuration que l'on puisse réaliser avec PureFTPd est la création de serveurs virtuels, à savoir un serveur unique acceptant des connexions sur différents domaines. Vous devez créer un lien symbolique dans le sous-répertoire de /etc/pure-ftpd avec l'adresse IP à laquelle répond votre serveur et pointant sur le répertoire qui contient les fichiers. Par exemple : # ln -s /var/ftp/domaine.com /etc/pure-ftpd/192.168.1 4. Surveillance Il faut surveiller le fichier /var/log/syslog. Son contenu apporte (entre autre) les informations suivantes : Oct 22 21:28:46 srv001 pure-ftpd: (?@station1.domaine.com) [INFO] Nouvelle connexion de station1.domaine.com Oct 22 21:28:49 srv001 pure-ftpd: (?@station1.domaine.com) [INFO] util1 est maintenant loggue Oct 22 21:28:58 srv001 pure-ftpd: (util1@station1.domaine.com) [NOTICE] //home/util1/gsview32.ini uploade (5589 bytes, 544.33KB/sec) Oct 22 21:29:03 srv001 pure-ftpd: (util1@station1.domaine.com) [INFO] Deloggue - Temps CPU utilise: 0.030 secondes. 5. Exercices 1. Installez les sources de PureFTPd, compilez avec les options indiquées plus haut. 2. Vous mettrez en place des quotas (2 Mo par utilisateur maximum) et un ratio de upload/download de 70/30%. 3. Créez un utilisateur virtuel appelé virtu. 4. Configurez une interface virtuelle avec une IP dans un autre réseau. Vous prendrez soin de créer une ligne dans le fichier /etc/hosts afin que votre machine soit capable de résoudre le nom. 5. Créez un serveur virtuel pour cette adresse. 6. Connectez un utilisateur puis utilisez la commande pure-ftpwho. 7. Cherchez comment on peut personnaliser un message d'accueil lors de la connexion de l'utilisateur virtu. 6. Lectures conseillées Le fichier README du site de protfpd.org, bien qu'en anglais, est très clair et contient tout ce que vous devez savoir.