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 11/11/2011, 17:08] tuxmouraille [Configuration] |
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 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 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 105: | 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 133: | 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 150: | 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 156: | 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 197: | 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 210: | 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 218: | Ligne 213: | ||
</Directory> | </Directory> | ||
# | # | ||
- | # Limit by IP... | + | #Limit by IP... |
# | # | ||
#<Directory /web/zsl> | #<Directory /web/zsl> | ||
Ligne 233: | 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 264: | 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 277: | 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 ==== | ||
Ligne 291: | Ligne 280: | ||
Une fois les deux paramètres modifiés, on demande au serveur de prendre en compte la nouvelle configuration en le relançant: | Une fois les deux paramètres modifiés, on 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 315: | Ligne 304: | ||
===== Bugs fréquents ===== | ===== Bugs fréquents ===== | ||
+ | |||
+ | ==== Activation de ProFTPd ==== | ||
Il est possible que l'on n'arrive pas à activer proftpd, diverses erreurs s'affichent donc dans le terminal. | Il est possible que l'on n'arrive pas à activer proftpd, diverses erreurs s'affichent donc dans le terminal. | ||
Ligne 323: | 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]],// |