Dans ce guide, nous verrons comment configurer un serveur FTP (ProFTPd) pour transférer des fichiers entre votre PC et votre serveur.
Conditions préalables
- Une instance de serveur Vultr Debian ou Ubuntu récemment déployée.
- Un utilisateur Sudo .
Installation
Mettez à jour le système.
sudo apt-get update
sudo apt-get dist-upgrade
Installez proftpd.
sudo apt-get install proftpd
Lors de l'installation, il vous sera demandé si vous souhaitez installer en mode inetdou standalone. Choisissez le standalonemode.
Configuration
Ouvrez le fichier de configuration Proftpd.
sudo nano /etc/proftpd/proftpd.conf
Le fichier ressemblera au texte suivant.
#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes, reload proftpd after modifications, if
# it runs in daemon mode. It is not required in inetd/xinetd mode.
#
# Includes DSO modules
Include /etc/proftpd/modules.conf
# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6 on
# If set on you can experience a longer connection delay in many cases.
IdentLookups off
ServerName "Debian"
ServerType standalone
DeferWelcome off
MultilineRFC2228 on
DefaultServer on
ShowSymlinks on
TimeoutNoTransfer 600
TimeoutStalled 600
TimeoutIdle 1200
DisplayLogin welcome.msg
DisplayChdir .message true
ListOptions "-l"
DenyFilter \*.*/
# Use this to jail all users in their homes
# DefaultRoot ~
# Users require a valid shell listed in /etc/shells to login.
# Use this directive to release that constrain.
RequireValidShell off
# Port 21 is the standard FTP port.
Port 21
...
Principales directives de configuration
ServerName: Spécifie le nom du serveur FTP. Ce nom s'affiche lorsque les clients se connectent au serveur.
TimeoutIdle: Le temps, en secondes, après lequel un client est automatiquement déconnecté s'il n'est plus actif sur le serveur FTP.
DefaultRoot: Contrôle le répertoire racine par défaut attribué à un utilisateur lors de la connexion.
Port: Le port de connexion au serveur FTP. Presque tout le temps, ce port est 21et vous ne devriez pas avoir à le changer, sauf si vous êtes bloqué par un pare-feu.
PassivePorts: Restreint la plage de ports à partir de laquelle le serveur sélectionnera lors de l'envoi de la PASVcommande à partir d'un client.
MaxInstances: Le nombre maximum de connexions simultanées que vous souhaitez autoriser sur votre serveur FTP.
Maintenant, nous devons activer l' DefaultRootoption. pour ce faire, recherchez la DefaultRootligne commentée et décommentez-la.
DefaultRoot ~
La valeur ~signifie que l'utilisateur sera limité au dossier personnel (par exemple /home/user12).
Remarque : Par défaut, une personne qui se connecte au serveur FTP peut accéder à tous les dossiers du serveur, il est donc recommandé d'activer l'option DefaultRoot.
Changez le ServerName.
ServerName : the name of your FTP server
Recherchez et décommentez les lignes suivantes (en supprimant le #au début de chaque ligne) pour autoriser les connexions anonymes à votre serveur.
# 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>
Remarque : Si vous activez les connexions anonymes sur votre serveur FTP, tout utilisateur peut s'y connecter. Ils auront accès au /home/ftprépertoire et pourront lire et télécharger des fichiers, mais pas modifier ni ajouter de fichiers.
Vous pouvez interdire à l'utilisateur root d'accéder à FTP en ajoutant la ligne suivante.
RootLogin off
Une fois la configuration modifiée, redémarrez le serveur.
sudo service proftpd restart
Remarque : Si une ligne d'erreur s'affiche comme "impossible de résoudre l'hôte", sachez que cela n'a pas d'importance et vous pouvez l'ignorer.
Ajouter un utilisateur FTP
Ajoutez un utilisateur, par exemple, " myuser".
useradd --shell /bin/false myuser
Créez le répertoire personnel de notre utilisateur " myuser".
mkdir /home/myuser
Modifiez la propriété de ce répertoire pour l'utilisateur et le groupe " myuser".
chown myuser:myuser /home/myuser/
Définissez un mot de passe pour l'utilisateur " myuser".
passwd myuser
Connectez-vous à votre serveur FTP
Maintenant que votre serveur FTP est installé et configuré, vous souhaitez pouvoir vous y connecter.
Tapez simplement ftp://server_ip_addressdans la barre d'adresse de votre navigateur. Remplacez server_ip_addresspar l'adresse IP de votre serveur. Il vous sera alors demandé vos usernameet password.
Vous pouvez voir qui est connecté à votre serveur FTP avec la commande suivante.
ftpwho
En outre, vous pouvez voir des statistiques.
ftpstats