Dossier par défaut lors d'une connection vsftpd

Bonjour,
J’essaie de communiquer avec FTP dans un réseau local en Ethernet entre un arduino et un Raspberry, plus exactement " vsftpd ".
Malgré toutes mes lectures, je n’arrive pas à voir où est mon erreur. Je teste avec le client filezilla sur un PC Win 10, et avec un arduino et un client FTP minimaliste
La connexion se fait bien, mais je suis dirigé vers la racine des dossiers, alors que la dernière ligne du fichier de configuration spécifie bien « /home/$USER/ftp », ce qui dans ce cas est « /home/tfa/ftp »
Auriez-vous une idée pour m’aider ?
merci !

Voici le contenu de vsftpd.conf :
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
dirmessage_enable=YES
dual_log_enable=YES
# Option pour gérer les deux types de logs simultanément
dual_log_enable=YES
# Partie XFER
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.xfer.log
# Partie VSFTPD
log_ftp_protocol=YES
vsftpd_log_file=/var/log/vsftpd.log
#connect_from_port_20=YES
user_sub_token=$USER
local_root=/home/$USER/ftp

De FileZilla :
|Statut :|Connexion à 192.168.0.17:21…|
|—|---|
|Statut :|Connexion établie, attente du message d’accueil…|
|Statut :|Serveur non sécurisé, celui-ci ne supporte pas FTP sur TLS.|
|Statut :|Le serveur ne supporte pas les caractères non-ASCII.|
|Statut :|Connecté|
|Statut :|Récupération du contenu du dossier…|
|Statut :|Contenu du dossier / affiché avec succès|

De vsftpd
Fri Apr 30 11:59:21 2021 [pid 19691] [tfa] FTP response: Client « ::ffff:192.168.0.103 », « 331 Please specify the password. »
Fri Apr 30 11:59:21 2021 [pid 19691] [tfa] FTP command: Client « ::ffff:192.168.0.103 », « PASS "
Fri Apr 30 11:59:21 2021 [pid 19690] [tfa] OK LOGIN: Client « ::ffff:192.168.0.103 »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », « 230 Login successful. »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP command: Client « ::ffff:192.168.0.103 », « SYST »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », « 215 UNIX Type: L8 »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP command: Client « ::ffff:192.168.0.103 », « FEAT »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », « 211-Features: »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », " EPRT?? »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », " EPSV??"
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », " MDTM??"
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », " PASV??"
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », " REST STREAM??"
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », " SIZE??"
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », " TVFS??"
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », « 211 End »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP command: Client « ::ffff:192.168.0.103 », « PWD »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », "257 « / » is the current directory"
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP command: Client « ::ffff:192.168.0.103 », « TYPE I »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », « 200 Switching to Binary mode. »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP command: Client « ::ffff:192.168.0.103 », « PASV »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », « 227 Entering Passive Mode (192,168,0,17,172,223). »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP command: Client « ::ffff:192.168.0.103 », « LIST »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », « 150 Here comes the directory listing. »
Fri Apr 30 11:59:21 2021 [pid 19692] [tfa] FTP response: Client « ::ffff:192.168.0.103 », « 226 Directory send OK. »

Salut, si je me fit à un guide sur VSFTPd, tu as correctement fait tes configurations; How To Set Up vsftpd for a User's Directory on Ubuntu 16.04 | DigitalOcean sauf lui il s’ajoute une autre liste en plus.

Après… as tu restart le VSFTPd ? As-tu regardé d’autres LOG ? Genre ceux du système ?

Bonjour,
Je n’avais pas vu ce guide plus linuxien que raspbien. :rofl:
Je me suis basé sur https://linuxize.com/post/how-to-setup-ftp-server-with-vsftpd-on-raspberry-pi/
Et tout simplement LA référence Manpage of VSFTPD.CONF
C’est en anglais, mais même traduit ce n’est pas un avantage pour moi car l’informatique est un vaste domaine et je suis tout petit dans les télécoms.
Quels autres logs pourrais-je consulter ?
Bien à toi et encore merci pour ta réponse

Dans ls /var/log.
Tu as quelques logs système (messages, syslog, daemon par exemple) qui peuvent avoir des traces d’activité du FTP, et peut-être te dire une erreur de le part qui fait que VSFTP agis de manière non voulu.

Et juste pour être sur, tu as bien « restart » le service après avoir créer tes fichiers de configuration ?

Oui, bien entendu ! Là je vais aller protéger mes premières plantations des foutus gels nocturnes à venir.
Je reviens

Je viens de passer le guide que tu as suivi et ton fichier de configuration et tu as un manque, et c’est l’auteur qui en parle pas…

secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd

PAM est le service de gestion des comptes, alors peut-être qui va mieux marcher avec cette commande :stuck_out_tongue:


Si PAM n’est pas défini, il ne peut pas auth les usager, et place l’user dans un dossier secure, mais si c’est pas setter, sa retourne / (surement). VSFTP je l’utilise pas faut dire, je suis plus style proFTPd quand j’ai besoins, et c’est pas le cas avec mes Pi :stuck_out_tongue: (j’utilise le sFTP)

Bon, j’ai donc essayé tes modifications, et cela ne fonctionne pas mieux.

Mes besoins sont simples, j’ai un Arduino qui fabrique des fichiers horaires (aammjjhh.tfa) avec simplement par ligne:
n° thermomètre;date et heure; température; humidité.
Par exemple :

1;2021/01/16 14:00;20.2;50
2;2021/01/16 14:00;20.2;48
3;2021/01/16 14:00;20.2;45

Au max 8 x 60 lignes et 4 à 5 ko

Il devraient être envoyés sur le Pi 1x/5 minutes pour y finir leur traitement
Tout cela en local (et en Ethernet)

As-tu une autre piste facile pour moi ?
Merci encore !

Si tu ne veux transférer qu’un document a toutes les 5 minutes, il y a plusieurs moyens;

  1. Via SSH/sFTP par ligne de commande et cron job; A toutes les 5 minutes (cron) une commande lance un transfert de Arduino @ Pi
  2. Via wget et un serveur web et cronjob; Tu met un serveur web sur Arduino et sur le Pi un cron job lance une commande wget pour télécharger un fichier sur le serveur web arduino
  3. Réinstaller VSFTP ou installer ProFTP et faire ce que tu demande

Avec PHP tu peux scripter pas mal de chose, dont de gérer les nom de fichiers différent, une liste de transfert réussi etc… et plusieurs codes sont disponibles. ET tu peux sécuriser par mot de passe le script.

Merci de ta réponse.

  1. D’après ce que j’ai lu (c’est une piste que j’avais exploré), il n’y a pas assez de place pour du SSH/sFTP dans les arduino (je ne crois même pas qu’il y ait de la doc)
  2. Serveur Web ça existe sur arduino, mais jamais vu de cron
  3. C’est bien pour le PHP et du Python que j’envoie les données vers le PI

Les Arduino sont de belles petites bêtes, mais presque justes bonnes à récolter des données et leur appliquer un traitement de base. C’est d’ailleurs bien souvent pour cela qu’ils sont associés.
Auparavant, j’envoyais ces fichiers sur un vieux pc en Seven qui faisait tout le taf en vb.net.
Mais j’ai beaucoup de problèmes à adapter avec le PI

Il n’y a rien à faire, il faut faire fonctionner ce vsFTPd qui, en plus, à fonctionné !
Merci encore,
Titi

SSH c’est Telnet, si tu peux avoir un serveur Web mais pas SSH, c’est pas logique, SSH c’est la base du remote accès sur les OS linux (ce que tu utilise avec Putty).
Guide;

Pour VSFTP, alors désinstalle et réinstalle, c’est la seul qui te reste à faire, peut-être de quoi à mal passé. Vérifie aussi si le fichier de configuration est bien pris en compte, peut-être as tu fait une erreur de syntaxe qui fait que tu travail pas sur le bon fichier. Je dis ça comme ça, pour retirer toutes les possibilités.

Je sais que Arduino est plus micro-controleur que ordinateur, mais si tu peux avoir un FTP, tu as le SSH, et tu peux offrir du HTTP. Ton Arduino fait office de serveur de fichiers (peux importe la méthode0 et ton Pi le client.

Cronjob c’est avec crontab -e que tu peux éditer les règles. à ce que je sache, c’est par défaut.

J’ai un blog que je ne tiens pas à jour (trop de lièvres à la fois) qui explique mes décodages TFA
http://cambier.eu/ubicomp/index.php?category/Programmation/Arduino

Lien pour régler VSFTP;

https://www.cyberciti.biz/tips/vsftp-chroot-users-limit-to-only-their-home-directory.html

^^^ Celui la parle de simplement ajouter userlist_enable=YES dans la config. ^^^

D’accord, mais pas possible en Arduino et j’en ai d’ailleurs pas besoin (réseau local, données non sensible). N’oublie pas que Arduino sont des micro contrôleurs, ils n’ont pas d’OS

Cela fait des semaines que je tourne en rond. Ce n’est pas dans mes habitudes de venir pleurer dans un forum à la première pierre d’achoppement.
Un problème est que j’ai ma station météo (officielle) qui tourne dessus, avec des milliers de données. Je dois donc faire attention…

Tu roule en IPv6 seulement ? Et en local !?

Merci je vais regarder

Il me semble avoir compris que ip6/ip4 importait peu. Est-ce cela qui ne me fait pas diriger dans mon répertoire ?
Je vais essayer, mais c’est illogique

Backup ta carte SD avant d’effectuer le reinstall, comme ça retour rapide à une config « safe » en cas de bobo.

J’ai pas de Arduino alors je connais que les grands titres. Je n’ai pas vu de OS dédié à Arduino (ou même de LCD) alors je vois que Arduino est comme le Pi Pico dans sont roulement.

Alors ton Arduino agit comme client sur le Pi qui est serveur, dont c’est le Pi qui a le serveur (dans ma tête je m’imaginais plus l’inverse).

EN théorie, Ip4 ou IP6 importe peut, mais en pratique, le IP6 peut apporter un lot de problème. Surtout si un système gère du IP4.

Si tu vois aucun dossier, c’est un problème de IP avec mode PASSIVE (que tu vois dans les logs) et tu doit passer en mode Actif (active/direct). Je rencontre ce problème avec les serveur NAT entre autres, c’est que le serveur va passer en mode passive, ce qui veux dire un ip/port différent que le 21, ce qui est bien pour libérer le port à d’autres connection, mais marche mal si (en passant en IPv6);

  • le serveur connait ton IP4 local,
  • si le client fournis un IP4 local
  • si le client gère mal sont IPv6
  • si le client ne connait pas sont IPv6
  • si le serveur gère un firewall mal configuré en IPv6

Passe en mode Active, ce qui devrais résoudre ce problème. ET remet tout en IPv4 qui est plus simple et compatible (sauf si tout ton réseau utilise le IPv6 principalement).

Il n’a pas été content que je désactive l’IP6. Ce la devient une norme incontournable
Je vais manger et je reviens

Tu n’est pas obliger de le désactiver, peut-être rendre ip4+ip6. Mais déjà, si tu essai de connecter le ftp en mode active, tu devrais avoir un résultat de listing.

SI tu veux tester avec FIlezilla.

Moi je laisse toujours dans ce mode, sinon j’ai trop de trouble vu que c’est le routeur qui gère la connection à internet, si je passerais ma commande de connection PPPoe sur mon PC, je pourrais utiliser le mode Passif sans problème.