Différences
Ci-dessous, les différences entre deux révisions de la page.
logiciel:internet:ftp:vsftpd:start [2021/01/03 10:23] – [Commandes] admin | logiciel:internet:ftp:vsftpd:start [2022/08/13 22:14] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
====== VSFTPd : un serveur FTP sécurisé avec des utilisateurs virtuels ====== | ====== VSFTPd : un serveur FTP sécurisé avec des utilisateurs virtuels ====== | ||
- | Ce tutoriel explique comment installer et configurer sur Raspberry Pi **vsftpd**, un serveur FTP stable, sécurisé et rapide. | + | **vsftpd** |
- | Par défaut, VsFTPd est configuré de manière très restrictive | + | Nous allons l' |
- | | + | |
- | | + | |
- | | + | |
+ | * Les options seront réglées utilisateur par utilisateur | ||
+ | * les utilisateurs seront restreints à leur répertoire d' | ||
+ | * les transmissions seront cryptées avec un certificat auto-signé SSLTLS. | ||
+ | * nous utiliserons le paramétrage par **utilisateurs virtuels**, avec une base de données de type **Berkeley**.\\ Chaque enregistrement n’est constitué que d'un login et d'un mot de passe.\\ Pour créer un nouvel utilisateur, | ||
+ | * une entrée dans la base Berkeley | ||
+ | * et un fichier de configuration personnel. | ||
- | De nombreuses options permettant un paramétrage très fin des autorisations, | + | Quatre |
- | + | ||
- | Nous verrons comment configurer vsftpd pour restreindre les utilisateurs à leur répertoire d' | + | |
- | + | ||
- | Puis nous examinerons quatre | + | |
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
Ligne 28: | Ligne 30: | ||
</ | </ | ||
- | Pour gérer plusieurs comptes FTP, nous utiliserons le paramétrage par **utilisateur virtuel**, avec une base de données de type **Berkeley**. | + | ===== Pré-requis ===== |
- | + | ||
- | Chaque enregistrement n’est constitué que d'un login et d'un mot de passe. | + | |
- | + | ||
- | Pour créer un nouvel utilisateur, | + | |
- | * une entrée dans la base Berkeley | + | |
- | * et un fichier de configuration personnel. | + | |
- | + | ||
- | ====== Pré-requis | + | |
- | ====== Installation | + | ===== Installation ===== |
- **Mettez à jour** :<cli prompt=' | - **Mettez à jour** :<cli prompt=' | ||
Ligne 84: | Ligne 78: | ||
www-data: | www-data: | ||
</ | </ | ||
- | ====== Configuration ====== | ||
- | Le fichier de configuration du serveur est **[[logiciel: | + | ===== Configuration ===== |
- | Voir la page de man **[[logiciel: | + | |
+ | Le fichier de configuration du serveur est **[[logiciel: | ||
+ | Voir la page de man **[[logiciel: | ||
<WRAP center round info 60%> | <WRAP center round info 60%> | ||
Ligne 103: | Ligne 98: | ||
* Montez **/srv** :<cli prompt=' | * Montez **/srv** :<cli prompt=' | ||
- | ===== Configuration par défaut ===== | + | ==== Configuration par défaut ==== |
Éditez avec les droits d' | Éditez avec les droits d' | ||
- | ==== Commandes | + | === Commandes === |
- | | + | Nous plaçons à la fin du fichier **/ |
+ | | ||
... | ... | ||
########## Paramètres personnalisés ########## | ########## Paramètres personnalisés ########## | ||
- | listen=NO | ||
- | |||
- | # Bannière de bienvenue | ||
ftpd_banner=Bienvenue sur le serveur FTP de ... | ftpd_banner=Bienvenue sur le serveur FTP de ... | ||
- | # connexion et contrôle d'accès | + | # un message apparaît chaque fois |
- | # Pas d'accès anonyme, que des utilisateurs locaux | + | # qu'un utilisateur ouvre un répertoire avec un fichier .message |
- | # (dont les utilisateurs virtuels, mappés sur un utilisateur | + | dirmessage_enable=YES |
- | # les vrais utilisateurs | + | |
- | anonymous_enable=NO | + | # heure locale de l'ordinateur au lieu de l' |
- | local_enable=YES | + | use_localtime=YES |
+ | |||
+ | # Nombre maximum de connexions simultanées | ||
+ | # | ||
+ | # " | ||
+ | max_clients=200 | ||
+ | # Nombre maximum de connexions venant de la même IP | ||
+ | max_per_ip=4 | ||
+ | |||
+ | # journalisation | ||
+ | xferlog_enable=YES | ||
+ | </ | ||
+ | - **Utilisateurs virtuels** :<code - / | ||
+ | # Activation des utilisateurs virtuels | ||
+ | guest_enable=YES | ||
+ | # nom de l'utilisateur | ||
+ | # tous les utilisateurs | ||
+ | ftp_username=ftp | ||
+ | guest_username=ftp | ||
+ | nopriv_user=ftp | ||
# Fichier de config PAM | # Fichier de config PAM | ||
pam_service_name=vsftpd | pam_service_name=vsftpd | ||
+ | </ | ||
+ | - **Connexion et contrôle d' | ||
+ | # Pas d' | ||
+ | # (dont les utilisateurs virtuels, mappés sur un utilisateur local) | ||
+ | # les vrais utilisateurs locaux sont désactivés avec le fichier user_list | ||
+ | anonymous_enable=NO | ||
+ | local_enable=YES | ||
- | # Limitation des accès des utilisateurs | ||
# On refuse les utilisateurs du fichier / | # On refuse les utilisateurs du fichier / | ||
# un utilisateur par ligne | # un utilisateur par ligne | ||
Ligne 135: | Ligne 152: | ||
userlist_file=/ | userlist_file=/ | ||
- | # compte de l' | + | # Les utilisateurs locaux restent chez eux |
- | ftp_username=ftp | + | chroot_local_user=YES |
+ | allow_writeable_chroot=YES | ||
+ | </ | ||
+ | - **Permissions** :<code - / | ||
# Interdiction de toute action d' | # Interdiction de toute action d' | ||
# On spécifiera les droits utilisateur par utilisateur. | # On spécifiera les droits utilisateur par utilisateur. | ||
+ | write_enable=NO | ||
anon_mkdir_write_enable=NO | anon_mkdir_write_enable=NO | ||
anon_other_write_enable=NO | anon_other_write_enable=NO | ||
anon_upload_enable=NO | anon_upload_enable=NO | ||
anon_world_readable_only=NO | anon_world_readable_only=NO | ||
- | |||
- | # Un utilisateur virtuel peut télécharger un fichier public | ||
- | anon_other_write_enable=NO | ||
# droits par défaut des fichiers uploadés | # droits par défaut des fichiers uploadés | ||
Ligne 155: | Ligne 172: | ||
chmod_enable=YES | chmod_enable=YES | ||
virtual_use_local_privs=YES | virtual_use_local_privs=YES | ||
- | |||
- | # Les utilisateurs locaux restent chez eux | ||
- | chroot_local_user=YES | ||
- | allow_writeable_chroot=YES | ||
- | |||
- | # Activation de la configuration utilisateur par utilisateur | ||
- | user_config_dir=/ | ||
- | |||
- | # Activation des utilisateurs virtuels | ||
- | guest_enable=YES | ||
- | # nom de l' | ||
- | # tous les utilisateurs virtuels -> utilisateur ftp avec son home /srv/ftp | ||
- | guest_username=ftp | ||
- | nopriv_user=ftp | ||
- | |||
- | # local_root | ||
- | # local_umask | ||
- | |||
- | # un message apparaît chaque fois | ||
- | # qu'un utilisateur ouvre un répertoire avec un fichier .message | ||
- | dirmessage_enable=YES | ||
- | |||
- | # heure locale de l' | ||
- | use_localtime=YES | ||
- | |||
- | # Téléchargement autorisé | ||
- | # download_enable=YES | ||
# On n’autorise pas les utilisateurs à se faire passer pour d’autres | # On n’autorise pas les utilisateurs à se faire passer pour d’autres | ||
Ligne 190: | Ligne 180: | ||
hide_ids=YES | hide_ids=YES | ||
- | # Pas d' | + | # Activation |
- | write_enable=NO | + | user_config_dir=/ |
- | + | ||
- | # Nombre maximum de connexions simultanées | + | |
- | # | + | |
- | # " | + | |
- | max_clients=200 | + | |
- | # Nombre maximum de connexions venant | + | |
- | max_per_ip=4 | + | |
- | + | ||
- | # journalisation des transferts | + | |
- | xferlog_enable=YES | + | |
</ | </ | ||
- | - **Sécurisation des transmissions avec SSL/ | + | - **Sécurisation des transmissions avec SSL/TLS** :<code - / |
- | * Créez une clé privée de 2048 bits et un certificat autosigné valable 10 ans (la clé privée et le certificat sont enregistrés dans un même fichier) | + | rsa_cert_file=/ |
- | * Trouvez les directives rsa_cert_file et rsa_private_key_file, | + | |
rsa_private_key_file=/ | rsa_private_key_file=/ | ||
ssl_enable=YES | ssl_enable=YES | ||
- | </ | + | </code>après avoir créé la clé privée de 2048 bits et le certificat autosigné valable 10 ans (la clé privée et le certificat sont enregistrés dans un même fichier) :<cli prompt=' |
- | ===== Utilisateurs virtuels | + | ==== Utilisateurs virtuels ==== |
<WRAP center round info 60%> | <WRAP center round info 60%> | ||
Ligne 320: | Ligne 299: | ||
</ | </ | ||
- | ===== Personnalisation pour chaque utilisateur | + | ==== Personnalisation pour chaque utilisateur ==== |
Par défaut les utilisateurs virtuels n'ont aucun droit. | Par défaut les utilisateurs virtuels n'ont aucun droit. | ||
Ligne 431: | Ligne 410: | ||
Redémarrez le serveur pour valider les modifications :<cli prompt=' | Redémarrez le serveur pour valider les modifications :<cli prompt=' | ||
- | ===== Tests ===== | + | ==== Tests ==== |
- **admin** :<cli prompt=' | - **admin** :<cli prompt=' | ||
Ligne 488: | Ligne 467: | ||
* ni en **anonyme** | * ni en **anonyme** | ||
- | ===== Cinq exemples de configuration | + | ==== Cinq exemples de configuration ==== |
Voir la page [[logiciel: | Voir la page [[logiciel: | ||
- | ====== Utilisation | + | ===== Utilisation ===== |
- | ===== Gestion du service | + | ==== Gestion du service ==== |
Via systemctl :<cli prompt=' | Via systemctl :<cli prompt=' | ||
- | | + | |
: Démarrer le serveur | : Démarrer le serveur | ||
- | | + | |
: Arrêter le serveur | : Arrêter le serveur | ||
- | | + | |
: Redémarrer le serveur | : Redémarrer le serveur | ||
- | | + | |
: État du serveur | : État du serveur | ||
- | ===== Se connecter en utilisant le serveur FTP comme un simple dossier | + | ==== Se connecter en utilisant le serveur FTP comme un simple dossier ==== |
- | ==== Sous Ubuntu | + | === Sous Ubuntu === |
* Raccourcis (menu en haut) | * Raccourcis (menu en haut) | ||
Ligne 523: | Ligne 502: | ||
Ne pas oublier de se déconnecter (démonter) | Ne pas oublier de se déconnecter (démonter) | ||
- | ==== Sous Windows | + | === Sous Windows === |
* Double-clic sur Favoris réseau | * Double-clic sur Favoris réseau | ||
Ligne 539: | Ligne 518: | ||
* et ainsi accéder aux dossiers et fichiers qu'il contient dans la limite des droits accordés. | * et ainsi accéder aux dossiers et fichiers qu'il contient dans la limite des droits accordés. | ||
- | ====== Désinstallation | + | ===== Désinstallation ===== |
- **Désinstallation partielle** : Pour désinstaller le serveur vsftpd, en gardant les fichiers de configuration :< | - **Désinstallation partielle** : Pour désinstaller le serveur vsftpd, en gardant les fichiers de configuration :< | ||
Ligne 552: | Ligne 531: | ||
</ | </ | ||
- | + | ===== Voir aussi ===== | |
- | + | ||
- | + | ||
- | ====== Voir aussi ====== | + | |
* **(fr)** [[https:// | * **(fr)** [[https:// |