Selon les tags présents sur cette page, celle-ci n'a pas été vérifiée pour une des versions LTS supportées d'Ubuntu.
Apportez votre aide…

Ceci est une ancienne révision du document !



PROFTPD : Installer un serveur ftp

Pour installer le package, rien de plus simple, vérifiez que vos dépôts Universe sont bien activés puis :

$ sudo apt-get install proftpd

A la question "Lancer ProFTPd à partir d'inetd ou indépendamment ?", à moins de savoir ce que vous faites, répondez indépendamment.

Et voilà, vous avez un serveur ftp !

Pour éditer le fichier de configuration de proftpd, par exemple avec gedit :

$ gksudo gedit /etc/proftpd/proftpd.conf

Voilà les paramètres intéressants à changer (pour une utilisation de base, si vous voulez plus de détail réferrez-vous à la documentation) :

ServerName : le nom de votre serveur ftp

Quotas on : enlevez le # devant la ligne pour la décommentez 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" :

# A basic anonymous configuration, no upload directories.

 <Anonymous ~ftp>
   User                         ftp
   Group                        nogroup
   # We want clients to be able to login with "anonymous" as well as "ftp"
   UserAlias                    anonymous ftp
   # Cosmetic changes, all files belongs to ftp user
   DirFakeUser  on ftp
   DirFakeGroup on ftp
 
   RequireValidShell            off
 
   # Limit the maximum number of anonymous logins
   MaxClients                   10
 
   # We want 'welcome.msg' displayed at login, and '.message' displayed
   # in each newly chdired directory.
   DisplayLogin                 welcome.msg
   DisplayFirstChdir            .message
 
   # Limit WRITE everywhere in the anonymous chroot
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>

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").

Une fois la configuration modifiée, relancez le serveur avec la commande suivante :

$ sudo /etc/init.d/proftpd restart

Concernant le transfert de fichier en FTP il existe deux méthode: 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'a initier la connection et envoyer des commandes)

La deuxième méthode consiste a utiliser le mode passif: une plage de ports est utilisée, ces port étant attribués selon la configuration du serveur et le nombre d'utilisateurs. Par défaut, la plupart des clients FTP transfèrent les fichiers en mode passif et il est donc utile de s'occuper de cette partie de la configuration.

Pour configurer la plage de ports utilisée on rajoute au fichier dans la partie générale :

PassivePorts 5000 5100

Où 5000 represente le premier port utilisé et 5100 le dernier. Il est déconseillé d'utiliser des numéros de ports trop bas (inferieurs à 1000) pour ne pas interferer avec les autres services (HTTP, SSH etc…)

Chaque utilisateur occupe environ 5 ports à chaque transferts, à vous de voir combien de ports vous devrez ouvrir.

Si cette configuration suffit pour un réseau local (après ouverture des ports dans votre pare-feu), il sera plus problématique d'utiliser le FTP à distance (sur internet) si vous utilisez un routeur et le NAT (partage de connection). Pour se faire, il vous faudra tout d'abord rediriger les ports 20 et 21 (si on conserve la configuration de base à ce niveau) puis les ports utilisés pour le FTP passif (ici 5000 à 5100). Consultez la documentation de votre routeur pour cela.

Le reste de la configuration s'effectue au niveau du serveur: en effet pour effectuer un transfert en mode passif, le serveur doit spécifier l'adresse ip publique du serveur. Il faut donc lui indiquer dans le fichier de configuration (si vous avez une connection avec IP dynamique cela risque de poser problème et je vous déconseille de faire du FTP en passif dans ce cas-là)

Proftpd Derrière un routeur NAT

Rajoutez dans votre fichier de configuration

MasqueradeAddress  XXX.XXX.XXX.XXX

ou XXX.XXX.XXX.XXX est votre adresse IP publique.

#
# /etc/proftpd.conf -- Masquerade avec Virtual Host Local .
# 

ServerName			"NOM_DU_SERVEUR"
ServerType			standalone
DeferWelcome			off

MultilineRFC2228		on
DefaultServer			on
ShowSymlinks			on

TimeoutNoTransfer		600
TimeoutStalled			600
TimeoutIdle			1200

DisplayConnect 			before.msg
DisplayLogin                    welcome.msg
DisplayFirstChdir               .message

ListOptions                	"-l"

DenyFilter			\*.*/

# Utilisation de NIS ou LDAP:
#PersistentPasswd		off

# Utilisation de TLS:
#TLSEngine 			on

# Utilisation des Quotas:
Quotas				on

# Utilisation des Ratio:
#Ratios				on

# Port de communication du serveur (standard 21).
Port				21

# Port mode PASSIV 
PassivePorts 60000 60500

# Addresse de Masquage !!! A REMPLACER PAR LA VOTRE !!!
MasqueradeAddress  XXX.XXX.XXX.XXX

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances			30

# utilisateur et groupe du serveur.
User				nobody
Group				nogroup

# Umask 022 interdit l'écriture et la creation de fichier et répertoire.
Umask				022  022
# Normally, we want files to be overwriteable.
AllowOverwrite			off

# 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
# It is on by default. 
#DelayEngine 			off

# Chroot PROFTPD
DefaultRoot ~

# Connection annonyme et des utilisateur à partir du net de du réseau local

 <Anonymous ~ftp>
   User				ftp
   Group			nogroup
#   # Alias pour la connection de l utilisateur anonyme
   UserAlias			anonymous ftp
#   # n'utiliser que des lais authentifier
   AuthAliasOnly on
#   # Cosmetic changes, all files belongs to ftp user
   DirFakeUser	on ftp
   DirFakeGroup on ftp
# Hide all files owned by user 'root'
   HideUser			root
# 
   RequireValidShell		off
# 
  # Message et nombre maximum de connections
  MaxClients			50 "Désolé, le maximum de %m utilisateurs est atteint -- réessayez plus tard"

#   # Limit WRITE everywhere in the anonymous chroot
   <Directory *>
     <Limit RMD DELE MKD STOR WRITE>
        DenyAll
     </Limit>
     <Limit CWD READ>
        AllowAll
     </Limit>
	
   </Directory>
</Anonymous>

<VirtualHost 192.168.2.2>
ServerName "FTP Local"
DeferWelcome			off
ShowSymlinks			on
TimeoutNoTransfer		600
TimeoutStalled			600
TimeoutIdle			1200
DisplayConnect 			before.msg
DisplayLogin                    welcome.msg
DisplayFirstChdir               .message
ListOptions                	"-l"
DenyFilter			\*.*/
#PersistentPasswd		off
#TLSEngine 			on
#Quotas				on
#Ratios				on
Port				21
User				nobody
Group				nogroup
Umask				022  022
AllowOverwrite			on
DefaultRoot ~
 <Anonymous ~ftp>
   User				ftp
   Group			nogroup
   UserAlias			anonymous ftp
   AuthAliasOnly on
   DirFakeUser	on ftp
   DirFakeGroup on ftp
   HideUser			root
   RequireValidShell		off
  MaxClients			50 "Désolé, le maximum de %m utilisateurs est atteint -- réessayez plus tard"
   <Directory *>
     <Limit RMD DELE MKD STOR WRITE>
        DenyAll
     </Limit>
 <Limit CWD READ>
        AllowAll
     </Limit>
   </Directory>
</Anonymous>
</VirtualHost>
<code>
==== Redémarrer Proftpd ====

Une fois les deux paramètres modifiés on demande au serveur de prendre en compte la nouvelle configuration en le relancant:

<code>
$ sudo /etc/init.d/proftpd restart

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.

Vous pouvez à tout moment voir qui est connecté à votre serveur avec la commande

$ ftpwho

et voir les statistiques avec :

$ ftpstats

Vous pouvez malgré tout utiliser une interface graphique pour gérer proftpd. Elle se nomme gproftpd. vous pouvez la trouver sur les dépôts de dapper drake, ou alors utliser le backport fait par gloubiboulga. Pour cela, rajoutez ces lignes dans votre fichier /etc/apt/sources.list :

deb http://gauvain.tuxfamily.org/repos breezy backports contrib
deb-src http://gauvain.tuxfamily.org/repos breezy backports contrib

Note : Gproftpd est inclus dans la version 6.06 (Dapper Drake) il ets donc inutile d'ajouter ces depôts pour les possesseurs de cette version.


Contributeurs: eks skateinmars benje

  • applications/proftpd.1164499740.txt.gz
  • Dernière modification: Le 18/04/2011, 14:46
  • (modification externe)