Actualités du digital

Comment configurer un serveur FTP Linux pour des transferts de fichiers rapides – CloudSavvy IT

logo filezilla

FTP, ou File Transfer Protocol, est un protocole standard pour l'envoi et la réception de fichiers à partir de serveurs distants. Il est plus facile à utiliser que les alternatives de ligne de commande comme scp, en particulier avec les interfaces GUI comme FileZilla.

Qu'est-ce que FTP?

Dans les temps anciens d'Internet, les serveurs FTP publics étaient un moyen très courant de mettre des fichiers à la disposition d'un grand nombre de personnes. Aujourd'hui, FTP est toujours là et largement utilisé pour les tâches administratives.

Alors qu'une certaine forme de FTP CLI est livrée avec la plupart des principaux systèmes d'exploitation, les clients GUI tels que FileZilla simplifient le processus de déplacement de fichiers entre les serveurs comme glisser-déposer du stockage local vers le stockage distant, ou vice versa. Tout le trafic sous-jacent est géré via FTP.

Pour configurer cela, vous devez installer et configurer un serveur FTP, tel que vsftpd, sur la machine distante à laquelle vous souhaitez accéder.

Il convient de noter que les utilisateurs connectés via FTP auront accès à votre système, tout comme vous. Vous pouvez prendre certaines mesures pour atténuer ces risques, telles que l'accès à la liste blanche et le verrouillage des utilisateurs dans leurs répertoires personnels.

Installation de vsftpd

Pour commencer, installez vsftpd à partir du gestionnaire de packages de votre distribution. Pour les systèmes basés sur Debian comme Ubuntu, cela proviendrait apt:

sudo apt-get install vsftpd

Ensuite, vous devrez démarrer le service et le configurer pour qu'il s'exécute au moment du démarrage:

systemctl start vsftpd
systemctl enable vsftpd

FTP a deux méthodes principales d'authentification:

  • FTP anonyme, où n'importe qui peut se connecter sans mot de passe. Ceci est utilisé pour le partage de fichiers publics et est désactivé par défaut.
  • Connexion utilisateur local, qui permet à tout utilisateur de /etc/passwd pour accéder au FTP en utilisant un nom d'utilisateur et un mot de passe.

Vous souhaiterez probablement activer la connexion des utilisateurs locaux et désactiver l'accès anonyme. La connexion à FTP en utilisant votre compte utilisateur vous donnera accès à tout ce que votre compte peut accéder.

S'ouvrir /etc/vsftpd.conf dans votre éditeur de texte préféré et remplacez la ligne suivante par YES:

local_enable=YES

Si vous souhaitez pouvoir télécharger des fichiers, modifiez write_enable à YES ainsi que:

write_enable=YES

Avec un redémarrage de vsftpd (systemctl restart vsftpd), vous devriez maintenant pouvoir vous connecter au FTP en utilisant un client comme FileZilla ou la CLI sur votre machine personnelle.

Si vous souhaitez uniquement activer FTP pour des utilisateurs spécifiques, vous pouvez accéder à la liste blanche. S'ouvrir /etc/vsftpd.userlistet ajoutez les noms de chaque compte que vous souhaitez activer sur des lignes séparées.

nano /etc/vsftpd.userlist

Ensuite, ajoutez les lignes suivantes à /etc/vsftpd.conf:

userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Cela limitera l'accès aux seuls utilisateurs définis dans le fichier de liste d'utilisateurs et refusera tous les autres.

Si vous ne voulez pas que les utilisateurs accèdent à des fichiers en dehors de leur répertoire personnel, vous pouvez les placer dans une prison chroot, ce qui les empêchera d’interagir avec les répertoires de niveau supérieur. Vous pouvez l'activer en décommentant la ligne suivante dans /etc/vsftpd.conf:

chroot_local_user=YES

Redémarrer vsftpd avec systemctl restart vsftpd pour appliquer les modifications.

Configuration de FTPS

Le trafic FTP standard est envoyé non chiffré comme HTTP. Ce n’est évidemment pas génial, vous devez donc configurer vsftpd pour crypter le trafic avec TLS.

Pour ce faire, générez une nouvelle clé et signez une requête avec openssl:

openssl genrsa -des3 -out FTP.key

openssl req -new -key FTP.key -out certificate.csr

vsftpd nécessite la suppression du mot de passe de cette clé, alors copiez la clé et renvoyez-la openssl:

cp FTP.key FTP.key.orig

openssl rsa -in FTP.key.orig -out ftp.key

Enfin, générez un certificat TLS à l'aide de cette clé:

openssl x509 -req -days 365 -in certificate.csr -signkey ftp.key -out mycertificate.crt

Copiez la clé et le certificat dans /etc/pki/tls/certs/:

cp ftp.key /etc/pki/tls/certs/

cp mycertificate.crt /etc/pki/tls/certs

Maintenant que tous les certificats sont configurés, vous pouvez à nouveau ouvrir /etc/vsftpd.confet ajoutez les lignes suivantes:

ssl_enable=YES
allow_anon_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/pki/tls/certs/mycertificate.crt
rsa_private_key_file=/etc/pki/tls/certs/ftp.key
ssl_ciphers=HIGH
require_ssl_reuse=NO

Redémarrer vsftpd avec systemctl restart vsftpd pour appliquer les modifications.

Related Posts