Configurazione RPI senza monitor e tastiera

Raspberry PI case

Come accedere alla configurazione del nostro RPI senza un acccesso da tastiera o monitor.

Il tanto atteso Raspberry PI è finalmente giunto sulla nostra scrivania, e non vediamo l’ora di iniziare a smanettare. Purtroppo ci rendiamo subito conto di qualcosa che non va:

  1. Non abbiamo un cavo HDMI pronto

  2. Il nostro monitor ha un solo ingresso VGA

  3. Non abbiamo un mouse o una tastiera USB di scorta

  4. Non abbiamo lo spazio necessario e sufficiente per il montaggio “a ragno” con tutti i cavi volanti

In questi casi possiamo sfruttare l’accesso al nostro amico in modalità “headless” (senza testa) per la corretta configurazione. Vediamo come.

Getting started

Partiamo dal presupposto di avere a disposizione almeno i seguenti oggetti:

  1. Un Raspberry Pi 2 o 3, modello B

  2. Una SD card (o micro SD) di almeno 8 GB

  3. Un alimentatore (il caricabatterie dello smartphone, ad esempio)

  4. Un router wifi

Installare Raspbian sulla SD

In primo luogo occorre controllare la presenza del sistema operativo. Alcuni distributori offrono Raspbian configurato su SD all’acquisto, altri vendono separatamente l’hardware e la scheda SD da installare. Noi partiremo dal presupposto più sfavorevole: abbiamo un RPI ed una SD vuota.

Per prima cosa occorrerà scaricare l’immagine del nostro sistema operativo dal link

http://downloads.raspberrypi.org/raspbian_latest

Verrà presentato un file dal nome simile a “2017-03-02-raspbian-jessie.zip” che scaricheremo e porremo in opportuna locazione sul nostro fido PC, per poi decomprimerlo ed ottenere un file con estensione .img o file immagine.

Ciascun sistema operativo ha i propri programmi per la scrittura di immagini su disco e SD card (Linux e MAC prediligonola funzione dd da linea di comando, Windows usa win32diskimager), quindi anziché descrivere passo passo ciascuna funzione, vi lascio il piacere di sperimentare.

In linea di massima sarà sufficiente seguire gli step seguenti:

  1. Inserire la SD card nel lettore apposito

  2. Localizzare il disco corrispondente

  3. Procedere alla copia, usando il file come sorgente e la SD come destinazione

  4. Smontare la SD

Il seguente articolo contiene tutte le informazioni necessarie per ciascun sistema operativo, sia con interfaccia grafica che a linea di comando.

http://elinux.org/RPi_Easy_SD_Card_Setup

Settaggio di rete

Ora possiamo procedere all’accensione.

Colleghiamo la porta di rete del PI con in router attraverso un cavo Ethernet, inseriamo la scheda SD e diamo corrente: il sistema dovrebbe partire in circa 90 secondi.

Apriamo ora una finestra con un terminale, e digitiamo il comando “arp -a”: dovremmo avere una risposta simile alla seguente.

Dal precedente messaggio si evince che il router ha asssegnato al PI l’indirizzo 192.168.1.8 tramite la funzione DHCP. Ovviamente tale indirizzo varia da installazione a installazione a seconda dell’ambiente; in genere i primi tre ottetti (192.168.1) restano uguali, trattandosi di una rete interna privata, e cambia l’ultimo ottetto.
Un altro sistema per riconoscere l’IP di rete del PI è utilizzando l’interfaccia web del router: è sufficiente puntare il proprio browser sull’indirizzo 192.168.1.1 (più raramente il 192.168.0.1), autenticarsi ed accedere alla pagina delle connessioni (lista client connessi al router).
Abbiamo l’IP fornito al Raspberry PI nella rete interna: come possiamo utilizzarlo?

 

Accesso via SSH

I sistemi basati su Linux consentono l’accesso sicuro ad un apparrato rempoto che abbia una opportuna configurazione (SSH è infatti l’acronimo di Secure Shell).
I sistemi Microsoft potranno utilizzare il pacchetto denominato “Putty” dall’indirizzo http://www.circuitbasics.com/2qx6 per avere un client SSH funzionale.
Si può quindi procedere con l’accesso al PI attraverso il comando

mentre gli utenti Windows avranno la seguente schermata:

Accesso a RPI senza monitor

 

in cui, ovviamente, sarà necessario inserire il corretto indirizzo IP del PI.
Il comando apre una shell sicura sul PI all’indirizzo definito, con le seguenti credenziali:
Utente : pi
password: raspberry
entrambe rigorosamente in minuscolo (notare che la password va digitata “alla cieca”, in quanto per ragioni di sicurezza SSH non stampa a video le lettere durante la digitazione).

Configurazione di RPI

Siamo all’interno del PI, pilotandolo in rete dal nostro computer principale.
La prima azione da compiere, una tantum, è l’espansione del filesystem. L’immagine che abbiamo copiato sulla scheda SD, infatti, è ridotta ai minimi termini, e contiene tutto e solo il software strettamente necessario, onde consentire la distribuzione di file il più compatti possibile. Ma dal momento che la nostra scheda SD è più capiente (in genere almeno 8-16 GB) sarebbe sciocco limitarsi allo spazio dell’immagine precaricata.
Per questa ragione, alla prima partenza del PI viene visualizzata la seguente schermata:

RPI senza monitor

 

Si tratta di “raspi-config”, un modulo software di ausilio alla configurazione delle opzioni di funzionamento del Raspberry. Selezioniamo “Expand Filesystem” per consentire al sistema l’utilizzo dell’intera scheda, aggettiamo di buon grado il reboot… e ci ritroveremo con un  bel “connection lost…” sul nostro client SSH.
Alla ripartenza scopriremo che il filesystem occupa interamente lo spazio esistente sulla scheda SD. Perfetto! Ora, prima di iniziare a lavorare, occorre fare un po dì’ordine.

Upgrade e update

Colleghiamoci nuovamente con il PI via SSH, utilizzando il noto comando

e fornendo username e password. Al prompt digitiamo il comando

seguito da

per allineare il nostro Raspberry con gli ultimi aggiornamenti presenti nel repository.
Otterremo una serie di messaggi:

Ecco fatto. Ora il nostro PI è aggiornato all’ultima patch!

 

Opzioni di controllo e sicurezza

I comandi seguenti non sono strettamente necessari al funzionamento del Raspberry PI, ma vengono spesso considerati una valida politica di security. Vediamoli in dettaglio.

Watchdog

Lo scopo di questo programma è quello di resettare automaticamente RPI qualora diventasse non responsivo ai comandi a causa di una coda di richieste troppo lunga, limitato spazio di swap, uso pesante delle CPU, surrisscaldamento o altre possibiità del genere.
Digitiamo i seguenti comandi:

e in coda al file aperto aggiungiamo la seguente riga:

E’ ora possibile aggiungere watchdog alla lista delle applicazioni da lanciare allo startup:

e aggiorniamo il file di configurazione:

Infine, lanciamo watchdog con il seguente comando:

Firewall

Un firewall è una applicazione che protegge il sistema da indebite intrusioni.
Per limitare l’accesso al Raspberry PI utilizzeremo UFW (Uncomplicated FireWall):

Potremo controllarne lo stato con il comando

In questo modo RPI accetterà connessioni esterne esclusivamente sulla porta 22 (SSH) opportunamente protetta da password. E’ anche possibile securizzare ulteriormente l’accesso SSH, ma si tratta di un argomento che troverebbe posto all’interno di una rubrica che descriva la gestione della sicurezza in modo più approfondito.

fail2ban

Il programma fail2ban (https://www.fail2ban.org/wiki/index.php/Main_Page ) si occupa di eseguire la scansione dei file di log (ad esempio /var/log/apache/error_log)  e prevenire l’accesso di quegli indirizzi IP che mostrino intenti malevoli (troppe richieste di password, ricerca di exploits e così via).
Vediamo come si procede alla sua installazione:

Occorre quindi eseguire il restart di fail2ban:

controllando le azioni avvenute tramite il comando

anch’esso automatizzabile.

 

Conclusioni

Abbiamo completato la configurazione del nostro Raspberry PI senza dover collegare monitor, tastiera o mouse, grazie alla flessibilità di Raspbian. Con un pizzico di lavoro in più sarebbe possibile fare a meno anche del cavo di rete, utilizzando il sistema wifi preinstallato nel RPI 3 o una scheda wifi USB sul RPI 2.

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.