# FTP

File Transfer Protocol, ou FTP, est un protocole de communication destiné au partage de fichiers sur un réseau TCP/IP. Il permet, depuis un ordinateur, de copier des fichiers vers un autre ordinateur du réseau, ou encore de supprimer ou de modifier des fichiers sur cet ordinateur.

# Présentation

# Qu’est-ce que le FTP ?

**FTP**, pour *File Transfer Protocol* (Protocole de transfert de fichiers), est une méthode utilisée pour transférer des fichiers entre un ordinateur local et un serveur distant sur un réseau, comme Internet.

Il permet de **télécharger** (récupérer) ou **uploader** (envoyer) des fichiers, facilitant ainsi la gestion des données à distance. FTP est un protocole ancien, mais il reste encore largement utilisé pour des tâches simples de transfert de fichiers.

# À quoi sert le FTP ?

Le FTP est utilisé pour partager des fichiers, comme des documents, des images, ou des programmes, entre différentes machines. Par exemple, un administrateur peut utiliser FTP pour envoyer des fichiers vers un serveur web ou récupérer des sauvegardes.

Il permet aussi de gérer les fichiers à distance, avec la possibilité de créer des dossiers, supprimer des fichiers, ou modifier des permissions, selon les droits accordés.

# Comment fonctionne le FTP ?

FTP fonctionne avec un modèle client-serveur. Le **client FTP** est un logiciel installé sur votre ordinateur qui se connecte au **serveur FTP** via une adresse IP ou un nom de domaine.

Pour accéder au serveur, il faut généralement un **identifiant** et un **mot de passe**. Une fois connecté, le client peut naviguer dans les dossiers du serveur et transférer des fichiers dans les deux sens.

Il existe plusieurs modes de transfert et de connexion, certains sécurisés (FTPS, SFTP) et d’autres non, selon les besoins et la configuration.

# Pourquoi utiliser FTP ?

FTP est simple à mettre en place et à utiliser, même pour les débutants. Il reste efficace pour transférer rapidement des fichiers entre machines.

Cependant, il est important de noter que le FTP classique n’est pas sécurisé car les données sont envoyées en clair. Pour un usage sécurisé, il vaut mieux privilégier des variantes comme **SFTP** (FTP sécurisé via SSH) ou **FTPS** (FTP avec chiffrement SSL/TLS).

# Cas d’usage courants

FTP est souvent utilisé pour :

- Mettre en ligne des fichiers sur un site web,
- Transférer des sauvegardes entre serveurs,
- Partager des fichiers volumineux avec des collègues ou clients,
- Gérer les fichiers d’un serveur distant depuis un poste local.

# Installation rapide

Pour utiliser FTP, il faut :

1. Installer un **serveur FTP** sur la machine qui héberge les fichiers (par exemple vsftpd ou proftpd sur Linux),
2. Installer un **client FTP** sur la machine qui souhaite accéder aux fichiers (comme FileZilla, WinSCP, ou la ligne de commande),
3. Configurer les utilisateurs et les permissions sur le serveur,
4. Se connecter via le client en renseignant l’adresse du serveur, le nom d’utilisateur et le mot de passe.

# En résumé

**FTP** est un protocole classique et facile d’accès pour transférer des fichiers entre ordinateurs sur un réseau. Malgré ses limites de sécurité, il reste utile pour des transferts simples, à condition de choisir une version sécurisée pour protéger les données.

# Installation - Préparation

## <span id="bkmrk-pr%C3%A9sentation-1">Présentation</span>

Dans cette fiche, nous allons créer un serveur **FTP** avec un accès utilisateur ( **login/ mot de passe** ) qui auront, en plus de leur répertoire personnel, un répertoire de groupe. De plus nous créerons un utilisateur **admins** ( différent de **Root** ) qui pourra gérer tous les répertoires de groupes.

## <span id="bkmrk-d%C3%A9finition-des-utili-1">Définition des utilisateurs</span>

- **micka**, dans le groupe compta
- **albert**, dans le groupe com
- **jean** qui sera “l’admin” du ftp

## Création des utilisateurs et des groupes

```bash
adduser micka
adduser albert
adduser jean
groupadd compta
groupadd com
addgroup albert com
addgroup micka compta
```

## <span id="bkmrk-cr%C3%A9ation-des-r%C3%A9perto-1">Création des répertoires pour les groupes</span>

```
mkdir /home/compta
mkdir /home/com
chgrp compta compta
chgrp com com
Nous donnons un droit de lecture, écriture et execution aux membres du groupes et au propriétaire du groupe
chmod 770 compta
chmod 770 com
Nous metttons jean en tant que propriétaire des groupes.
chown jean compta
chown jean com
mkdir /home/micka/compta
mkdir /home/albert/com
cd /home/jean mkdir com
mkdir compta
```

## <span id="bkmrk-installation-du-ftp-1">Installation du FTP</span>

```
apt-get install proftpd
```

Sélectionnez le mode indépendant (**standalone**) lorsque que l’on vous demande de choisir entre le mode passif et le mode **standalone.**  
Le fichier de configuration se situe dans **/etc/proftpd/proftpd.conf** . Pensez à faire une copie du fichier original avec la commande :

```
cp proftpd.conf prodftpd.conf.bak
```

## Création des liens entre les répertoires

Bien que nous avons créé les groupes, les users et l’arborescence qui en découle, les dossiers **/home/compta** et **/home/com** ne sont pas les mêmes que les dossier **/home/micka/**compta et /**home/albert/com.** Pour créer un lien entre ces répertoires, nous devons créer un point de montage dans le fichier /**etc/fstab .** Pour créer un lien entre ces répertoires, nous devons créer un point de montage dans le fichier

```
t-get install proftpd
```

Nous allons ajouter les lignes qui permettent de lier ces dossiers, pour cet exemple les lignes seront les suivantes

```
/home/com /home/albert/com auto bind,defaults 0 0
/home/compta /home/micka/compta auto bind,defaults 0 0
/home/compta /home/jean/compta auto bind,defaults 0 0
/home/com /home/jean/com auto bind,defaults 0 0
```

Vous pouvez sauvegardez et quittez le document. Nous allons maintenant monter ces points de montages grâce à la commande suivante :

```
mount -a
```

En cas d’erreur, le démontage d’un lien se fait avec la commande **umount**. Ainsi, la création d’un fichier répertoire dans **/home/com**, se répercutera dans le répertoire **/home/albert/com/** ce qui donne un partage de dossier sur le serveur **FTP**. Il est aussi possible de modifier les droits des utilisateurs écriture/lecture/exécution sur ces répertoires. Par exemple si non voulons que l'utilisateur **micka** ai seulement les droits de lecture sur le dossier compta :

```
cd home
chmod 750 comtpa
```

Ainsi, le propriétaire du répertoire ( Jean ) aura tout les droits, les membres du groupe ( compta ) auront seulement les droits de lecture et d’exécution et les autres n’auront aucun droits. Ce changement de droits se répercute sur tout les liens de ce répertoire ( ici **/home/micka/compta** ). Nous avons maintenant un accès **FTP** avec une demande d'identification et des dossiers de groupes.  
Il faut souligner que l'accès **FTP** n'est par défaut pas sécurisé, grâce à une analyse de trame nous pouvons voir les mot de passe/ Login transitant sur le réseau. De plus, un point de sécurité à combler et le fait que la création d'utilisateurs sur le serveur ftp leur donne la possibilité de se connecter en **SSH** avec ces mêmes **logins /password**.

# Connexion

## <span id="bkmrk-navigateur-1">Navigateur</span>

**ftp:\\\\IP\_FTP**

Normalement, à cette connexion, une fenêtre de Log apparaîtra puisque nous n’avons pas autorisé la connexion en Anonyme. Si nous l’avions autorisée nous aurions directement été connecté en anonyme. L’identification se serait alors faite avec cette URL **ftp:\\\\Login@IP\_FTP.**

## <span id="bkmrk-filezilla-%5B-client-f-1">FileZilla \[ Client FTP \]</span>

[http://filezilla-project.org/download.php?type=client](https://filezilla-project.org/download.php?type=client)

- **Hôte** =&gt; IP\_FTP
- **Login** =&gt; Votre login
- **Mdp** =&gt; Votre mdp
- **Port** =&gt; 21

## CLI Windows

```
C:\ ftp
ftp>open
Vers IP_FTP
```

Puis votre Login et Mot de passe seront demandés.