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 04/01/2016, 14:37] 217.128.187.94 [Introduction] |
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, byuvtycftyvjutfbgtrftygu_frè-frè- | + | </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 26: | 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 45: | 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 64: | 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 95: | 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 123: | 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 140: | 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 146: | 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 187: | 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 200: | 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 208: | Ligne 213: | ||
</Directory> | </Directory> | ||
# | # | ||
- | # Limit by IP... | + | #Limit by IP... |
# | # | ||
#<Directory /web/zsl> | #<Directory /web/zsl> | ||
Ligne 223: | 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 254: | 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 267: | 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 297: | 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 323: | 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" : |