changed 7 years ago
Linked with GitHub

Test Pi 3, Ethereum & serveur ftp

Pour <DAISEE.org> : https://github.com/DAISEE lors du hackathon « Nuit du Code Cutoyen 2018 » à Rennes au hackerspace Breizh Entropy

Objectifs

  1. Installer un noeud ethereum sur raspi 3 : https://github.com/DAISEE/Prototypes/wiki/2.-Ethereum
  2. Installer un Serveur FTP sur le même raspi 3
  3. tester :
    3.1 Stabilité
    3.2 Sécurité
    3.3 Usages

Introduction

Le FTP (File Transfer Protocol) est un protocole qui nous permet d’accéder aux fichiers d’un ordinateur à distance, (uploader, télécharger, renommer, modifier, déplacer, bref tout ce que vous voulez) à partir du moment qu’un « serveur » FTP est installé.

Raspi 3

  • CPU: 1200 MHz quad-core ARM Cortex-A53

  • Memory: 1 GB RAM

  • Storage: MicroSDHC slot

  • Graphics: Broadcom VideoCore IV at higher clock frequencies than previous that run at 250 MHz

  • Power consumption: 4.0 W

Documentations supplémentaires

j'ai simplement demandeé sur le réseau social Mastodon, Flynn a répondu gentillement

  1. FILE TRANSFER PROTOCOL (FTP), Obsoletes RFC: 765 (IEN 149) sur IETF
  2. Tutoriel : Créer son serveur FTP
  3. Wikipedia pour le mode passif/actif, voir également FPT protégé par SSL ou TLS
  4. Sur CCM pour les détails de commandes et les schémas

Besoins

  • Un raspberry 3
  • un serveur FTP et un client FTP.

Le serveur sera installé sur la machine à laquelle vous voulez accéder (ici votre Raspberry Pi) et le client sur la machine depuis laquelle vous voulez y accéder.

Vous pourrez accéder à votre Raspberry Pi en FTP uniquement en local.

Installer le serveur FTP

Avec un terminal (possible également SSH) :

sudo apt-get install vsftpd

Appuyez sur [o] si cela est demandé lors de l'installation dans le terminal.

Le serveur est installé,

Poiur la configuration, depuis votre terminal, entrez

sudo nano /etc/vsftpd.conf

Un fichier de configuration s’ouvre.

On retrouve une instruction par ligne. Certaines lignes sont précédées d'un dièse # : ce sont des commentaires qui sont ignorés. Il servent la plupart du temps à vous indiquer à quoi sert la ligne qui suit.
Parfois, il faudra enlever le # au début d'une des lignes pour activer l'instruction qu'elle contient.

Faire défilier les lignes

Modifier :
Anonymous_enabled=YES

en

Anonymous_enabled=NO

Toujours en faisant défiler les lignes, enlevez le # devant les lignes suivantes :

Local_enable = YES
local_unmask=022
Write_enabled=YES
Ascii\_upload\_enabled=YES
Ascii\_download\_enabled=YES

Puis faites [ctrl] + [x] puis [o] puis [Entrée]

Le server est prêt

DefaultRoot

Le répertoire auquel auront accès les personnes qui se connecteront en FTP.

Par défaut, quelqu'un qui se connecte en FTP au serveur peut accéder à tous les dossiers du serveur !

Bien qu'il ne puisse pas les modifier pour la plupart, ce n'est certainement pas quelque chose que vous avez envie d'autoriser. Il est donc recommandé d'activer l'option DefaultRoot

Pour activer DefaultRoot, supprimez le # en début de ligne.
La valeur ~ de la commande signifie que l'utilisateur sera limité à son dossier personnel (/home/me par exemple). Il ne pourra pas aller "fouiner" dans d'autres dossiers.

Installer le client

Télécharger FileZilla ici adapté à votre OS.

Avec Linux vous pouvez aussi taper

sudo apt-get install filezilla

Connexion au Raspi 3

Avant de nous connecter, il nous faut l’adresse IP de notre Raspberry Pi. Pour la trouver en tapant cette commande (depuis le RPi ou en SSH) :

​​​​ifconfig

Si le Raspberry PI est connecté en ethernet, l’adresse IP se trouvera à côté de eth0, et si el est en wifi, elle sera à côté de wlan0. L’adresse est de la forme 192.168.X.X

Notez cette adresse et revenez à FileZilla.

Dans la zone de connexion rapide de Filezilla, renseignez l’IP (192.168.X.X), le nom d’utilisateur (pi), et le mot de passe (raspberry par défaut).

Vous avez mainteant accès aux fichiers dans le raspi 3 contenant le noeud ethereum

Tests

  1. https://ftptest.net
  2. $ telnet mon.ip.ftp
  3. Les connexions sont assez faciles à suivre par IP: grep ftp /etc/services
  4. Utilisez netstat pour voir les connexions ouvertes. Par exemple, pour un FTP simple : $ netstat -tan | grep \\:21
  5. Ou, si vous voulez que l'on confirme quel programme utilise le port [TCP] 21 : sudo netstat -tanp | grep \\:21
  6. Si vous utilisez ftp, vous pouvez voir qui est connecté en temps réel et quel type d'opération est en train de faire (dowload, upload) avec la commande suivante: $ pure-ftpwho (_voir https://www.pureftpd.org/project/pure-ftpd)

Test accès ftp et sécurisation du service

1.Activer le service dans inetd.conf et lancer le service inetd .

2.Vérifier que le port est bien ouvert avec la commande netstat

​​​​root@monlabtop:/home# netstat -atup | grep LISTEN
​​​​tcp        0      0 *:ftp                   *:*                     LISTEN      879/inetd

3.Vérifier que rien n'interdit l'accès au service ftp dans les fichiers hosts.allow et hosts.deny

4.Commenter le fichier /etc/ftpusers comme ci-dessous :

​​​​\# /etc/ftpusers: list of users disallowed ftp access. See ftpusers(5).
​​​​root
​​​​#ftp
​​​​#anonymous

5.Tester et vérifier le bon fonctionnement de l'accès ftp anonyme en utilisant le compte "ftp" ou "anonymous" avec la commande :

​​​​lftp localhost -u anonymous

ou

​​​​lftp localhost -u ftp

Si la configuration est correcte, vous devriez avoir le résultat suivant :

​​​​root@master:/home# lftp localhost -u ftp
​​​​Mot de passe: #Il n'y a pas de mot de passe, faites ENTREE
​​​​lftp ftp@localhost:~> ls
​​​​total 20
​​​​d--x--x--x    2 0        0            4096 May  5 03:35 bin
​​​​d--x--x--x    2 0        0            4096 May  5 03:35 etc
​​​​drwx-wx-wt    2 0        0            4096 May  5 03:04 incoming
​​​​dr-xr-xr-x    2 0        0            4096 May  5 03:32 lib
​​​​dr-xr-xr-x    2 0        0            4096 May  5 03:04 pub
  1. Commentez la ligne anonymous dans le fichier /etc/ftpusers et refaites un essai de connexion.

  2. Faites un test en utilisant un compte système existant, par exemple "lftp localhost -u util" si util est votre compte.

  3. Restaurez l'état initial du fichier /etc/ftpusers.

  4. Interdisez l'accès ftp avec TCP-Wrapper. Testez avec l'accès anonyme et en utilisant un compte authentifié.

NLDR : Les tests de sécurité et d'usages auront lieu lors des prochaines soirées apéro DAISEE, Internet Of Energy, Energy as a Commons, à Rennes. Pensez à nous suivre pour être tenu⋅e⋅s informé⋅e⋅s

Licence

# DON'T BE A DICK PUBLIC LICENSE

> Version 1.1, December 2016

> Copyright (C) 2018 Xavier Coadic pour DAISEE.org


Everyone is permitted to copy and distribute verbatim or modified
copies of this license document.

> DON'T BE A DICK PUBLIC LICENSE
> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

1. Do whatever you like with the original work, just don't be a dick.

   Being a dick includes - but is not limited to - the following instances:

 1a. Outright copyright infringement - Don't just copy this and change the name.
 1b. Selling the unmodified original with no work done what-so-ever, that's REALLY being a dick.
 1c. Modifying the original work to contain hidden harmful content. That would make you a PROPER dick.

2. If you become rich through modifications, related works/services, or supporting the original work,
share the love. Only a dick would make loads off this work and not buy the original work's
creator(s) a pint.

3. Code is provided with no warranty. Using somebody else's code and bitching when it goes wrong makes
you a DONKEY dick. Fix the problem yourself. A non-dick would submit the fix back.

Everyone is permitted to copy and distribute verbatim or modified
copies of this license document.

> DON'T BE A DICK PUBLIC LICENSE
> TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

1. Do whatever you like with the original work, just don't be a dick.

   Being a dick includes - but is not limited to - the following instances:

 1a. Outright copyright infringement - Don't just copy this and change the name.
 1b. Selling the unmodified original with no work done what-so-ever, that's REALLY being a dick.
 1c. Modifying the original work to contain hidden harmful content. That would make you a PROPER dick.

2. If you become rich through modifications, related works/services, or supporting the original work,
share the love. Only a dick would make loads off this work and not buy the original work's
creator(s) a pint.

3. Code is provided with no warranty. Using somebody else's code and bitching when it goes wrong makes
you a DONKEY dick. Fix the problem yourself. A non-dick would submit the fix back.

Select a repo