Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
proftpd [Le 02/04/2014, 15:20] – [Configuration pour le mode passif] 213.181.38.221proftpd [Le 18/02/2026, 18:35] (Version actuelle) – lien SFTP krodelabestiole
Ligne 1: Ligne 1:
-{{tag>Dapper Edgy Feisty Gutsy serveur réseau brouillon ftp}}+{{tag>Xenial serveur réseau ftp BROUILLON}}
  
-----  +====== Serveur FTP : PROFTPD ======
- +
- +
-====== Serveur FTP : PROFTPD ======- +
- +
- +
- +
-===== Introduction =====+
  
 Proftpd est sûrement l'un des meilleurs serveurs FTP disponibles. Il vous offrira énormément de possibilités mais n'est pas facile à maîtriser pour un débutant, Proftpd est sûrement l'un des meilleurs serveurs FTP disponibles. Il vous offrira énormément de possibilités mais n'est pas facile à maîtriser pour un débutant,
-donc pour utiliser la majorité des fonctions de proftpd sans trop de difficulté utilisez l'interface graphique [[:gproftpd]] 
- 
- 
- 
- 
  
 +<note warning>
 +Le niveau de sécurité par défaut du protocole FTP est extrêmement faible. Ce protocole est à juste titre considéré comme obsolète de nos jour et ne devrait globalement plus être utilisé, en particulier si le service doit être disponible sur [[:Internet]].(([[wpfr>IONOS by 1&1|IONOS]] : [[https://www.ionos.fr/assistance/hebergement/configurer-et-gerer-lacces-ftp/pourquoi-utiliser-sftp-et-ftps-au-lieu-de-ftp/|Pourquoi utiliser SFTP et FTPS au lieu de FTP]])) Dans ce cas mieux vaut lui préférer des solutions sécurisée, comme [[:SFTP]], ou [[:WebDAV]] (en [[:tutoriel:securiser_apache2_avec_ssl|HTTPS]]).
 +</note>
  
 ===== Installation ===== ===== Installation =====
  
-Pour installer le package, rien de plus simple, vérifiez que vos [[depots#depots_officiels|dépôts Universe]] sont bien activés puis [[:tutoriel:comment_installer_un_paquet|installez le paquet]] **[[apt://proftpd|proftpd]]**.+[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>proftpd-basic]]**.
  
-A la question « Lancer ProFTPd à partir d'inetd ou indépendamment ? », à moins de savoir ce que vous faites, répondez **indépendamment** (en fait si c'est pour un "petit serveur FTP léger" préférez inetd, pour un "gros serveur FTP puissant" choisissez indépendant).+A la question « Lancer ProFTPd à partir d'inetd ou indépendamment ? », à moins de savoir ce que vous faites, répondez **indépendamment** (en fait si c'est pour un "petit serveur FTP léger" préférez [[wpfr>inetd]], pour un "gros serveur FTP puissant" choisissez indépendant).
  
 Et voilà, vous avez un serveur ftp, enfin presque ! Et voilà, vous avez un serveur ftp, enfin presque !
- 
  
 ===== Configuration ===== ===== Configuration =====
Ligne 32: Ligne 22:
  
 Voilà les paramètres intéressants à changer pour une utilisation de base (si vous voulez plus de détail référez-vous à la documentation) : Voilà les paramètres intéressants à changer pour une utilisation de base (si vous voulez plus de détail référez-vous à la documentation) :
 +<file>ServerName : le nom de votre serveur ftp</file>
  
-ServerName : le nom de votre serveur ftp +Quotas on : enlevez le #devant la ligne pour la décommenter si vous voulez utiliser les quotas
- +
-Quotas on : enlevez le # devant la ligne pour la décommenter si vous voulez utiliser les quotas+
  
-Trouvez et décommentez les lignes suivantes (en retirant les # au début de chaque ligne) pour autoriser un accès anonyme "standard"+Trouvez et décommentez les lignes suivantes (en retirant les #au début de chaque ligne) pour autoriser un accès anonyme "standard"
-<file># A basic anonymous configuration, no upload directories.+<file>#A basic anonymous configuration, no upload directories.
  
  <Anonymous ~ftp>  <Anonymous ~ftp>
    User                         ftp    User                         ftp
    Group                        nogroup    Group                        nogroup
-   # We want clients to be able to login with "anonymous" as well as "ftp"+   #We want clients to be able to login with "anonymous" as well as "ftp"
    UserAlias                    anonymous ftp    UserAlias                    anonymous ftp
-   # Cosmetic changes, all files belongs to ftp user+   #Cosmetic changes, all files belongs to ftp user
    DirFakeUser  on ftp    DirFakeUser  on ftp
    DirFakeGroup on ftp    DirFakeGroup on ftp
Ligne 51: Ligne 40:
    RequireValidShell            off    RequireValidShell            off
    
-   # Limit the maximum number of anonymous logins+   #Limit the maximum number of anonymous logins
    MaxClients                   10    MaxClients                   10
    
-   # We want 'welcome.msg' displayed at login, and '.message' displayed +   #We want 'welcome.msg' displayed at login, and '.message' displayed 
-   # in each newly chdired directory.+   #in each newly chdired directory.
    DisplayLogin                 welcome.msg    DisplayLogin                 welcome.msg
    DisplayFirstChdir            .message    DisplayFirstChdir            .message
    
-   # Limit WRITE everywhere in the anonymous chroot+   #Limit WRITE everywhere in the anonymous chroot
    <Directory *>    <Directory *>
      <Limit WRITE>      <Limit WRITE>
Ligne 70: Ligne 59:
 Par contre, ne décommentez pas la suite (intitulée "Uncomment this if you're brave": "Décommentez ceci si vous en avez le courage"). Par contre, ne décommentez pas la suite (intitulée "Uncomment this if you're brave": "Décommentez ceci si vous en avez le courage").
  
-Vous pouvez interdire de se logger en root sur le ftp en ajoutant la ligne suivante  +Vous pouvez autoriser de se logger en root sur le ftp en ajoutant la ligne suivante (le root login est interdit par défaut) : <file>RootLogin on</file> puis en enlevant l'utilisateur ''root'' du fichier **/etc/ftpusers**.
-  RootLogin off+
  
 Une fois la configuration modifiée, relancez le serveur avec la commande suivante : Une fois la configuration modifiée, relancez le serveur avec la commande suivante :
   sudo service proftpd restart   sudo service proftpd restart
  
 +==== Configuration avec inetd ====
  
 +[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>inetd]]**.
  
 +Puis [[:tutoriel:comment_modifier_un_fichier|ajoutez]] dans **/etc/inetd.conf** :
 +<file - /etc/inetd.conf>ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd</file>
  
 +Si vous n'avez pas installé proftpd avec l'option inetd, vous pouvez changer ce paramètre dans le fichier de configuration de proftpd : <file - /etc/proftpd/proftpd.conf>ServerType inetd</file>
  
 ==== Configuration pour le mode passif ==== ==== Configuration pour le mode passif ====
Ligne 84: Ligne 77:
 Concernant le transfert de fichiers en FTP il existe deux méthodes : passif ou actif Concernant le transfert de fichiers en FTP il existe deux méthodes : passif ou actif
  
-Le mode le plus simple est le transfert en mode actif, ou le port utilisé est le port 20 (le port 21 ne sert qu'à initier la connexion et envoyer des commandes)+Le mode le plus simple est le transfert en mode actif, où le port utilisé est le port 20 (le port 21 ne sert qu'à initier la connexion et envoyer des commandes)
  
 La deuxième méthode consiste à utiliser le mode passif : une plage de ports est utilisée, ces ports étant attribués selon la configuration du serveur et le nombre d'utilisateurs. La deuxième méthode consiste à utiliser le mode passif : une plage de ports est utilisée, ces ports étant attribués selon la configuration du serveur et le nombre d'utilisateurs.
Ligne 105: Ligne 98:
 <file> <file>
 # #
-# /etc/proftpd.conf -- Masquerade avec Virtual Host Local . +#/etc/proftpd.conf -- Masquerade avec Virtual Host Local . 
-+#
 ServerType standalone ServerType standalone
  
 MultilineRFC2228 on MultilineRFC2228 on
  
-# To prevent DoS attacks, set the maximum number of child processes +#To prevent DoS attacks, set the maximum number of child processes 
-# to 30.  If you need to allow more than 30 concurrent connections +#to 30.  If you need to allow more than 30 concurrent connections 
-# at once, simply increase this value.  Note that this ONLY works +#at once, simply increase this value.  Note that this ONLY works 
-# in standalone mode, in inetd mode you should use an inetd server +#in standalone mode, in inetd mode you should use an inetd server 
-# that allows you to limit maximum number of processes per service +#that allows you to limit maximum number of processes per service 
-# (such as xinetd)+#(such as xinetd)
 MaxInstances 30 MaxInstances 30
  
-# Some logging formats+#Some logging formats
 LogFormat         default "%h %l %u %t \"%r\" %s %b" LogFormat         default "%h %l %u %t \"%r\" %s %b"
 LogFormat auth    "%v [%P] %h %t \"%r\" %s" LogFormat auth    "%v [%P] %h %t \"%r\" %s"
 LogFormat write   "%h %l %u %t \"%r\" %s %b" LogFormat write   "%h %l %u %t \"%r\" %s %b"
  
-# Global settings+#Global settings
 <Global> <Global>
  
Ligne 133: Ligne 126:
 ListOptions                "-l" ListOptions                "-l"
 DenyFilter \*.*/ DenyFilter \*.*/
-# Utilisation de NIS ou LDAP:+#Utilisation de NIS ou LDAP:
 #PersistentPasswd off #PersistentPasswd off
-# Utilisation de TLS:+#Utilisation de TLS:
 #TLSEngine on #TLSEngine on
-# Utilisation des Quotas:+#Utilisation des Quotas:
 #Quotas on #Quotas on
-# Utilisation des Ratio:+#Utilisation des Ratio:
 #Ratios on #Ratios on
  
Ligne 150: Ligne 143:
 MaxClients 50 MaxClients 50
  
-# Umask 022 interdit l'écriture et la creation de fichier et de répertoire.+#Umask 022 interdit l'écriture et la creation de fichier et de répertoire.
 Umask 022  022 Umask 022  022
 TimeoutLogin          120 TimeoutLogin          120
Ligne 156: Ligne 149:
 TimeoutStalled 3600 TimeoutStalled 3600
 TimeoutIdle 600 TimeoutIdle 600
-# Delay engine reduces impact of the so-called Timing Attack described in +#Delay engine reduces impact of the so-called Timing Attack described in 
-# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02 +#http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02 
-# It is on by default. +#It is on by default. 
 #DelayEngine off #DelayEngine off
  
-# utilisateur et groupe du serveur.+#utilisateur et groupe du serveur.
 User ftp User ftp
 Group nogroup Group nogroup
-# Chroot PROFTPD+#Chroot PROFTPD
 DefaultRoot ~ DefaultRoot ~
  
-# Logging options+#Logging options
 TransferLog /var/spool/syslog/proftpd/xferlog.legacy TransferLog /var/spool/syslog/proftpd/xferlog.legacy
  
  
-# Turn off Ident lookups+#Turn off Ident lookups
  #  #
  IdentLookups         off  IdentLookups         off
  #  #
- # Logging+ #Logging
  #  #
- # file/dir access+ #file/dir access
  #  #
  ExtendedLog /var/spool/syslog/proftpd/globaccess.log WRITE,READ write  ExtendedLog /var/spool/syslog/proftpd/globaccess.log WRITE,READ write
  #  #
  #  #
- # Record all logins+ #Record all logins
  #  #
  ExtendedLog /var/spool/syslog/proftpd/globauth.log AUTH auth  ExtendedLog /var/spool/syslog/proftpd/globauth.log AUTH auth
  #  #
- # Paranoia logging level....+ #Paranoia logging level....
  #  #
    ##ExtendedLog    /var/spool/syslog/proftpd/paranoid.log ALL default    ##ExtendedLog    /var/spool/syslog/proftpd/paranoid.log ALL default
  
 # #
-# Deny writing to the base server...+#Deny writing to the base server...
 # #
 <Limit WRITE> <Limit WRITE>
Ligne 197: Ligne 190:
 </Limit> </Limit>
  
-# -------------------------------------------- +#-------------------------------------------- 
- # Got a Frontpage customer who keeps breaking things???? + #Got a Frontpage customer who keeps breaking things???? 
- - stick 'em in group fpage + #- stick 'em in group fpage 
- # --------------------------------------------+ #--------------------------------------------
  <Directory ~/public_html>  <Directory ~/public_html>
  #  #
- # Block them from doing anything other than reading...+ #Block them from doing anything other than reading...
  #  #
  <Limit STOR RNFR DELE>  <Limit STOR RNFR DELE>
Ligne 210: Ligne 203:
  </Directory>  </Directory>
  #  #
- # ditto for ftp_root if it's there...+ #ditto for ftp_root if it's there...
  #  #
  <Directory ~/ftp_root>  <Directory ~/ftp_root>
Ligne 218: Ligne 211:
  </Directory>  </Directory>
  #  #
- # Limit by IP...+ #Limit by IP...
  #  #
  #<Directory /web/zsl>  #<Directory /web/zsl>
Ligne 233: Ligne 226:
    User ftp    User ftp
    Group nogroup    Group nogroup
-  # Alias pour la connection de l utilisateur anonyme+##Alias pour la connection de l utilisateur anonyme
    UserAlias anonymous ftp    UserAlias anonymous ftp
-  # n'utiliser que des alias authentifiés+##n'utiliser que des alias authentifiés
    AuthAliasOnly on    AuthAliasOnly on
-  # Cosmetic changes, all files belongs to ftp user+##Cosmetic changes, all files belongs to ftp user
    DirFakeUser on ftp    DirFakeUser on ftp
    DirFakeGroup on ftp    DirFakeGroup on ftp
-# Hide all files owned by user 'root'+#Hide all files owned by user 'root'
    HideUser root    HideUser root
-+#
    RequireValidShell off    RequireValidShell off
-#  +
-  # Message et nombre maximum de connections+  #Message et nombre maximum de connections
   MaxClients 50 "Désolé, le maximum de %m utilisateurs est atteint -- réessayez plus tard"   MaxClients 50 "Désolé, le maximum de %m utilisateurs est atteint -- réessayez plus tard"
  
-  # Limit WRITE everywhere in the anonymous chroot+##Limit WRITE everywhere in the anonymous chroot
    <Directory *>    <Directory *>
      <Limit RMD DELE MKD STOR WRITE>      <Limit RMD DELE MKD STOR WRITE>
Ligne 264: Ligne 257:
  
  
-# Connexion anonyme et des utilisateur à partir du net de du réseau local +#Connexion anonyme et des utilisateur à partir du net de du réseau local 
-# --------------------------------------------+#--------------------------------------------
 <VirtualHost 192.168.2.2> <VirtualHost 192.168.2.2>
  ServerAdmin aide_gnu_linux@yahoo.fr  ServerAdmin aide_gnu_linux@yahoo.fr
  ServerName "ftp.cereli.org"  ServerName "ftp.cereli.org"
- # Port mode PASSV + #Port mode PASSV 
         PassivePorts 5000 5100         PassivePorts 5000 5100
-        # Addresse de Masquage !!! A REMPLACER PAR LA VOTRE !!!+        #Addresse de Masquage !!! A REMPLACER PAR LA VOTRE !!!
         MasqueradeAddress  XXX.XXX.XXX.XXX         MasqueradeAddress  XXX.XXX.XXX.XXX
  Port 21  Port 21
Ligne 277: Ligne 270:
 </VirtualHost> </VirtualHost>
  
-# Hôte Virtuel Pour le réseau local +#Hôte Virtuel Pour le réseau local 
-# !!! A remplacer par l'adresse+#!!! A remplacer par l'adresse</file>
  
 ==== Redémarrer Proftpd ==== ==== Redémarrer Proftpd ====
Ligne 331: Ligne 324:
 </file> </file>
  
-Ajouter un # en début de ligne.+Ajouter un #en début de ligne.
  
 Redémarrer le service "proftpd" : Redémarrer le service "proftpd" :