Voila je ne vais pas ici faire un tuto sur comment monter un serveur ftp car il y a déjà de très nombreux tuto complet sur ce sujet comme celui de lea-linux. Non je vais plutôt vous donner la configuration que j'utilise et que je considère comme pratique et assez sécurisé. Je ne rentrerais pas trop dans les détails de l'ouverture de port ou de la redirection DNS qui change beaucoup selon votre configuration.
J'utilise comme serveur ftp le très bon proftpd, j'ai entendu de nombreuses plaintes a son sujet mais il ne m'a jamais posé le moindre problèmes que ça soit en configuration, en utilisation ou en sécurité donc je continue de l'utiliser (puis en plus ça me permet de récupérer les fichiers de conf que j'utilisais avant). En gros ma configuration est constitué de deux utilisateurs un pour les connexions anonymes qui ne peuvent que downloader des fichiers et un pour les connexions avec login et mot de passe sur lequel les utilisateurs peuvent downloader et uploader des fichiers.
Pour ce qui est de la configuration extérieur au serveur ftp il vous faut si vous avez un routeur rediriger le port 21 vers le serveur, si vous avez un firewall il vous faut ouvrir ce port et laisser les ports 60000 a 60500 ouvert en mode passif. De plus, pour éviter d'avoir a redonner aux utilisateurs de votre ftp votre adresse ip pour qu'il puisse s'y connecter, il vous faudra créer un DNS dynamique sur no-ip.com ou le site dyndns.
Attaquons maintenant la configuration proprement dites du serveur ftp. Tout d'abord l'installation il suffit de faire : apt-get install proftpd en console et de laisser apt faire son travail. Apt-get vous posera une question obscure, en réalité il vous demande la méthode que vous voulez utilisez pour lancer le serveur. Je vous conseille de choisir “standalone”.
Voila votre serveur est maintenant installé. On va le configurer. Ouvrez avec un éditeur de texte le fichier /etc/proftpd.conf en root : sudo kwrite /etc/proftpd.conf et maintenant remplacez le contenu de votre fichier par ceci:
ServerName "Kubuntu"
ServerType standalone
# Pour ne pas donner d'info sur le serveur
DeferWelcome on
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
# Limitation de la bande passante en lecture :
TransferRate RETR 12
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayFirstChdir .message
ListOptions "-l"
DenyFilter \*.*/
<Global>
#bloque l'utilisateur dans son home (cela évite que des impudents se proméne sur tout votre disque)
DefaultRoot ~
AllowOverwrite yes
AccessGrantMsg "Bienvenue %u ici"
</Global>
# Port 21 is the standard FTP port.
Port 21
MaxInstances 30
# Set the user and group that the server normally runs at.
User nobody
Group nogroup
# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwriteable.
AllowOverwrite on
# A basic anonymous configuration, no upload directories.
<Anonymous /home/ftp>
MaxClients 5 "Nombre de clients maximum atteints : 5"
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
# Limitation de la bande passante en lecture :
TransferRate RETR 11
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>
vous devez maintenant sauvez cette configuration et relancez le serveur pour cela voici la commande : sudo /etc/init.d/proftpd restart
voila votre serveur est configuré il ne vous reste plus qu'a ajouter les utilisateurs avec la commande adduser. Vous devrez rajouter l'utilisateur ftp et un utilisateur quelconque que l'on nommera ftpuser et qui aura pour mot de passe motdepasse. Voila les gens qui se connecteront a votre serveur auront accés aux fichiers que vous mettez dans /home/ftp en lecture seule, pour ceux qui se connectent en anonyme, et aux fichiers de
On va maintenant sécurisé notre serveur. En effet il y a certains utilisateurs a qui il vaut mieux interdire l'accés au ftp comme votre utilisateur principal qui a les droits root. Vous allez donc ajouté les noms des utilisateurs pour qui vous voulez interdire les connexions ftp (essentiellement votre utilisateur principal) au fichier /etc/ftpusers.
Voila on en a fini votre serveur ftp est configuré et vous permet de partager facilement des fichiers avec d'autres utilisateur.
Quelques commandes de proftpd :
ftpwho “permet de savoir ce qu'il se passe a l'instant sur votre serveur”
ftpstats “permet d'avoir quelques statistiques sur votre serveur”
tail -f /var/log/xferlog “permet de suivre en continu l'activité de votre serveur et de savoir ce qu'il s'y est passé pendant votre absence”
sudo /etc/init.d/proftpd.conf [start|stop|restart] “permet en fonction de la commande passer de démarrer, arréter, rebooter le serveur ftp”
ftp://localhost “pour verifier que votre ftp fonctionne bien comme vous voulez depuis votre ordinateur”
ftp://votre_ip ou ftp://votre_dns “pour que les utilisateurs se connectent a votre ftp”
a suivre le même genre de tutoriel mais pour un serveur ssh qui par son coté sécurisant permet de laisser l'utilisateur principal se connecter et permet de plus nombreuses choses.
Commentaires