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édentes Révision précédente
Prochaine révision
Révision précédente
proftpd [Le 26/06/2010, 20:05]
89.226.206.180 "serveur"
proftpd [Le 26/01/2024, 18:31] (Version actuelle)
krodelabestiole [Serveur FTP : PROFTPD] + note FTP obsolète
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 [[:​ssh#​monter_un_repertoire_distant_navigation_via_sftp_secure_file_transfer_protocol| 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 24:
  
 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 42:
    ​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 68: Ligne 59:
 </​file>​ </​file>​
 Faites bien attention à décommenter le dernier paragraphe (intitulé "Limit WRITE everywhere in the anonymous chroot"​),​ sinon l'​utilisateur anonyme aura un accès en écriture dans le répertoire /home/ftp. Faites bien attention à décommenter le dernier paragraphe (intitulé "Limit WRITE everywhere in the anonymous chroot"​),​ sinon l'​utilisateur anonyme aura un accès en écriture dans le répertoire /home/ftp.
-Par contre, ne décommentez pas la suite (intitulée "​Uncomment this if you're brave"​).+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 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**.
  
 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 /​etc/​init.d/​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 81: Ligne 79:
 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 102: Ligne 100:
 <​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 130: Ligne 128:
 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 147: Ligne 145:
 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 153: Ligne 151:
 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 194: Ligne 192:
 </​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 207: Ligne 205:
  </​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 215: Ligne 213:
  </​Directory>​  </​Directory>​
  #  #
- # Limit by IP...+ #Limit by IP...
  #  #
  #<​Directory /​web/​zsl>​  #<​Directory /​web/​zsl>​
Ligne 230: Ligne 228:
    ​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 261: Ligne 259:
  
  
-# 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 274: Ligne 272:
 </​VirtualHost>​ </​VirtualHost>​
  
-# Hôte Virtuel Pour le réseau local +#Hôte Virtuel Pour le réseau local 
-# !!! A remplacer par l'​adresse ​ip local de votre serveur ftp +#!!! A remplacer par l'​adresse</​file>​
-<​VirtualHost 192.168.2.2>​ +
- ServerName "FTP Local"​ +
- Port 80 +
- MasqueradeAddress ​ 192.168.2.2 +
-</​VirtualHost>​ +
-</​file>​+
  
 ==== Redémarrer Proftpd ==== ==== Redémarrer Proftpd ====
  
 - Pour le mode "​indépendant":​ - Pour le mode "​indépendant":​
-Une fois les deux paramètres modifiés on demande au serveur de prendre en compte la nouvelle configuration en le relancant:+Une fois les deux paramètres modifiéson demande au serveur de prendre en compte la nouvelle configuration en le relançant:
  
-  sudo /​etc/​init.d/​proftpd restart+  sudo service ​proftpd restart
  
 - Pour le mode "​inetd":​ - Pour le mode "​inetd":​
Ligne 298: Ligne 290:
 Les utilisateurs de la machine ont un accès ftp en lecture/​écriture à leur dossier personnel avec leur login et leur mot de passe habituel. Les utilisateurs de la machine ont un accès ftp en lecture/​écriture à leur dossier personnel avec leur login et leur mot de passe habituel.
  
-De plus, tout le monde a un accès anonyme avec le login "​anonymous"​ ou "​ftp"​ et n'​importe quel mot de passe. Le dossier auquel ​il ont accès est /home/ftp : tous les fichiers et dossiers que vous y mettrez pourront être consultés par tous.+De plus, tout le monde a un accès anonyme avec le login "​anonymous"​ ou "​ftp"​ et n'​importe quel mot de passe. Le dossier auquel ​ils ont accès est /home/ftp : tous les fichiers et dossiers que vous y mettrez pourront être consultés par tous.
  
 Vous pouvez à tout moment voir qui est connecté à votre serveur avec la commande Vous pouvez à tout moment voir qui est connecté à votre serveur avec la commande
Ligne 304: Ligne 296:
 et voir les statistiques avec : et voir les statistiques avec :
   ftpstats   ftpstats
 +
 ===== Interface graphique ===== ===== Interface graphique =====
  
Ligne 312: Ligne 305:
 ===== Bugs fréquents ===== ===== Bugs fréquents =====
  
-Il arrive ​que l'on n'​arrive pas à activer proftpd, diverses erreurs s'​affichent donc dans le terminal.+==== Activation de ProFTPd ==== 
 + 
 +Il est possible ​que l'on n'​arrive pas à activer proftpd, diverses erreurs s'​affichent donc dans le terminal.
  
 Pour corriger ce problème il suffit de créer le dossier var de proftpd via cette commande: Pour corriger ce problème il suffit de créer le dossier var de proftpd via cette commande:
Ligne 319: Ligne 314:
  
 Tout devrait fonctionner maintenant. Tout devrait fonctionner maintenant.
 +
 +==== Module memcache ====
 +FIXME Il faut commenter le chargement du module memcache dans "/​etc/​proftpd/​modules.conf"​. Pour cela, procédez comme suit :
 +<​file>​
 +$ sudo nano /​etc/​proftpd/​modules.conf
 +</​file>​
 +
 +Et commentez la ligne :
 +<​file>​
 +LoadModule mod_tls_memcache.c
 +</​file>​
 +
 +Ajouter un #en début de ligne.
 +
 +Redémarrer le service "​proftpd"​ :
 +<​file>​
 +$ sudo /​etc/​init.d/​proftpd restart
 +</​file>​
 +
 +Aucun message d'​avertissement ne devrait plus apparaître.
  
 ---- ----
  
 //​Contributeurs:​ [[utilisateurs:​eks]],​ [[utilisateurs:​skateinmars]],​ [[utilisateurs:​benje]],​ [[utilisateurs:​Boris Le Hachoir]],//​ //​Contributeurs:​ [[utilisateurs:​eks]],​ [[utilisateurs:​skateinmars]],​ [[utilisateurs:​benje]],​ [[utilisateurs:​Boris Le Hachoir]],//​
  • proftpd.1277575501.txt.gz
  • Dernière modification: Le 18/04/2011, 14:38
  • (modification externe)