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 26/05/2015, 11:06] 92.103.233.194 [Serveur FTP : PROFTPD] |
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 : PsqqsdqsdROFTPD ====== | + | ====== 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 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 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" : | ||