Présentation. Protocole FTP. Initiation. Proftpd



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

Configuration du serveur Web Apache. Master 1 STIC-Informatique 1

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

il chiffrer les flux d'authentification et les flux de données il n'y a pas de soucis d'ouverture de ports avec des modes actif/passif à gérer

Les serveurs WEBUne introduction

Création du site SMSROUTE et développement de l'api interne RAVOUNA Jérémy Chef de projet AIC NETWORK. Validation

Séquence 8 - Bases des réseaux - suite Jean.Saquet@info.unicaen.fr, Gaetan.Richard@info.unicaen.fr

FreeNAS Shere. Par THOREZ Nicolas

Linux sécurité des réseaux

Administration Linux - FTP

L'AAA, késako? Bruno Bonfils, fr.org>, Novembre Sous ce terme d'apparence barbare est regroupé l'ensemble des concepts suivants :

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

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

TP Service HTTP Serveur Apache Linux Debian

Différentes installations sur un serveur Windows 2000 ou 2003.

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

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

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

Serveur Subversion Debian GNU/Linux

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

PPE Installation d un serveur FTP

Faire fonctionner symfony sous wamp et windows avec des vhost. Installation de wamp

INSTALLATION APACHE POUR WINDOWS (XP OU 2000)

Live box et Nas Synology

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

Serveurs de noms Protocoles HTTP et FTP

Proxy et reverse proxy. Serveurs mandataires et relais inverses

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

Préparation d un serveur Apache pour Zend Framework

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

TR2 : Technologies de l'internet. Chapitre VI. NAT statique et dynamique Overloading (PAT) Overlapping, port Forwarding Serveur Proxy, DMZ

Live box et Nas Synology

Guide d'installation et de configuration de Pervasive.SQL 7 dans un environnement réseau Microsoft Windows NT

WEBMESTRE : CONCEPTION DE SITES ET ADMINISTRATION DE SERVEURS WEB

Présentation des serveurs DNS DHCP FTP

Installation d'un serveur DHCP sous Windows 2000 Serveur

Comment créer vos propres pages web?

Mandataires, caches et filtres

Un serveur FTP personnel, ça ne vous a jamais dit?

INSTALLATION ET CONFIGURATION D'UN SERVEUR FTP

CASE-LINUX MAIL. Introduction. CHARLES ARNAUD Linux MAIL

WebDAV en 2 minutes. Tous ces objectifs sont complémentaires et ils sont atteints grâce au seul protocole WebDAV. Scénarii

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

Documentation technique OpenVPN

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

Procédure d'installation

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

FTP est défini au dessus de TCP et utilisent deux connexions TCP IP pour fonctionner comme illustré dans la figure suivante

VPN. Réseau privé virtuel Usages :

Les messages d erreur d'applidis Client

Installation d un hébergement Web à domicile

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

Le protocole FTP (File Transfert Protocol,

table des matières Administration système

Installation du client Cisco VPN 5 (Windows)

BTS SIO Dossier BTS. PURCHLA Romain

Contrôle de la DreamBox à travers un canal SSH

PPE 2-1 Support Systeme. Partie Support Système

ISPConfig Documentation

Raspberry pi : Développer une petite application web sur Raspberry

Serveur de partage de documents. Étude et proposition d'une solution afin de mettre en place un serveur de partage de documents.

MISE EN PLACE DU FIREWALL SHOREWALL

Installation Windows 2000 Server

Solution Olfeo Guide d'intégration

Le filtrage de niveau IP

11/04/2014 Document Technique des Services Disponibles. 16/04/2014. Document Technique des Services Disponibles.

Une unité organisationnelle (Staff) comporte une centaine d'utilisateur dans Active Directory.

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

Restriction sur matériels d impression

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

Ubuntu Linux Création, configuration et gestion d'un réseau local d'entreprise (3ième édition)

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Tutoriel compte-rendu Mission 1

UE5A Administration Réseaux LP SIRI

Principes de DHCP. Le mécanisme de délivrance d'une adresse IP à un client DHCP s'effectue en 4 étapes : COMMUTATEUR 1. DHCP DISCOVER 2.

Imprimantes et partage réseau sous Samba avec authentification Active Directory

GUIDE DE L UTILISATEUR

SQUID P r o x y L i b r e p o u r U n i x e t L i n u x

1. Personnalisation de la page d'accueil

Installation et configuration de Vulture Lundi 2 février 2009

Guide de configuration de SQL Server pour BusinessObjects Planning

Installation du client Cisco VPN 5 (Windows)

Tunnels et VPN. 22/01/2009 Formation Permanente Paris6 86

INSTALLER JOOMLA! POUR UN HEBERGEMENT LINUX

Installation du client Cisco VPN 5 (Windows)

Gestion des utilisateurs : Active Directory

«clustering» et «load balancing» avec Zope et ZEO

Objectifs de la formation : Savoir réaliser la maintenance et l'administration de premier niveau sur un réseau d'établissement SCRIBE.

SECURIDAY 2013 Cyber War

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Configuration du serveur FTP sécurisé (Microsoft)

1. Comment accéder à mon panneau de configuration VPS?

SERVEUR NAS «Comprendre l'utilité d'un NAS c'est l'adopter!»

Installation du transfert de fichier sécurisé sur le serveur orphanet

OPTENET DCAgent Manuel d'utilisateur

SERVEUR HTTP Administration d apache

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

Transcription:

Présentati du Protocole FTP et Initiati à Proftpd Arnault TEISSIER ( teissier@efrei.fr ) pour EFREI-Linux v1.0, 25/11/2003

Table des matières 1 Introducti au FTP:...3 1.1 L'implémentati de proftpd :...3 1.1.1 Avantages de proftpd :...3 1.1.2 Incvénients de proftpd :...3 1.2 Liste des modules dispibles pour proftpd :...3 1.3 Analyseur de Log :...4 2 Cfigurati de proftpd :...5 2.1 Cfigurati globale :...5 2.1.1 Chrooter vos cnexis :...6 2.1.2 Éviter les DOS attaques :...6 2.2 Le système de log...6 2.3 Le système de limitatis :...6 2.4 Cfigurati pour les compte anyme :...7 2.5 Serveur FTP Virtuel :...8 3 Problèmes et difficulté classique :...10 3.1 Mode Actif / mode passif : la démystificati :...10 3.1.1 Mode Actif :...10 3.1.2 Mode passif :...10 3.2 Cfigurati pour que proftpd soit derrière du NAT :...11 3.3 Utilisati d'un backend d'authentificati : LDAP...11

1 Introducti au FTP: Le protocole FTP (File Transfer Protocol) est, comme s nom l'indique, un protocole de transfert de fichier. Le protocole FTP est né en 1971, date à laquelle un mécanisme de transfert de fichiers (décrit dans le RFC 141) entre les machines du MIT (Massaschussetts Institute of Technology) avait été mis au point. De nombreux RFC t ensuite apporté des amélioratis au protocole de base, mais les plus grandes innovatis datent de juillet 1973. Le protocole FTP est actuellement défini par le RFC 959 (File Transfer Protocol (FTP) - Specificatis). Le FTP fctine sur le port de communicati 21. Cependant il utilise aussi le port 20 pour le transfert de dnées. Il y a cependant plusieurs subtilitées sur le mode de fctinement du FTP que nous verrs dans ce document. 1.1 L'implémentati de proftpd : Proftpd est une implémentati opensource sous licence GPL du protocole FTP. Le serveur le plus utilisé a lgtemps été Wu-FTPD, qui, de m point de vue, est à proscrire pour des raiss de sécurité. De plus la prise en main de proftpd est plus aisée, surtout pour les persnes cnaissants déjà Apache, leurs fichiers de cfigurati étant très similaires. 1.1.1 Avantages de proftpd : Une cfigurati puissante similaire à celle d'apache. Des serveurs virtuels. Comptes facilement chrootés. Pas besoin de binaire dans les priss ou comptes chrootés. 1.1.2 Incvénients de proftpd : Pas de commande SITE pour des raiss de sécurité. Certaine fctinalité st gelée pour une meilleur sécurité. Comme vous l'aurez peut être compris, la sécurité est un point d'hneur de l'équipe de développement de proftpd, et malgré quelques problèmes qui reste assez rare, si une b suivi du serveur est effectué, accompagné de mise à jour lorsqu'un exploit est anncé ctre ce serveur, il est d'une grande fiabilité et figure parmi les serveur FTP les plus sûrs. Pour tout le document qui suit, les exemples et directives cités s'appliquent au fichier de cfigurati unique de proftpd, nommé proftpd.cf et généralement situé dans le répertoire /etc/proftpd.cf

1.2 Liste des modules dispibles pour proftpd : Proftpd propose un système de module afin de pouvoir étendre ses fctinalités, et de permettre au persnes désirant adapter proftpd à leur besoin. Les plus utilisées st : SSL/TLS support (mod_tls) LDAP support (mod_ldap) SQL support (mod_sql) TCP wrappers support (mod_wrap) Il existe beaucoup d'autres modules dipibles, répdant à des besoins plus spécifiques. Vous pourrez vous les procurer accompagnés de leur documentati à l'adresse suivante : http://www.castaglia.org/proftpd/ 1.3 Analyseur de Log : Il peut être intéressant de cnaître l'activité de votre serveur FTP. Divers logiciels st dispibles proposant des analyses utiles des accès générés par Proftpd. Il vous permette d'avoir une vue global sur le trafic et le nombre de visiteurs de votre serveur. The Webalizer ( http://www.webalizer.org ) ftpweblog ( http://www.nihgo.org/snowhare/utilities/ftpweblog/ )

2 Cfigurati de proftpd : 2.1 Cfigurati globale : On peux placer dans global des optis qui se répercuters sur l'ensemble des serveurs FTP sauf menti ctraire ultérieure (dans un Virtualhost par exemple). Exemple de cfigurati : ServerName "nom de votre serveur" # Permet de choisir si le serveur est lancer par inetd ou de manière # autome. ServerType standale # Permet de cacher le nom et la versi de votre serveur FTP. ServerIdent <nom affficher lors d'une cnexi> DeferWelcome MultilineRFC2228 DefaultServer ShowSymlinks AllowOverwrite off # Attenti peu engendré des problème de sécurité. Cette directive active # le ftp bounce, souvent appelé FXP. Allowforeignaddress # N'impose pas que l'utilisateur possède un shell associé dans le backend # gérant les authentificatis. RequireValidShell off #Autorise de résumer ces download et upload. AllowRetrieveRestart AllowStoreRestart #Opti de la commande LS. ListOptis "-l" #Permet d'eviter des problème de sécurité. DenyFilter \*.*/ #Definiti des timeout TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 240 # Evite de faire de rlookup inutile. UseReverseDNS off

# Définit le port de proftpd à 21, ce qui est le standard. Port 21 # C'est une bne cfigurati par défaut pour les droits de fichiers. # L'utilisateur et le groupe t tout les droits, et le reste du mde # peu seulement lire. Umask 002 # Définit l'utilisateur et le groupe par défaut de proftpd. User nobody Group nogroup 2.1.1 Chrooter vos cnexis : Que signifie dc ce terme mystérieux? Chroot csiste tout simplement à enfermer l'utilisateur dans un répertoire précis, et de l'empêcher de se promener sur l'intégralité de votre disque dur en toute impunité. La directive suivante enfermera tous les utilisateurs dans leur répertoire persnel (défini ici par «~») à l'excepti des persnes appartenants au groupe staff. Elle peut être défini dans les paramètres globaux ou dans un Virtualhost. DefaultRoot 2.1.2 Éviter les DOS attaques : ~!staff Afin d'éviter une attaque de type DOS, ou plus généralement une surcharge de votre serveur, vous devez limiter le nombre de cnecti total autorisé. Dans l'exemple cidessous, nous le limits à 30, suffisant dans la majeur partie des cas. Ce paramètre ne peut être défini qu'une seul fois, dans la cfigurati global. MaxInstances 30 2.2 Le système de log Le système de log fctine comme sous Apache. Vous définissez des formats de log, que vous associez ensuite à des fichiers, et à des actis. Par exemple : LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" LogFormat write "%h %l %u %t \"%r\" %s %b" Ici, définit trois formats de log differents ( default, auth, write), que nous alls à présent pouvoir associer sel nos choix. Le format de log default est utilisé si aucun format n'est spécifié. ExtendedLog ExtendedLog /var/log/proftpd/access.log WRITE,READ write /var/log/proftpd/auth.log AUTH auth Nous associs à présent au fichier /var/log/proftpd/access.log le format de log «write» et lui delands de garder trace de toutes activités de lecture et d'écriture. Pour le deuxième

fichier, nous désirs logger toutes les authentificatis faites sur notre serveur et choisisss pour cela le format «auth». 2.3 Le système de limitatis : Il est possible de préciser des règles particulières pour un répertoire, ou une commande FTP. Par exemple, la commande suivante permet d'écraser des fichiers dans le répertoire «/test», ce qui n'est pas forcément le cas du reste des dossiers: # Nous vouls pouvoir écraser les fichiers du repertoire /test <Directory /test/*> AllowOverwrite </Directory> Il est aussi possible de limiter une ou des commandes FTP. Pour cela, il faut utiliser la directive Limit prévue à cet effet : <Directory ~> <Limit WRITE STOR RNFR DELE> Order Allow,Deny Deny ALL </Limit> </Directory> <Directory ~/public_html> <Limit WRITE STOR RNFR DELE> AllowAll </Limit> </Directory> Dans cet exemple, nous interdiss (Deny ALL) les commandes WRITE STOR RNFR DELE dans le dossier ~, puis nous autoriss ces mêmes commandes dans le répertoire public_html. 2.4 Cfigurati pour les compte anyme : Pour activer un accès anyme à votre serveur FTP, il vous suffit d'ajouter ce qui suit à votre fichier de cfigurati. Décommentez la dernière partie pour dner accès en écriture aux utilisateurs anymes. <Anymous ~ftp> User ftp Group nogroup # Définit un alias rendant le login anymous et ftp identique. UserAlias anymous ftp RequireValidShell off

# Limit le nombre d'utilisateurs anymes à 10. MaxClients 10 # On veut que 'welcome.msg' s'affiche au login, et que '.message' # s'affiche pour chaque nouveaux dossiers visités. DisplayLogin welcome.msg DisplayFirstChdir.message # Interdit l'écriture dans tout l'envirnement chrooté d'anymous. <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> # Décommentez ce qui suis si vous êtes vraiment sympa! # <Directory incoming> # # C'est une bne cfigurati par défaut pour les droits de fichiers. # # L'utilisateur et le groupe t tout les droits, et le reste du mde # # peu seulement lire. # Umask 022 022 # <Limit READ WRITE> # DenyAll # </Limit> # <Limit STOR> # AllowAll # </Limit> # </Directory> </Anymous> 2.5 Serveur FTP Virtuel : Ctrairement aux serveurs web, le seul moyen de distinguer différents serveurs est de leur attribuer différentes adresses IP. En effet le nom de la machine utilisée pour ctacter le serveur ne figure pas dans la requête FTP. Il est aussi possible de différencier les VirtualHost en changeant le port de communicati utilisé. Par exemple definit le serveur par défaut sur le port 21, et les Virtualhost sur les ports 2121, 2122, 2123,... En dehors du port standard 21, il n'y a pas de règles pour choisir le port des VirtualHost, mais il faut tout de même éviter d'utiliser le port standard d'un autre logiciel. Pour mettre toutes les chances de votre coté, utilisez des ports supérieurs à 1024. Dans l'exemple ci-dessous, le serveur FTP virtuel VirtualHost utilise l'adresse IP 10.0.1.227, différente de l'ip du serveur principal, et le même port de communicati que défini dans les paramètres globaux. Le ctenu de la secti Virtualhost est par défaut le même que les paramètres globaux. Vous pouvez redéfinir tout les paramètres spécifiques à votre Virtualhost, qui diffèrent de la cfigurati globale. <VirtualHost 10.0.1.227> ServerName "nom de votre serveur"

ServerAdmin ftpmaster@efrei.linux.fr MaxLoginAttempts 2 RequireValidShell no MaxClients 20 DefaultRoot ~ AllowOverwrite yes <Directory ~> <Limit WRITE STOR RNFR DELE> Order Allow,Deny Deny ALL </Limit> </Directory> <Directory ~/public_html> <Limit WRITE STOR RNFR DELE> AllowAll </Limit> </Directory> </VirtualHost> Si vous souhaitez faire du virtual hosting par rapport au port de communicati, il suffirait d'ajouter la directive «port» et de spécifier un port différent de celui défini dans la cfigurati globale. Vous devriez aussi remplacer 10.0.1.227 par l'ip du serveur par défaut.

3 Problèmes et difficulté classique : 3.1 Mode Actif / mode passif : la démystificati : 3.1.1 Mode Actif : Le mode actif pose problème lorsque le client est derrière un firewall, car le serveur essayera de se cnecter sur le port 1027, ce qui lui est interdit. Pour répdre a ce problème, le mode passif a été normalisé. 3.1.2 Mode passif : Dans le cas du mode passif, que vous signalez au serveur grâce à la commande PASV, le serveur n'essayera pas de se cnecter au client, il restera passif... C'est le client qui effectue tout les tentatives de cnexi. Un problème persiste cependant, si les 2 machines, cliente et serveur, st derrière un firewall. Dans ce cas, il sera nécessaire de préciser au

serveur les ports de communicati qu'utilisera proftpd pour accepter les cnexis du client, et demander à l'administrateur du firewall d'adapter ses règles avec votre cfigurati. 3.2 Cfigurati pour que proftpd soit derrière du NAT : Cette secti décrit comment cfigurer proftpd pour qu'il fctine en mode passif alors qu'il est caché derrière une machine qui partage une cnecti internet avec de l' «address translati». C'est la technologie souvent appelée masquerading sous linux et qu'utilise Windows lorsque vous utilisez le système de partage de cnexi. Dans ce cas, le problème vient du fait que vous devez rediriger les ports 20 et 21 de la machine cnectée à Internet vers votre serveur FTP, puisque ce dernier n'est pas directement accessible par une machine placée à l'exterieur de votre réseau. Or lorsque proftpd execute la commande ftp PORT, il utilisera l'adresse IP de l'interface réseau par lequel vous l'avez cnectée, et par cséquent se présentera avec une adresse de votre réseau privé. Le client sera alors dans l'impossibilité d'établir une cnecti avec votre serveur FTP. Proftpd propose une soluti qui csiste à utiliser la directive «MasqueradeAddress» pour préciser l'adresse IP public de votre machine cnectée à Internet : MasqueradeAddress 217.128.219.7 Cependant, si l' suit le schéma présentant le mode passif, s'aperçoit que le client tente de se cnecter au port au port 2024 (port choisi aléatoirement par Proftpd, communiqué au client) ce qui ne sera pas possible, puisque la machine cnectée à internet n'est pas votre serveur FTP. Pour régler ce problème, il est possible de spécifier les ports de communicati qu'ouvrira Proftpd dans le cas d'une cnexi en mode passif : PassivePorts 12000 12015 Ici, Proftpd choisira un port compris entre 12000 et 12015 pour les cnexis passives. Il ne vous reste alors plus qu'à rediriger les ports 12000 à 12015 de votre machine cnectée à internet vers votre serveur FTP. 3.3 Utilisati d'un backend d'authentificati : LDAP Pour cclure cette explicati de Proftpd, parls de l'authentificati, un problème important dans la cfigurati des services, mais souvent complexe. Par défaut, Proftpd vous authentifie avec votre mot de passe persnel stocké soit dans /etc/passwd, soit dans / etc/shadow. Proftpd opère cette authentificati à travers PAM. Il est cependant possible de cfigurer Proftpd pour récuperer les logins et mots de passe grâce à un backend qui permet d'accèder soit à une base SQL, soit à une base LDAP. Je préfère largement LDAP qui permet facilement d'utiliser les mêmes logins et mot de passe dans de nombreuses autres applicatis, très dificile avec du SQL.

Une authentificati LDAP peut se faire de diférentes manières, puisque PAM, système d'authentificati par défault de Proftpd peu aussi gérer le LDAP. Le gros avantage d'utiliser le backend LDAP de proftpd est qu'il permet d'automatiser des actis intéressantes. La cfigurati suivante permet une authentificati LDAP sur le serveur ldap.networx.fr en TLS, et de rechercher les informatis d'authentificati dans la base "ou=webservice, o=networx". Le champs rechercher et «uid» qui est égal à %v, variable correspdant au nom d'utilisateur saisi lorsqu'un client tente de s'authentifie sur proftpd. LDAPServer LDAPDoAuth LDAPUseTLS LDAPHomedirOnDemand LDAPDoQuotaLookups ldap.networx.fr "ou=webservice, o=networx" uid=%v "ou=webservice, o=networx" "uid=%v" Cette cfigurati permet une authentificati sur un serveur LDAP. Si l'utilisateur existe et saisie un mot de passe correct, mais que s répertoire persnel n'existe pas sur le serveur FTP, il sera automatiquement crée. De plus le quota est géré dans la base de dnée LDAP, dc si vous souhaitez le modifier, il suffit pour cela de modifier la valeur saisie dans votre base de dnée.

Référence : Documentati officiel de Proftpd : http://proftpd.linux.co.uk/docs/ FAQ de proftpd : http://proftpd.linux.co.uk/docs/faq/linked/faq.html Modules de Proftpd et source de documentati intéressante : http://www.castaglia.org/proftpd/