Home Server con Raspberry Pi

Questo articolo è il primo di una serie che descriverà come creare un piccolo server domestico, utile in ambito IoT ma non solo.
In ottica IoT, l’inevitabile proliferazione in casa di dispositivi e servizi di domotica, porterà presto ad avere l’esigenza di poterli gestire in modo efficiente e centralizzato.
Ad esempio, si pensi alla comodità di poter indirizzare ciascun dispsitivo con un nome piuttosto che con un indirizzo IP, il poter cambiare tutti o parte degli indirizzi assegnati agendo su un unico file.

Inizialmente, i servizi di base che mi sono riproposto di gestire sono

  • Server DHCP
  • Server DNS
  • Proxy server con certificati SSL
  • MQTT broker

Le caratteristiche a mio avviso necessarie per questo tipo di server sono

  • bassi consumi
  • potenza di calcolo adeguata
  • rumorosità bassa/assente (fanless)
  • rapporto prezzo/prestazioni adeguato

A livello hardware, la mia scelta è andata subito sulla scheda Raspberry pi 3, mentre dal punto di vista software ho optato per la distro ufficiale Raspian. Al momento della scrittura di questo articolo la distro è basata su Debian Stretch.

1. La preparazione

Per creare fisicamente il server sono necessari

  • Scheda Raspberry Pi 3 o equivalente
  • Alimentatore 2,5Ah con attacco MiniUSB
  • Scheda MicroSD da almeno 8GB classe 10
  • (Opzionale) Case per Raspberry Pi 3
  • Lettore di schede MicroSD/SD per l’installazione dell’immagine Raspian

Per la sola fase di installazione servirà collegre il Raspberry ad un monitor con ingresso HDMI e ad una tastiera USB per poter interagire con i menu. E’ meglio anche collegare la scheda alla rete, in modo da configurare il tutto in fase di installazione.
Una volta preparato l’hardware si deve scaricare l’immagine della distro Raspian, dal sito ufficiale, cliccando sul pulsante “Download ZIP” della versione LITE, visto che non stiamo installando un ambiente desktop ma a riga di comando.

Dato che l’installazione riguarda un sistema operativo, conviene verificare che il file scaricato non sia corrotto. Questo si può fare verificandone il relativo codice di CHECKSUM, in questo caso SHA-256.
Questa veloce verifica ci potrà evitare di dover interrompere la lunga fase di installazione per eventuali difetti dell’immagine.
Per sapere come controllare l’integrità del download si può fare riferimento a questo mio precedente articolo.

L’immagine può essere caricata sulla scheda utlizzando Etcher, un programma gratuito e molto semplice da usare, come spiegato in questo articolo.

Una volta pronta la SD e inserita nel Raspberry è possibile avviare. Quando si arriva al login si può entrare usando i dati username: pi e password: raspberry.

A questo punto è necessario apportare le prime configurazioni. Con il comando

$ sudo raspi-config

apparirà il seguente menù di configurazione di raspbian

La prima cosa da fare è sicuramente quella di cambiare la password di default usando la prima voce del menù. Basterà digitare la nuova password per poi reinserirla per confermarne la corretta digitazione.

Il passo successivo sarà quello di abilitare il server SSH. Questo darà la possibilità di scollegare monitor e tastiera e accedere al raspberry da un computer remoto tramite un programma tipo Putty. Per fare questo si deve entrare alla voce di menu 5 – Interfacing  Options, dalla quale si entra in questo sottomenu

Selezionando la voce P2 SSH potremo abilitare il server SSH.

Come ultima cosa necessaria, si dovrà estendere la partizione in modo da sfruttare a pieno la capacità della scheda SD. Dal menu principale si deve scegliere l’opzione 7 Advanced Options.

Selezionando la prima voce A1 Expand Filesystem raspbian adeguerà la dimensione del filesystem alla capacità della SD.

Ora, una volta usciti dalla configurazione e prima di riavviare, conviene conoscere l’indirizzo IP assegnato al raspberry con il comando

$ sudo ifconfig

controllando l’indirizzo dell’interfaccia eth0 se si sta usando il collegamento via cavo ethernet o wlan0 se invece si è collegati via wifi.

A questo punto si può uscire e riavviare il Raspberry con il comando

$ sudo reboot

Prima di scollegare tastiera e monitor, testare il collegamento SSH con putty

mettendo al posto di raspberry.ip.address l’indirizzo del raspberry.
Se tutto funziona, apparirà una finestra console dove ci viene richiesto di effettuare il login.

A questo punto la base del nostro nuovo server domestico è pronta, in attesa di cominciare ad installare i vari servizi.

Come prima cosa però, è consigliato configurare il nostro server con un indirizzo statico, come viene spiegato in questo articolo.

Permanent link to this article: https://www.iotnotes.net/2018/12/11/home-server-con-raspberry-pi/