PLAN
PRESENTATION
Le FTP (File Transfert Protocole, protocole de transfert de fichier) est un
protocole destiné à l'échange de fichier sur le réseau.
Il permet l'upload
et le download de fichiers depuis un client vers un serveur.
INSTALLATION
L'installation est des plus simple, elle consiste en l'installation du paquetage :
- proftpd
Une fois terminée, vous pouvez démarrer le service par la commande « service proftpd start ».
CONFIGURATION
Il existe plusieurs configurations possibles, c'est à vous de choisir celle qui correspond le mieux à vos besoins. Une configuration principale sera donnée en exemple, vous pouvez par la suite y ajouter une configuration globale, ou prenant en compte les connexions anonymes ou contenants des hôtes virtuels
configuration principale :
Détail ligne après ligne du fichier « /etc/proftpd.conf » permettant soit l'accès pour chaque utilisateur a son répertoire privé, soit l'accès a un répertoire partagé.
- « ServerName Serveur FTP de mon domaine.fr » : message d'accueil envoyé lors de la connection au serveur.
- « ServerType standalone » : le serveur fonctionnera sans recours au super serveur xinetd.
- « UseFtpUsers on » : utilisation du fichier /etc/ftpusers comme liste des utilisateurs.
- « AllowStoreRestart on » : autorise le client à reprendre les upload vers le serveur
- « Port 21 » : indique le port sur lequel le serveur FTP écoute.
- « Umask 022 » : Fixe le masque de creation des fichiers, ce masque est utilisé pour positionner les permissions par défaut sur les fichiers nouvellement créés.
- « TransferRate RETR 1024 » : Limite le debit en download a 1024 KiloOctets/sec.
- « TransferRate APPE, STOR 2048 » : Limite le débit en upload a 2048 KiloOctets/sec.
- « MaxInstances 30 » : Fixe le nombre maximal d'instances simultanées à 30.
- « MaxloginAttemps 3 » : Limite le nombre de tentative de login a 3
- « DeferWelcome on » : Permet de ne pas donner trop d'info sur le serveur lors d'une connexion client.
- « User nobody / Group nogroup » : Indique depuis quel compte et groupe le serveur est instancié.
- « AllowOverwrite yes » : Autorise le remplacement d'anciens fichiers par de nouveau.
- « MaxClients 10 » : Limite à 10 le nombre de clients connectés simultanément.
- « MaxClientPerHost 5 » : Limite le nombre de clients pour le même hôte à 5.
- « AlloForeignAddress on » : Permet l'upload ou le download depuis une autre adresse que celle de connexion.
- « ServerIdent on « Bienvenue sur le serveur FTP de mondomaine.fr » » : C'est le message envoyé à la connexion au serveur.
- « AccessGrantMsg « Félicitation %u vous venez de vous connecter » » : C'est le message envoyé après authentification d'un utilisateur.
- « Persitentpasswordwd off » : Oblige l'utilisateur a s'authentifier à chaque connexion.
- « DefaultRoot » : Soit vous entrez un chemin(/home/foo) qui sera celui du répertoire partagé par l'ensemble des utilisateurs de votre ftp. Soit, vous entrez le signe « ~ » qui renverra chaque utilisateur de votre ftp à son répertoire personnel.
- « <Limit></Limit> » : Les régles d'utilisation de
votre FTP contenues dans les balises Limit qui sont associées à des restrictions
et qui permettent comme l'exemple suivant l'indique de les appliquer aux
différents utilisateurs.
<Limit LOGIN>
AllowUser bob foo
DenyAll
</Limit>
Cet exemple indique que seuls les utilisateurs authentifiés peuvent accéder au service et que parmi eux seul bob et foo peuvent accéder au répertoire partagé. C'est le résultat des directives AllowUser et DenyAll incluse dans les balises <Limit>
création d'une configuration globale
Contenue entre les balises <Global></Global> elle peut faire tout
aussi bien parti du contexte principal(« server config ») ou d'un « VirtualHost »
et s'applique de la même façon à chacun d'entre eux.
Tout ce qui est défini
entre ces balises va s'appliquer à l'ensemble du contexte de configuration dans
lequel elles sont définies.
Exemple de configuration globale :
<Global>
DefaultRoot ~
AllowOverwrite yes
MaxClients 3
MaxClientsPerHost
1
UseFtpUsers on
AllowForeignAddress
</Global>
Les directives ont la même fonction et le même poids que celle utilisée hors des balises <Global> et s'appliquent au contexte ou elles sont déclarées.
configurer des connexions anonymes
Dans certain cas, il peut être utile d'offrir un accès à tous les utilisateurs se connectant à votre FTP, si celui-ci est public, vous ne pourrez certainement pas connaître tous les utilisateurs s'y connectant. Et il faudra quand même leur permettre de se connecter. C'est dans des cas comme celui-ci que les connexions anonymes sont nécessaires. Elle vous permettent de donner à tous les internautes un accès en téléchargement sur votre répertoire FTP public. L'exemple qui suit présente un cas de FTP autorisant les connexions anonymes.
<Anonymous /home/ftp>
Group public
User public
UserAlias
anonymous public
MaxClients 10
<Limit
WRITE>
DenyAll
</Limit>
<Directory
/home/ftp/upload>
<Limit READ>
DenyAll
</Limit>
<Limit
STOR>
AllowAll
</Limit>
</Directory>
</Anonymous>
Déclaration
du répertoire partagé dans la balise <Anonymous>.
Identification de
l'utilisateur et du groupe sous lequel le serveur est démarré.
Créer un
alias de l'utilisateur public appelé anonymous.
Limite les connexions à 10
clients en simultané.
Interdit via les balises <Limit WRITE>, l'écriture
dans le répertoire racine.
Créer avec la balise <Directory
/home/ftp/upload> des règles à appliquer au sous répertoire upload.
Interdit
en premier lieu l'accès en lecture, puis autorise l'accès en upload.
Il
faut maintenant que vous commentiez les lignes DefaultRoot et les balises <Limit>
du contexte parent(« server config »).
Une fois cela fait, il faut
redémarrer le serveur pour pouvoir vous connecter avec un compte « anonymous ».
les hôtes virtuels :
Les hôtes virtuels permettent de donner plusieurs
instances du serveur FTP, et cela, en affectant à chacun les paramètres déclarés
dans son hôte virtuel correspondant.
Exemple :
<VirtualHost mondomaine.fr>
ServerName « Serveur FTP
supplémentaire de mondomaine.fr »
Port 5021
MaxClients 10
MaxClientsPerHost
5
DefaultRoot /home/ftpsupplementaire
ServerIdent on « Bienvenue
sur le serveur ftp de bob »
AccessGrantMsg « Féliciation bob
vous venez de vous connecter »
<Limit LOGIN>
AllowUser bob
DenyAll
</Limit>
</VirtualHost>
La déclaration suivante, créé une nouvelle instance du serveur qui écoute sur
le port 5021, à la place du nom de domaine dans la déclaration <VirtualHost>
vous pouvez entrer une adresse ip.
Elle a pour nom le contenu de la directive
« ServerName »?
Elle autorise la connexion de 10 clients en
simultanés avec 5 connexions simultanées par client.
Elle a défini sa racine comme
étant le répertoire /home/ftp supplémentaire.
Indique le message d'accueil et
d'authentification respectivement avec les directives ServerIdent et
AccessGrantMsg.
Applique une règle de connexion dans la balise <Limit>,
n'autorisant que l'utilisateur bob.
Une fois ces lignes ajoutées au fichier « proftpd.conf »
vous devez redémarrer votre serveur.
Vous pouvez maintenant vous connecter
sur 2 serveurs ftp le principal et celui représenté par le « VirtualHost »
sur le port 5021.
Vous pouvez déclarer autant de serveur FTP que ce que vous avez de
configuration réseau différente (adresse IP/nom de domaine + port).
LIENS
http://www.system-linux.eu/index.php?post/2008/12/28/Proftpd
http://www.basicconfig.com/linuxnetwork/install_configure_proftpd_ubuntu_server