Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| proftpd [Le 13/07/2016, 15:57] 195.154.11.37 [Installation] Vocabulaire : « package » → « paquet » | 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 ====== | ||
| + | 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, | ||
| - | ===== Introduction ===== | + | <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]]). | |
| - | 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, | + | </note> | 
| - | donc pour utiliser la majorité des fonctions de proftpd sans trop de difficulté utilisez l'interface graphique [[:gproftpd]] | + | |
| ===== Installation ===== | ===== Installation ===== | ||
| - | Pour installer le paquet, 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]]**. | + | [[: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 25: | 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 44: | 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 63: | Ligne 61: | ||
| 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 94: | 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 122: | 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 139: | 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 145: | 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 186: | 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 199: | 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 207: | Ligne 213: | ||
| </Directory> | </Directory> | ||
| # | # | ||
| - | # Limit by IP... | + | #Limit by IP... | 
| # | # | ||
| #<Directory /web/zsl> | #<Directory /web/zsl> | ||
| Ligne 222: | 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 253: | 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 266: | 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</file> | + | #!!! A remplacer par l'adresse</file> | 
| ==== Redémarrer Proftpd ==== | ==== Redémarrer Proftpd ==== | ||
| Ligne 296: | Ligne 302: | ||
| Elle se nomme [[:gproftpd]]. | Elle se nomme [[:gproftpd]]. | ||
| - | |||
| - | Remarque : attention Gadmin est buggé, à ne pas utiliser pour la 12.04 LTS | ||
| ===== Bugs fréquents ===== | ===== Bugs fréquents ===== | ||
| Ligne 322: | Ligne 326: | ||
| </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" : | ||