domenica 24 febbraio 2019

Inviare mail da riga di comando con Telnet

E' possibile inviare mail da riga di comando ma occorre soddisfare alcune importanti condizioni:

  • il proprio sistema operativo (windows o linux che sia) deve avere installata la funzionalità client del protocollo Telnet;
  • l'utente che invia le mail deve avere un account di posta elettronica per cui sia possibile accedere alle impostazioni DNS del dominio associato al proprio indirizzo mail;
  • attivare un account presso servizi online che consentano di gestire mail inviate in questo modo (per esempio smtp2go.com che è la scelta che ho fatto inizialmente io; anche gmail consente di utilizzare tale servizio ma devo ancora verificare ed eventualmente ne parlerò in un prossimo post oppure in un aggiornamento di questo)
[impostazioni di smtp2go.com...]
[impostazioni DNS...]

Aprire il terminale o la command window e digitare:
telnet mail.smtp2go.com 2525
e premere invio (ogni altro server di posta che consenta connessioni via protocollo telnet può andare bene); 2525 è la porta internet che il server di smtp2go.com usa per le connessioni con questo protocollo.
Dopo la risposta del server (codice 220) presentarsi digitando:
EHLO RaspberryPI
seguirà una lunga risposta del server costituita da frasi con codice 250;
Digitare ora:
auth login
il server risponderà con la richiesta di username e password solo che lo farà. utilizzando la codifica Base 64 e quindi la risposta sarà costituita da "parole" apparentemente senza senso... (VXNlcm5hbWU6 per username, e UGFzc3dvcmQ6 per password); ad ogni richiesta sarà quindi necessario rispondere con i corretti termini (sempre codificati in Base64 => vedi qui);
il server risponderà con
235 Authentication succeeded
ed a questgo punto possiamo finalmente pensare alla nostra mail
Digitiamo:
mail from: mionome@miodomino.it (il mittente)
la risposta sarà un ok.
quindi digitare:
rcpt to: suonomedominio.it
anche qui la risposta sarà un ok ed una accettazione dei dati di mittente e  destinatario;
digitare DATA
seguirà la richiesta da parte del server di digitareil messaggio
Digitare:
Subject:  Oggetto della mail
poi andare a capo due volte e finalmente digitare il corpo del messaggio... alla fine andare a capo e digitare un punrto senza nient'altro ne prima ne dopo,
il punto isolato rappresenta la fin del messagio. digitare:
quit
per uscire da telnet,





domenica 3 febbraio 2019

Installare stampanti HP su Raspberry Pi

HP prduce Driver per stampanti e Fax specificamente per Sistemi operativi Linux.
Per stampare con stampanti HP da Raspberry Pi occorre installare i programmi cups, hplip e l'interfaccia grafica di hplip.
Da shell i comandi sono i seguenti...

sudo su
apt-get update
apt-get install hplip cups
usermod -a -G lpadmin pi

Con solo queste istallazioni sarà possibile accedere all'interfaccia web delle applicazioni aprendo un browser web e digitando:

localhost:631

ma da questa interfaccia non sempre è possibile aggiungere stampanti che permettano di stampare. Infatti dopo aver installato la stampante la stampa si blocca per un errore definito "Filter failed"
Per superare questo errore è conveniente installare l'interfaccia grafica di hplip con il seguente comando:

apt-get install hplip-gui

Dopo l'istallazione sarà possibile accedere, dalla barra delle applicazioni e dal menù preferenze>>HPLIP Toolbox, alla procedura guidata per aggiungere una stampante.
Con le stampanti di rete (come è successo a me) è conveniente cercare la stampante manualmente scegliendo il pulsante "Opzioni avenzate" inserendo direttamente l'indirizzo ip della stampante in rete.

sabato 2 febbraio 2019

Condividere file con Windows da Raspberry e viceversa

Per condividere file tra windows e Linux (Raspbian) si usa un programma chiamato Samba (SMB/CIFS sono protocolli di comunicazione tra computer linux e windows all'interno di una LAN ed il nome è stato storpiato per renderlo più famigliare SMB -> Samba; SMB = Server Message Block, CIFS = Common Internet File Sistem).
Bisogna istallarli e configurarli; questi i comandi da shell:

sudo apt-get update
sudo apt-get upgrade

per aggiornare il software del nostro Raspberry; poi:

sudo apt-get install samba samba-common-bin smbclient cifs-utils

per istallare samba e cifs.

Condividere una cartella di Raspberry PI con MS Windows


Nel nostro Raspberry creare una cartella da condividere nella home dell'utente predefinito (pi)

mkdir ~/RPIShare

NB: la tilde (~) si fa con altGr + ì oppure con "pagina giù" oppure con Alt + 126.

Infine entrare nel file di configurazione di samba per modificare le impostazioni...

sudo nano /etc/samba/smb.conf

cercare questa stringa e modificarla o de-commentarla...

workgroup = WORKGROUP

Sempre nel file di configurazione arrivare fino in fondo al testo ed aggiungere queste righe:

[PiShare]
comment=Raspberry Pi Share
path=/home/pi/RPIShare
browseable=Yes
writeable=Yes
only guest=no

Nel computer Windows che farà da client sarà necessario attivare la specifica funzionalità:
Dal menù "Impostazioni" aprire la finestra "Funzionalità di Windows" e cercare la voce "Supporto per condivisione file SMB/CIFS" e spuntare la 'sottovoce' "client SMB/CIFS". Riavviare il PC.

Ora si potrà vedere Raspberry dalle risorse di rete di un PC MSWindows creando e modificando file all'interno delle cartelle (sia all'interno delle risorse di rete del PC Windows sia all'interno della cartella RPIShare che abbiamo creato in Raspberry.

Condividere una cartella MSindows con Raspberry PI

Un po' più macchinoso effettuare la condivisione opposta.
Prima di tutto creiamo una cartella, per esempio sul desktop del PC Windows, che conterrà i file da condividere (chiamiamola WinShare). Dalle "Proprietà" della cartella diamo ad "Everyone" le autorizzazioni di controllo completo sia nella scheda "Condivisione" sia in quella "Sicurezza".

Ora sul nostro Raspberry creiamo una cartella che diventerà la destinazione della cartella Windows condivisa (chiamiamola "WindowShare") ... da shell

mkdir ~/WindowShare

Ora, sempre da shell modifichiamo come root il file /etc/fstab:

sudo nano /etc/fstab

e aggiungiamo in fondo questa riga
 
//remote_ip_address/folder /srv/mount_destination cifs vers=3.0,username=<add_your_UN>,noauto,user 0 0

Poi modifichiamo le autorizzazioni per il file /usr/sbin/mount.cifs da -rwxr-xr-x a rwsr-xr-x
   
sudo chmod 4755 /usr/sbin/mount.cifs

Possiamo effettuare il reboot del nostro Raspberry. 
A questo punto per vedere i file di window nella cartella condivisa da windows sarà necessario effettuare il mount della stessa risorsa: sempre da shell:
   
USER=<add_your_UN> mount /srv/mount_destination

Ci verrà chiesta la password dell'utente windows che abbiamo indicato nel fil di configurazione
          
Password for <add_your_UN>@//remote_ip_address/folder:  ************

... e visualizzeremo nella cartella WindowShare del Raspberry il contenuto nella cartella WShare di Windows potendo modificare (come utente Pi) i file da entrambi i lati.

Collegarsi da remoto a Raspberry

SSH è un protocollo di comunicazione che può permetterci di lavorare da riga di comando su Raspberry Pi stando comodamente seduti davanti al nostro PC senza usare doppia tastiera, mouse e monitor...
In un vecchio post ho già indicato come trasformare il nostro computer Linux in server SSH e poi come accedere allo stesso computer via Putty da PC remoto.
La differenza interessante è che SSH è già istallato su Raspbian e non c'è quindi nessun bisogno di installare alcunché.
Basta accedere alla finestra (interfaccia grafica) Preferenze>>Raspberry Pi Configuration e, dalla finestra che si apre selezionare il tab "Interfaces"; lì sarà possibile abilitare SSH.
Da PC remoto quindi avviando Putty e inserendo l'IP del nostro Raspberry si aprirà una finestra terminale che ci permetterà di dialogare direttamente con lui.
Ancora più interessante sarà accedere da remoto alla interfaccia grafica di Raspberry...
In questo caso bisogna scaricare e installare sul nostro PC il programma VNC (scaricalo da qui) e ancora una volta, con lo stesso sistema utilizzato per SSH, abilitare anche VNC.
Dopo aver avviato il programma sul nostro PC ed inserito l'indirizzo IP del Raspberry si potrà lavorare comodamente con due computer usando un solo monitor, una tastiera ed un mouse.

Loggarsi come Root su RaspberryPi/Raspbian

L'utente Root, su Sistemi Operativi Linux, è l'utente amministratore e, normalmente, all'istallazione del S.O. viene richiesto all'operatore di impostare una password per tale utente. Difficilmente viene usata ma qualche volta serve: per esempio quando si istalla software o aggiornamenti di software.
Durante l'istallazione di Raspbian invece la richiesta di impostare una password per l'utente root non viene effettuata perché, per ragioni di sicurezza non viene impostata.
Se si prova infatti a loggarsi come Super User (su) da riga di comando verrà chiesta la password e non c'è modo di effettuare l'accesso.
L'unica possibilità sarà quella di modificarla utilizzando il comando :

sudo passwd su

Verrà richiesto di digitare la password e di ridigitarla per conferma.
Alla fine il sistema comunicherà che l'operazione è andata a buon fine.

Prima installazione ed uso di Raspberry Pi 3B+

Raspberry (nelle sue diverse versioni è un piccolo computer del valore commerciale di circa 30€ con un processore quad-core a 64 bit, 1.4 GHz di clock ed una memoria RAM di 1GB.
Non possiede un Hard Disk fisico ma al suo posto c'è una scheda SD (consigliata 8 GB ma si può usare anche molto più capiente 16 o 32 GB).
Con tale apparecchiatura è possibile usare diversi Sistemi Operativi sia Windows che Linux; esiste, in particolare, una distribuzione Linux appositamente progettata per questo dispositivo denominata Raspbian e derivata da Debian.
Dopo l'acquisto, fuori dalla scatola, il Raspberry si presenta come nell'immagine soprastante e per farlo funzionare occorre un alimentatore da 5 Volt, una tastiera, un mouse (o periferiche analoghe) anche wireless o bluetooth, un monitor (il tutto da collegare alle specifiche porte in dotazione al dispositivo) e, soprattutto, una capiente scheda SD.
Ecco la procedura per l'installazione del Sistema operativo Raspbian...

  • La prima operazione da compiere è quella di scaricare su un PC uno specifico programma per la formattazione di una scheda SD la quale, sia che sia stata acquistata ex novo, sia che sia già stata usata per altre attività, va formattata (si può usare un programma tipo "SD Card Formatter").
  • E' inoltre necessario scaricare dal sito ufficiale il S.O. nella sua versione più recente... (https://www.raspberrypi.org/downloads/raspbian/ oppure fai click qui per scaricare la versione più recente); il file scaricato è un file compresso con estensione .zip che va decompresso. Si otterrà un file con estensione .img che andrà, con opportuno programma salvato sulla scheda SD;
  • Il programma per salvare il file immagine sulla scheda SD potrebbe essere Win32DiskImager (scaricalo da qui); Basterà avviare il programma dopo istallazione, e indicare sia il file di origine (il file del S.O con estensione .img) e la cartella di destinazione (la scheda SD precedentemente formattata).
Ora si potrà inserire la scheda SD nello specifico alloggiamento e avviare il Raspberry...