Aller au contenu

Le système d'exploitation GNU-Linux/Le serveur de fichiers FTP

Un livre de Wikilivres.



Le protocole FTP (File Transfer Protocol) permet d'échanger des fichiers volumineux. Il utilise le port 21 (canal de contrôle) et le port 20 (canal des données) en protocole TCP.

Il existe plusieurs serveurs FTP : ProFTPD, Pure-FTPd, VsFTPd, wu-ftpd, muddleftpd... Chacun se différencie des autres par ses fonctionnalités et sa facilité (ou non) a être configuré.

Généralement ces serveurs peuvent également fournir un serveur SFTP (FTP sécurisé, sur le port 22).

Pour plus de détails voir : Administration réseau sous Linux/ProFTPD.
  • Installation :
  # apt-get install proftpd
  • Configuration :
  # vim /etc/proftpd/proftpd.conf

Une fois les modifications faites sur le fichier de configuration, ne pas oublier de relancer le service :

  # /etc/init.d/proftpd restart

Exemple de configuration :

  # Nom du serveur
  ServerName                      "Serveur FTP du Creufop"
  
  # Fonctionne en mode autonome (daemon) et non via inetd
  ServerType                      standalone
  
  # Affiche le message de bienvenue que lorsque l'utilisateur s'est authentifié
  DeferWelcome                    on
  
  # Permet de voir les liens symboliques
  ShowSymlinks                    on
  
  # a commenter 
  MultilineRFC2228                on
  DefaultServer                   on
  
  # Efface un fichier si il est déjà présent
  AllowOverwrite                  on
  
  # Options liés aux expirations avant déconnexion
  TimeoutNoTransfer               600
  TimeoutStalled                  600
  TimeoutIdle                     1200
   
  # Fichier à afficher lors de la connexion
  DisplayLogin                    welcome.msg
  
  # Affiche le fichier .message si celui-ci est présent dans le répertoire visité
  DisplayFirstChdir               .message
  
  # Affiche par défaut le format long de la commande ls
  ListOptions                "-l"
  
  # À commenter
  DenyFilter                      \*.*/
  
  # À décommenter si on utilise NIS ou LDAP
  #PersistentPasswd               off
  
  # Le port standard de contrôle
  Port                            21
  
  # Nombre maximum de connexions simultanées
  MaxInstances                    30
  
  # Login et groupe utilisé par le daemon proftpd
  User                            nobody
  Group                           nogroup
  
  # Masque par défaut des fichiers et des répertoires
  Umask                         022  022
  
  # On autorise explicitement les logins autorises au FTP :
  <Limit LOGIN>
        AllowUser alex
        AllowUser pierre
        AllowUser alain
        DenyAll
  </Limit>

Pour piloter un flux SFTP en commandes[1] :

sftp mon_serveur
sftp> ls   # fichier_distant
sftp> lls  # fichier_local
sftp> get *
sftp> lls  # fichier_local, fichier_distant
sftp> put fichier_local
sftp> ls   # fichier_local, fichier_distant
sftp> put local_file remote_path/remote_file