2. FTP (File Transfer Protocol). FTP est un
protocole réseau standard utilisé pour
transférer des fichiers d'un hôte à un autre
sur un réseau basé sur le protocole TCP, tel
que l'internet.
3. La transmission de fichiers par serveur FTP
présente de nombreux avantages, notamment
- Elle vous permet de transférer de nombreuses
quantités de fichiers et de répertoires/dossiers.
- En cas d'interruption de la connexion, votre fichier ne
sera pas perdu, mais vous pourrez reprendre le transfert
là où il s'est arrêté.
- FTP est plus rapide que HTTP
- Enfin, vous pouvez programmer un transfert de
fichiers.
4. Malgré les avantages susmentionnés, le protocole FTP
présente quelques inconvénients :
- Fondamentalement, le transfert simultané de plusieurs
fichiers dans une instance entraînera l'ajout de fichiers
ultérieurs dans une file d'attente et non le
téléchargement de tous les fichiers au même moment.
- Quelques points de sécurité comme l'utilisation d'une
simple attaque par force brute, n'importe quelle
personne extérieure peut y accéder.
- Vos identifiants de connexion tels que le nom
d'utilisateur et le mot de passe sont envoyés en clair.
- Avec un accès facile, un débutant, une personne
inexpérimentée peut (accidentellement) effacer le FTP ou
toute autre action majeure facilement.
5. Deux types de connexions
La connexion est une simple relation établie entre deux
points. Dans le cadre du protocole FTP, nous disposons
de deux connexions de base, à savoir la connexion de
contrôle et la connexion de données.
1. Connexion de contrôle : Il s'agit d'une connexion
initiale qui est établie dès que les données
d'identification sont envoyées et que l'un des ports
TCP 20 ou 21 est ouvert.
2. Connexion de données : Il s'agit d'une dernière
connexion établie dans le but spécifique de transférer
des données.
6. Deux types de connexions
La connexion est une simple relation établie entre deux
points. Dans le cadre du protocole FTP, nous disposons
de deux connexions de base, à savoir la connexion de
contrôle et la connexion de données.
1. Connexion de contrôle : Il s'agit d'une connexion
initiale qui est établie dès que les données
d'identification sont envoyées et que l'un des ports
TCP 20 ou 21 est ouvert.
2. Connexion de données : Il s'agit d'une dernière
connexion établie dans le but spécifique de transférer
des données.
9. Outre les deux types de connexions, le protocole
FTP fonctionne selon deux modes différents, le FTP
actif et le FTP passif. Ces modes dépendent de la
personne qui initie la connexion de données, le
client ou le serveur.
10. • En mode actif : Le serveur initie la connexion de
données et le client écoute sur un port aléatoire les
connexions de données entrantes en provenance du
serveur.
• En mode passif : Le client initie la connexion de
données en envoyant les données, et le serveur
écoute.
11. installez vsftpd à l'aide du gestionnaire de
paquets dnf
sudo dnf install -y vsftpd
12. installez vsftpd à l'aide du gestionnaire de
paquets dnf
sudo dnf install -y vsftpd
13. Configuration
Le fichier de configuration principal de vsftpd est
généralement situé dans `/etc/vsftpd/vsftpd.conf`.
14. Configuration
Le fichier de configuration principal de vsftpd
est généralement situé dans
/etc/vsftpd/vsftpd.conf
15. Configuration
anonymous_enable
Contrôle si les connexions anonymes
(sans nomd’utilisateur et mdp ) sont
autorisées ou non. Si cette option est
activée, les noms d'utilisateur ftp et
anonymous sont reconnus comme
des connexions anonymes.
16. Configuration
local_enable
Contrôle si les connexions locales sont
autorisées ou non. Si cette option est
activée, les comptes d'utilisateurs
normaux contenus dans /etc/passwd
(ou dans les références de votre
configuration PAM) peuvent être
utilisés pour se connecter. Cette
option doit être activée pour que
toute connexion non anonyme
fonctionne, y compris pour les
17. Configuration
write_enable
Cette fonction détermine si les
commandes FTP qui modifient le
système de fichiers sont autorisées ou
non. Ces commandes sont les
suivantes : STOR, DELE, RNFR, RNTO,
MKD, RMD, APPE et SITE : STOR, DELE,
RNFR, RNTO, MKD, RMD, APPE et
SITE.Valeur par défaut : NON
18. Configuration
umask_local
La valeur de l'umask pour la création
de fichiers pour les utilisateurs locaux.
NOTE ! Si vous souhaitez spécifier des
valeurs octales, n'oubliez pas le
préfixe "0", sinon la valeur sera traitée
comme un entier en base 10 !Valeur
par défaut : 077
20. Configuration
connect_from_port_20=NO
Cette option détermine si les connexions
de données de type PORT utilisent le
port 20 (ftp-data) sur la machine serveur.
Pour des raisons de sécurité, certains
clients peuvent insister pour que ce soit
le cas. Inversement, la désactivation de
cette option permet à vsftpd de
fonctionner avec un peu moins de
privilèges.
22. Configuration
chroot_local_user=YES
Lorsqu'elle est définie sur OUI, cette option limite les
utilisateurs à leur répertoire personnel. Il s'agit d'une
mesure de sécurité visant à empêcher les utilisateurs
de naviguer vers d'autres parties du système de
fichiers.
25. Configuration
userlist_enable=YES : Active la fonctionnalité de liste
d'utilisateurs.
userlist_file=/etc/vsftpd.user_list : Spécifie le chemin
d'accès au fichier de la liste d'utilisateurs.
userlist_deny=NO : Si la valeur est OUI, les utilisateurs
répertoriés dans le fichier se voient refuser l'accès ; si la
valeur est NON, seuls les utilisateurs figurant dans la
liste sont autorisés à accéder à la liste.
29. Configuration
Si "userlist_deny" est défini sur NO, seuls les utilisateurs
de la liste sont autorisés à accéder. Nous devons donc
ajouter notre utilisateur au fichier de liste
userlist_file=/etc/vsftpd.user_list .
30. Configuration
Si "userlist_deny" est défini sur NO, seuls les utilisateurs
de la liste sont autorisés à accéder. Nous devons donc
ajouter notre utilisateur au fichier de liste
userlist_file=/etc/vsftpd.user_list .
39. FTP Client
Windows
Par exemple, utilisez FileZilla pour le logiciel client
FTP. Téléchargez FileZilla à partir de ce qui suit.
⇒ https://filezilla-project.org/download.php?
type=client
40. FTP Client
Windows
Installez FileZilla sur votre PC Windows et démarrez-
le, puis l’écran suivant s’affiche.
Entrez votre nom d’hôte FTP, votre nom d’utilisateur.
mot de passe, port de connexion, comme suit.
Cliquez ensuite sur [Connexion rapide].
43. Par exemple, je peux faire
glisser ce fichier de la machine
locale vers le serveur pour
l'envoyer (upload).
FTP Client
Windows
44. et comme vous pouvez le voir, le
fichier a été transféré avec succès
FTP Client
Windows
45. Cette option représente un répertoire
dans lequel vsftpd essaiera de se
connecter après une connexion locale
(c'est-à-dire non anonyme). Les
utilisateurs ftp seront limités à l'accès
à ce répertoire.
46. Comme vous pouvez le voir,
l'utilisateur ne peut plus voir que le
dossier que nous lui avons attribué.
53. 1. Commandes d’accès
Les utilisateurs peuvent utiliser ces commandes pour accéder au système
distant.
Vous trouverez ci-dessous une liste de commandes d’accès
USER : Cette commande est utilisée pour donner des informations sur
l’utilisateur. Il ne prend qu’un seul argument, c’est-à-dire l’identifiant de
l’utilisateur.
PASS : Cette commande est utilisée pour définir le mot de passe de l’utilisateur,
ou à l’aide de cet utilisateur, il peut se connecter au système. Il ne prend qu’un
seul argument, c’est-à-dire le mot de passe de l’utilisateur.
ACCT : Il donne des informations sur le compte de l’utilisateur. Il ne prend qu’un
seul argument, c’est-à-dire le nom du compte.
QUITTER : Pour se déconnecter du système, cette commande est utilisée.
ABOR : Abandonne la commande précédente.
REIN : Il est utilisé pour réinitialiser le système.
54. 1. Commandes d’accès
Les utilisateurs peuvent utiliser ces commandes pour accéder au système
distant.
Vous trouverez ci-dessous une liste de commandes d’accès
USER : Cette commande est utilisée pour donner des informations sur
l’utilisateur. Il ne prend qu’un seul argument, c’est-à-dire l’identifiant de
l’utilisateur.
PASS : Cette commande est utilisée pour définir le mot de passe de l’utilisateur,
ou à l’aide de cet utilisateur, il peut se connecter au système. Il ne prend qu’un
seul argument, c’est-à-dire le mot de passe de l’utilisateur.
ACCT : Il donne des informations sur le compte de l’utilisateur. Il ne prend qu’un
seul argument, c’est-à-dire le nom du compte.
QUITTER : Pour se déconnecter du système, cette commande est utilisée.
ABOR : Abandonne la commande précédente.
REIN : Il est utilisé pour réinitialiser le système.
55. 2. Commandes de gestion de fichiers
Les utilisateurs peuvent accéder au système de fichiers présent sur le système
distant à l’aide de ces commandes. Il permet à un utilisateur de créer un
nouveau répertoire, de supprimer des fichiers, de naviguer dans les
répertoires, etc.
Vous trouverez ci-dessous la liste des commandes de gestion de fichiers
CWD : Cette commande permet de passer d’un répertoire à un autre. Il ne
prend qu’un seul argument, c’est-à-dire le nom du répertoire.
CDUP : Il permet de basculer vers le répertoire parent.
DELE : Il est utilisé pour supprimer le fichier du répertoire. Il ne prend qu’un
seul argument, c’est-à-dire le nom du fichier.
LIST : Il donnera une liste de tous les fichiers présents dans le répertoire
spécifié. Il ne prend qu’un seul argument, c’est-à-dire le nom du répertoire.
NLIST : Il donnera une liste de fichiers dont les attributs ne sont pas présents
dans le répertoire spécifié. Il ne prend qu’un seul argument, c’est-à-dire le nom
du répertoire.
56. 2. Commandes de gestion de fichiers
MKD : Cette commande permet de créer un nouveau répertoire. Il ne prend
qu’un seul argument, c’est-à-dire le nom du répertoire.
RMD : Cette commande permet de supprimer le répertoire. Il ne prend qu’un
seul argument, c’est-à-dire le nom du répertoire.
PWD : Il affichera le nom du répertoire courant.
RNTO : Il est utilisé pour renommer le fichier. Il prend un argument, c’est-à-dire
un nouveau nom de fichier.
SMNT : Il est utilisé pour le montage d’un système de fichiers. Il ne prend qu’un
seul argument, c’est-à-dire le nom du système de fichiers.
RNFR : Il est utilisé pour identifier un fichier qui doit être renommé. Il ne prend
qu’un seul argument, c’est-à-dire l’ancien nom de fichier.
57. 3. Commandes de formatage des
Pour définir les attributs de données, ces commandes ont été utilisées. Il
définit les attributs des données tels que le type de fichier, la structure des
données et les modes de transmission.
TYPE : Définit le type de fichier. Il faut cinq arguments pour définir le type de
fichier. A pour ASCII, E pour EBCDIC, I pour une image, N pour non-print et T
pour telnet.
STRU : Il définit l’organisation des données. Il faut trois arguments. F pour le
fichier, R pour l’enregistrement et P pour la page.
MODE : Cette commande permet de définir le mode de transmission du fichier.
Il faut trois arguments. S pour le flux, B pour bloc et C pour compressé.
58. 4. Commandes de définition de port
Il est utilisé pour définir le numéro de port pour la connexion côté client. Le
numéro de port peut être attribué à l’aide de l’une des méthodes de tromperie.
- Le client peut choisir un numéro de port éphémère à l’aide de la commande
PORT, puis l’envoyer au serveur à l’aide de l’ouverture passive. Après avoir reçu
un numéro de port éphémère, le serveur crée une ouverture active.
- Le client utilise la commande PASV et indique au serveur de choisir n’importe
quel numéro de port. Un serveur ouvre passivement sur ce numéro de port et
envoie ce numéro de port au client. Après avoir reçu un numéro de port d’un
serveur, le client émet une ouverture active pour ce numéro de port.
Vous trouverez ci-dessous la liste des commandes de définition de port
PORT : Cette commande permet à un client de choisir un numéro de port. Il ne
prend qu’un seul argument, c’est-à-dire un identifiant à six chiffres.
PASV : Cette commande permet au serveur de choisir un numéro de port.
59. 5. Commandes de transfert de fichiers
Pour le transfert de fichiers, ces commandes sont utilisées. Ces commandes
prennent un argument, c’est-à-dire le nom du fichier.
Vous trouverez ci-dessous la liste des commandes de transfert de fichiers
RETR : Le client utilise cette commande pour récupérer des fichiers sur le
serveur.
STOR : Le client utilise cette commande pour stocker des fichiers sur le serveur.
APPE : elle est similaire à la commande STON, mais si le fichier existe, les
données doivent y être ajoutées.
STOU : Elle est également similaire à la commande STON, mais chaque nom de
fichier doit être unique dans le répertoire.
ALLO : Cette commande permet d’allouer de l’espace de stockage pour les
fichiers sur le serveur.
STAT : Cette commande affichera l’état des fichiers spécifiés.
REST : cette commande positionne le marqueur de fichier aux points de
données spécifiés.
60. 6. Commandes diverses
Ces commandes sont utilisées pour fournir des informations à l’utilisateur FTP
côté client.
Vous trouverez ci-dessous la liste des commandes diverses.
AIDE : Cette commande affiche des informations sur le serveur.
NOOP : Cette commande permet de vérifier si le serveur est actif ou non.
SITE : Cette commande spécifie les commandes spécifiques. Il ne faut qu’un
seul argument, c’est-à-dire des commandes.
SYST : Cette commande affiche des informations sur le système d’exploitation
utilisé par le serveur.
66. SFTP
Créer des certificats auto-signés.
Mais si vous utilisez des certificats valides comme
ceux de Let's Encrypt ou d'autres, vous n'avez pas
besoin de créer celui-ci.
cd /etc/pki/tls/certs
67. Créer des certificats auto-signés.
Mais si vous utilisez des certificats valides comme
ceux de Let's Encrypt ou d'autres, vous n'avez pas
besoin de créer celui-ci.
openssl req -x509 -nodes -newkey rsa:3072 -keyout
vsftpd.pem -out vsftpd.pem -days 3650
SFTP
68. Vous allez être invité à saisir des informations qui seront
intégrées dans votre demande de certificat.
dans votre demande de certificat. Ce que vous allez saisir est
ce que l'on appelle un nom distinctif (Distinguished Name ou
DN).Les champs sont assez nombreux, mais vous pouvez en
laisser certains vides
Certains champs ont une valeur par défaut, Si vous entrez '.',
le champ sera laissé vide.
SFTP
74. ajoute une série de ports (21000 à
21100, TCP) aux règles du pare-feu
et le recharge.
firewall-cmd --add-service=ftp
firewall-cmd --add-port=21000-
21100/tcp
firewall-cmd --runtime-to-permanent
SFTP
76. Example de connexion (sous
Saisissez les informations de
l'utilisateur comme suit,
pour le champ de cryptage,
sélectionnez [explicit FTP
over TLS].
77. Example de connexion (sous
Saisissez les informations de
l'utilisateur comme suit,
pour le champ de cryptage,
sélectionnez [explicit FTP
over TLS].
78. Example de connexion (sous
Saisissez les informations de
l'utilisateur comme suit,
pour le champ de cryptage,
sélectionnez [explicit FTP
over TLS].
79. Le mot de passe de
l’utilisateur est requis.
Saisissez-le.
Example de connexion (sous
80. Si vous définissez un certificat auto-
signé, l’avertissement suivant
s’affiche, ce n’est pas un problème.
Allez ensuite.
Example de connexion (sous
81. Si les paramètres sont corrects, il
est possible de se connecter au
serveur FTP avec FTPS comme suit.
Example de connexion (sous