Créer un serveur FTP simple avec un Raspberry Pi

Créer un serveur FTP simple avec un Raspberry Pi

Bien que FTP (File Transfer Protocol) soit une technologie ancienne, elle est toujours utilisée par de nombreux systèmes et périphériques matériels. Certaines caméras IP vous permettent d’enregistrer des photos sur un serveur FTP et vous pouvez en créer une à l’aide d’un Raspberry Pi. Si vous avez le choix, vous feriez mieux d’utiliser SFTP, mais si votre appareil ne prend en charge que FTP, ce guide vous aidera à créer un serveur FTP.

Nous utiliserons vsftpd car c’est une application Linux populaire qui est sécurisée, stable et extrêmement rapide.

La configuration initiale

Tu auras besoin de :

  • Un Raspberry Pi
  • Carte SD avec la dernière image Raspbian
  • Source de courant
  • Clavier et moniteur (facultatif)

Commencez avec une nouvelle carte SD contenant la dernière image Raspbian. Le guide Comment créer une nouvelle carte SD pour Raspberry Pi sous Windows vous expliquera comment procéder sous Windows. Configurez votre Pi et connectez-le à votre réseau via Ethernet ou WiFi. Si vous souhaitez effectuer la configuration FTP à distance, suivez ce guide pour activer SSH.

Obtenez l’adresse IP du réseau en utilisant :

ifconfig

Il sera très probablement de la forme 192.168.###.###.

Étape 1 – Installer vsftpd

Utilisez la commande suivante pour mettre à jour vos référentiels et installer le logiciel vsftpd :

sudo apt-get update
sudo apt-get install vsftpd

Étape 2 – Mettre à jour le fichier de configuration

Une fois installé vous pouvez maintenant éditer le fichier de configuration vsftpd en utilisant :

sudo nano /etc/vsftpd.conf

Dans ce fichier retrouvez les lignes suivantes et dé-commentez-les en supprimant le caractère # :

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
chroot_local_user=YES

Ajoutez les lignes suivantes à la fin du fichier :

user_sub_token=$USER
local_root=/home/$USER/ftp

Enregistrez et quittez en utilisant CTRL-X, Y et ENTER.

Étape 3 – Créer un répertoire FTP pour l’utilisateur Pi

Pour vous permettre de vous connecter au serveur FTP en utilisant l’utilisateur Pi par défaut, nous devons créer quelques répertoires :

mkdir /home/pi/ftp
mkdir /home/pi/ftp/files

Modifiez les permissions sur le répertoire ftp en utilisant :

chmod a-w /home/pi/ftp

Étape 4 – Créer un nouvel utilisateur (facultatif)

Si vous souhaitez vous connecter au serveur avec un autre nom d’utilisateur, nous pouvons créer un nouvel utilisateur. Dans cet exemple, nous allons créer un nouvel utilisateur appelé « camera » :

sudo adduser camera

Un mot de passe vous sera demandé. Assurez-vous que c’est un bon !

Les autres détails peuvent être laissés vides ou renseignés comme bon vous semble.

Vous devriez voir quelque chose comme ceci sur votre écran :

Créer un nouvel utilisateur

Ce nouvel utilisateur aura également besoin d’un ensemble de répertoires FTP :

mkdir /home/camera/ftp
mkdir /home/camera/ftp/files

Une fois créé, modifiez les autorisations en utilisant :

chmod a-w /home/camera/ftp

Ce n’est pas nécessaire pour le transfert de fichiers de base mais le nouvel utilisateur peut avoir la même possibilité d’utiliser « sudo » en exécutant la commande :

sudo adduser camera sudo

Étape 5 – Redémarrez le serveur FTP

Redémarrez enfin le service vsftpd pour que nos modifications prennent effet :

sudo service vsftpd restart

Étape 6 – Tester le serveur FTP

Il ne reste plus qu’à vérifier que vous pouvez vous connecter au serveur et transférer des fichiers.

Obtenez l’adresse IP de votre Pi en utilisant :

ifconfig

Exécutez votre client FTP préféré sur votre PC/ordinateur portable. Les utilisateurs de Windows peuvent utiliser WinSCP. Les utilisateurs Windows, Mac ou Linux peuvent utiliser FichierZilla. Si vous vous êtes connecté à la ligne de commande via SSH, vous pourrez peut-être utiliser le même client pour FTP.

Pour vous connecter dans votre client, vous fournissez le nom d’hôte (adresse IP) de votre Pi, le nom d’utilisateur (par exemple pi ou caméra) et le mot de passe. Assurez-vous qu’il est configuré pour utiliser le protocole FTP et le port 21.

Voici le gestionnaire de site WinSCP :

Connexion au serveur FTP Pi

Voici une capture d’écran de WinSCP connecté à mon Pi en utilisant le nom d’utilisateur « caméra ».

Client FTP WinSCP

Accédez au répertoire « fichiers » et vous devriez pouvoir y transférer des fichiers. Si cela fonctionne, votre serveur FTP est prêt pour tous les appareils que vous souhaitez connecter.

Journaux de session FTP

Vous pouvez consulter les journaux de session vsftpd pour voir un historique des connexions effectuées sur votre serveur FTP.

cat /var/log/vsftpd.log

Lectures complémentaires

Il y a une liste complète des options du fichier de configuration vsftpd ici :
https://security.appspot.com/vsftpd/vsftpd_conf.html

Protocole de transfert de fichiers (Wiki) :
https://en.wikipedia.org/wiki/File_Transfer_Protocol