Protocole de transfert de fichiers (FTP) est un protocole réseau standard utilisé pour copier un fichier d'un hôte à un autre sur un réseau TCP, tel qu'Internet. FTP est construit sur une architecture client-serveur et utilise des connexions de contrôle et de données séparées entre le client et le serveur. Les utilisateurs FTP peuvent s'authentifier à l'aide d'un protocole de connexion en texte clair, mais peuvent se connecter de manière anonyme si le serveur est configuré pour le permettre.
Les premières applications client FTP étaient des outils de ligne de commande interactifs, implémentant des commandes et une syntaxe standard. Des clients d'interface utilisateur graphique ont depuis été développés pour de nombreux systèmes d'exploitation de bureau populaires utilisés aujourd'hui.
Installer le serveur FTP
Avant d'installer vsftpd, assurez-vous que le serveur a accès à Internet. Si ce n'est pas le cas, configurez le référentiel YUM local pour l'installation de vsftpd.
installez le serveur vsftpd à l'aide de la commande suivante.
# yum -y install vsftpd
Configurer le serveur FTP
Le fichier de configuration sera dans le dossier /etc/vsftp. Vsftpd.conf est le fichier de configuration du serveur FTP.
# vi /etc/vsftpd/vsftpd.conf
Ce fichier contient de nombreuses directives qui aident à renforcer la sécurité du serveur FTP; voici les directives importantes déjà placées dans le fichier.
Directive
| Dans Vsftpd.conf | Utilisations |
anonymous_enable | OUI | Contrôle si les connexions anonymes sont autorisées ou non. Si activé, les noms d'utilisateur ftp et anonyme sont reconnus comme des connexions anonymes. |
local_enable | OUI | Contrôle si les connexions locales sont autorisées ou non. Si activé, les comptes d'utilisateurs normaux dans /etc/passwd (ou partout où vos références de configuration PAM) peuvent être utilisés pour se connecter. Cela doit être activé pour que toute connexion non anonyme fonctionne, y compris les utilisateurs virtuels. |
write_enable | OUI | Cela contrôle si les commandes FTP qui modifient le système de fichiers sont autorisées ou non. Ces commandes sont : STOR, DELE, RNFR, RNTO, MKD, RMD, APPE et SITE. |
local_umask | 022 | La valeur sur laquelle umask pour la création de fichiers est défini pour local Utilisateurs. |
anon_upload_enable | OUI
Mais il a commenté le fichier, il faut le décommenter. | Si défini sur OUI, les utilisateurs anonymes seront autorisés à télécharger des fichiers sous certaines conditions. Pour que cela fonctionne, l'option write_enable doit être activée et l'utilisateur ftp anonyme doit disposer d'une autorisation d'écriture sur les emplacements de téléchargement souhaités. Ce paramètre est également requis ou les utilisateurs virtuels doivent le télécharger ; par défaut, les utilisateurs virtuels sont traités avec un privilège anonyme (c'est-à-dire limité au maximum). |
anon_mkdir_write_enable | OUI
Mais il a commenté le fichier, il faut le décommenter. | Si la valeur est OUI, les utilisateurs anonymes seront autorisés à créer de nouveaux répertoires sous certaines conditions. Pour que cela fonctionne, l'option write_enable doit être activée et l'utilisateur ftp anonyme doit avoir une autorisation en écriture sur le répertoire parent. |
écouter | OUI
| S'il est activé, vsftpd s'exécutera en mode autonome. Cela signifie que Vsftpd ne doit pas être exécuté à partir d'un inetd quelconque. Au lieu de cela, le L'exécutable Vsftpd est exécuté une fois directement. Vsftpd se chargera alors d'écouter et de gérer les connexions entrantes. |
Voici quelques autres options que vous pouvez ajouter dans le fichier pour plus de sécurité.
Directive | choix | Description |
userlist_enable | OUI/NON | S'il est activé, vsftpd chargera une liste de noms d'utilisateur, à partir du nom de fichier donné par userlist_file. Si un utilisateur essaie de se connecter en utilisant un nom dans ce fichier, il sera refusé avant qu'on lui demande un mot de passe. Cela peut être utile pour empêcher la transmission de mots de passe en clair. Voir aussi userlist_deny. |
chroot_local_user | OUI/NON | Si défini sur OUI, les utilisateurs locaux seront (par défaut) placés dans une prison chroot() dans leur répertoire d'accueil après la connexion. Avertissement :Cette option a des applications de sécurité, en particulier si les utilisateurs disposent d'une autorisation de téléchargement ou d'un accès au shell. N'activez que si vous savez ce que vous faites. Notez que ces implications de sécurité ne sont pas spécifiques à vsftpd. Ils s'appliquent à tous les démons FTP qui proposent de mettre les utilisateurs locaux dans des prisons chroot(). |
local_max_rate | En Ko Ex : local_max_rate=1000 | Le taux de transfert de données maximal autorisé, en octets par seconde, pour les utilisateurs locaux authentifiés. Par défaut :0 (illimité) |
anon_max_rate | en Ko Ex : anon_max_rate=1000 | Le taux de transfert de données maximal autorisé, en octets par seconde, pour les clients anonymes. Par défaut :0 (illimité) |
no_anon_password | OUI/NON | Lorsqu'il est activé, cela empêche vsftpd de demander un mot de passe anonyme :l'utilisateur anonyme se connectera directement. |
Ici, nous nous pencherons uniquement sur nos besoins. Désactivons la connexion anonyme en modifiant l'entrée suivante dans le fichier de configuration.
anonymous_enable=NO
Autoriser les utilisateurs locaux à se connecter à vsftpd.
local_enable=YES
Activez l'accès en écriture aux utilisateurs locaux.
write_enable=YES
Mettez les utilisateurs locaux en "chroot emprisonné" afin qu'ils ne puissent accéder à aucune partie des fichiers système
chroot_local_user=YES
Autoriser l'utilisateur chroot à écrire.
allow_writeable_chroot=YES
Redémarrez le service vsftpd.
# systemctl restart vsftpd.service
Définissez vsftpd pour qu'il démarre au démarrage du système.
# systemctl enable vsftpd.service
Pare-feu
Autorisez le port 21 dans le pare-feu, afin que vsftp soit accessible sur le réseau.
# firewall-cmd --permanent --zone=public --add-port=21/tcp # firewall-cmd --reload
SELinux
Exécutez la commande suivante pour activer l'autorisation d'écriture sur les répertoires personnels.
# setsebool -P ftp_home_dir 1
C'est tout. Pour utiliser FileZilla ou WinSCP, vous devez activer le mode passif dans vsftp .