Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| vsftpd [Le 06/05/2021, 08:41] – [Installation] 217.136.254.22 | vsftpd [Le 26/12/2024, 23:36] (Version actuelle) – Il manquait une lettre au mot liste dans la section chroot 79.95.87.181 | ||
|---|---|---|---|
| Ligne 6: | Ligne 6: | ||
| Je n'ai pas tout vérifié en détail mais je vous conseille de vérifier les paramètres donnés avec le man du site officiel!</ | Je n'ai pas tout vérifié en détail mais je vous conseille de vérifier les paramètres donnés avec le man du site officiel!</ | ||
| - | ====== Préambule : FTP et " | + | ====== Préambule : FTP et " |
| Au niveau des protocoles de transfert de fichiers, il y a le FTP classique: Tout y passe en clair (y compris les infos de login/mot de passe). Ce protocole utilise un canal de contrôle et un canal de données (par défaut, port 21 en destination pour le canal contrôle). | Au niveau des protocoles de transfert de fichiers, il y a le FTP classique: Tout y passe en clair (y compris les infos de login/mot de passe). Ce protocole utilise un canal de contrôle et un canal de données (par défaut, port 21 en destination pour le canal contrôle). | ||
| Ligne 28: | Ligne 28: | ||
| VsFTPd est un serveur FTP conçu avec la problématique d'une sécurité maximale. Contrairement aux autres serveurs FTP (ProFTPd, PureFTPd, etc.), aucune faille majeure de sécurité n'a jamais été décelée dans VsFTPd. | VsFTPd est un serveur FTP conçu avec la problématique d'une sécurité maximale. Contrairement aux autres serveurs FTP (ProFTPd, PureFTPd, etc.), aucune faille majeure de sécurité n'a jamais été décelée dans VsFTPd. | ||
| - | Néanmoins deux [[http:// | + | Néanmoins deux [[https:// |
| Ce serveur est utilisé à grande échelle, notamment par des entreprises telles que Red Hat. | Ce serveur est utilisé à grande échelle, notamment par des entreprises telles que Red Hat. | ||
| - | La configuration __par défaut__ de VsFTPd est très restrictive : | + | La configuration __par défaut__ de VsFTPd est très restrictive : |
| - Seul le compte **anonyme** est autorisé à se connecter au serveur | - Seul le compte **anonyme** est autorisé à se connecter au serveur | ||
| Ligne 44: | Ligne 44: | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | <code bash> sudo apt install vsftpd | ||
| [[: | [[: | ||
| + | <code bash> sudo apt install vsftpd </ | ||
| Il est parfois nécessaire de créer un compte ftp, l' | Il est parfois nécessaire de créer un compte ftp, l' | ||
| <code bash> | <code bash> | ||
| Pensez à redémarrer le service : | Pensez à redémarrer le service : | ||
| - | <code bash> | + | <code bash> |
| - | sudo systemctl enable vsftpd</ | + | Vérifier l' |
| + | <code bash> | ||
| + | <code bash>sudo systemctl enable vsftpd</ | ||
| Et à ouvrir les ports de votre pare-feu si nécessaire : | Et à ouvrir les ports de votre pare-feu si nécessaire : | ||
| <code bash> | <code bash> | ||
| Ligne 75: | Ligne 76: | ||
| local_umask=022</ | local_umask=022</ | ||
| * Pour permettre à vsftpd de charger une liste d' | * Pour permettre à vsftpd de charger une liste d' | ||
| - | Il faudra alors ajouter le nom des utilisateurs qui auront les accès dans le fichier **etc/ | + | Il faudra alors ajouter le nom des utilisateurs qui auront les accès dans le fichier **/etc/ |
| * Vous pouvez « emprisonner » certains utilisateurs dans leur dossier personnel afin qu'il ne puissent pas naviguer dans le système de fichier. | * Vous pouvez « emprisonner » certains utilisateurs dans leur dossier personnel afin qu'il ne puissent pas naviguer dans le système de fichier. | ||
| Ligne 89: | Ligne 90: | ||
| chroot_local_user=NO | chroot_local_user=NO | ||
| # Emprisonner dans son répertoire home les utilisateurs | # Emprisonner dans son répertoire home les utilisateurs | ||
| - | chroot_list_enable=YES | + | chroot_list_enable=YES |
| - | # La lise des prisonniers | + | # La liste des prisonniers |
| - | chroot_list_file=/ | + | chroot_list_file=/ |
| # Evite l' | # Evite l' | ||
| - | # Les prisonniers peuvent écrire dans leur propre répertoire | + | # Les prisonniers peuvent écrire dans leur propre répertoire |
| allow_writeable_chroot=YES | allow_writeable_chroot=YES | ||
| </ | </ | ||
| Ligne 150: | Ligne 151: | ||
| ===== vsftpd et SSL ===== | ===== vsftpd et SSL ===== | ||
| - | [[http:// | + | [[https:// |
| Le principal défaut du protocole FTP est que le couple nom d' | Le principal défaut du protocole FTP est que le couple nom d' | ||
| Ligne 162: | Ligne 163: | ||
| sudo openssl req -new -x509 -days 365 -nodes -out / | sudo openssl req -new -x509 -days 365 -nodes -out / | ||
| - | Openssl va vous poser quelques questions, la plus critique est celle ci : | + | Openssl va vous poser quelques questions, la plus critique est celle ci : |
| Common Name (eg, YOUR name) []: | Common Name (eg, YOUR name) []: | ||
| - | Il faut écrire le nom ou l'ip que les clients utiliseront. | + | Il faut écrire le nom ou l'ip que les clients utiliseront. |
| Il est possible de faire un certificat signé par sa propre autorité de certification et donc générer des certificats valides, une fois que vos clients ont reconnu votre autorité de certification : [[http:// | Il est possible de faire un certificat signé par sa propre autorité de certification et donc générer des certificats valides, une fois que vos clients ont reconnu votre autorité de certification : [[http:// | ||
| - | Un certificat (vsftpd.cert.pem) ainsi qu'une clé privée (vsftpd.key.pem) ont été générés dans le dossier / | + | Un certificat (vsftpd.cert.pem) ainsi qu'une clé privée (vsftpd.key.pem) ont été générés dans le dossier / |
| Sécurisons-les : | Sécurisons-les : | ||
| sudo chown root:root / | sudo chown root:root / | ||
| Ligne 198: | Ligne 199: | ||
| </ | </ | ||
| force_local_data_ssl=NO | force_local_data_ssl=NO | ||
| - | A priori, un : | + | A priori, un : |
| sudo service vsftpd reload | sudo service vsftpd reload | ||
| devrait bien se passer. | devrait bien se passer. | ||
| Ligne 237: | Ligne 238: | ||
| 1- à redémarrer le serveur avec la commande suivante | 1- à redémarrer le serveur avec la commande suivante | ||
| - | <codebash>sudo service vsftpd reload | + | <code bash>sudo service vsftpd reload |
| </ | </ | ||
| Ligne 244: | Ligne 245: | ||
| 3- et à configurer votre client ftp de façon à ce que celui-ci réalise des connexions en mode passif (mode passif dans les paramètres du pare-feu de Filezilla par exemple) | 3- et à configurer votre client ftp de façon à ce que celui-ci réalise des connexions en mode passif (mode passif dans les paramètres du pare-feu de Filezilla par exemple) | ||
| - | <note important> | + | <note important> |
| ===== Configurer VSFTPD pour utiliser des utilisateurs virtuels ===== | ===== Configurer VSFTPD pour utiliser des utilisateurs virtuels ===== | ||
| Nous allons configurer VSFTPD pour utiliser seulement des utilisateurs virtuels et non pas les utilisateurs locaux de votre machine. | Nous allons configurer VSFTPD pour utiliser seulement des utilisateurs virtuels et non pas les utilisateurs locaux de votre machine. | ||
| - | Pour cela nous allons créer des dossiers afin d'y placer nos futurs fichiers de configuration: | + | Pour cela nous allons créer des dossiers afin d'y placer nos futurs fichiers de configuration: |
| < | < | ||
| Ligne 269: | Ligne 270: | ||
| Création du fichier PAM : | Création du fichier PAM : | ||
| - | Il faut effacer le contenu du fichier **/ | + | Il faut effacer le contenu du fichier **/ |
| < | < | ||
| Ligne 292: | Ligne 293: | ||
| </ | </ | ||
| - | Créons un fichier **login.txt** dans **/ | + | Créons un fichier **login.txt** dans **/ |
| < | < | ||
| Ligne 311: | Ligne 312: | ||
| </ | </ | ||
| - | on sécurise nos fichiers : | + | on sécurise nos fichiers : |
| < | < | ||
| Ligne 373: | Ligne 374: | ||
| </ | </ | ||
| - | Relançons le serveur : | + | Relançons le serveur : |
| < | < | ||
| Ligne 385: | Ligne 386: | ||
| Par défaut les utilisateurs virtuels n'ont aucun droit, il faut donc les définir pour chacun d' | Par défaut les utilisateurs virtuels n'ont aucun droit, il faut donc les définir pour chacun d' | ||
| - | Pour celà il faut créer un fichier de configuration pour chacun de vos utilisateurs dans le dossier **/ | + | Pour celà il faut créer un fichier de configuration pour chacun de vos utilisateurs dans le dossier **/ |
| Par exemple pour ' | Par exemple pour ' | ||
| - | Exemple de fichier : | + | Exemple de fichier : |
| < | < | ||
| Ligne 415: | Ligne 416: | ||
| </ | </ | ||
| - | <note important> | + | <note important> |
| ## Activer la configuration per-user | ## Activer la configuration per-user | ||
| user_config_dir=/ | user_config_dir=/ | ||
| Ligne 426: | Ligne 427: | ||
| </ | </ | ||
| - | Ce scripte donne tous les droits à chacun de vos utilisateurs virtuels et ne supprime pas le dossier d'un utilisateur lors de sa suppression de la base de données.\\ | + | Ce scripte donne tous les droits à chacun de vos utilisateurs virtuels et ne supprime pas le dossier d'un utilisateur lors de sa suppression de la base de données. |
| Libre à vous de modifier ce script ou de changer les droits utilisateurs dans vos fichiers de configuration. | Libre à vous de modifier ce script ou de changer les droits utilisateurs dans vos fichiers de configuration. | ||
| Ligne 495: | Ligne 496: | ||
| == Sous Windows== | == Sous Windows== | ||
| - | * FileZilla ou smartFtP option : "FTP over TLS Explicit" | + | * FileZilla ou smartFtP option : "FTP over TLS Explicit" |
| * Winscp | * Winscp | ||
| * CoreFTP Lite | * CoreFTP Lite | ||
| Ligne 508: | Ligne 509: | ||
| * ftp (sans chiffrement) | * ftp (sans chiffrement) | ||
| * lftp [[http:// | * lftp [[http:// | ||
| - | * kasablanca - Kasablanca est un client graphique FTP. Parmi ses fonctions, on peut citer le support du chiffrement (par authentification TLS, et non SFTP),FXP (accès direct entre deux serveurs FTP,un gestionnaire de signets et un système de mise en queue. | + | * kasablanca - Kasablanca est un client graphique FTP. Parmi ses fonctions, on peut citer le support du chiffrement (par authentification TLS, et non SFTP),FXP (accès direct entre deux serveurs FTP,un gestionnaire de signets et un système de mise en queue. |
| | | ||
| * Kftpgrabber (FTP utilisant TLS/SSL explicite et implicite) | * Kftpgrabber (FTP utilisant TLS/SSL explicite et implicite) | ||
| - | * gftp sous Debian/ | + | * gftp sous Debian/ |
| Par contre, il supporte parfaitement le SFTP (selectionner SSH2 à la place de FTP), qui ne pose pas les problèmes de licence de SSL. | Par contre, il supporte parfaitement le SFTP (selectionner SSH2 à la place de FTP), qui ne pose pas les problèmes de licence de SSL. | ||
| * FireFTP, extension pour Firefox | * FireFTP, extension pour Firefox | ||
| - | * Filezilla, | + | * Filezilla, |
| - | * Nautilus, | + | * Nautilus, |
| - | * gftp sous ubuntu, | + | * gftp sous ubuntu, |
| * et... si vous en connaissez un autre ---> " | * et... si vous en connaissez un autre ---> " | ||
