mainSlogopaceclick Blog  · informatica · elettronica · astronomia..

Connettersi ad un RaspberryPi tramite Remote Desktop Protocol (RDP) usando XRDP

Chi ha detto che per usare un RaspberryPi si debba per forza usare SSH o un monitor esterno con tastiera dedicata?

Un modo semplice per avere a disposizione il Desktop (o Scrivania) connettendosi comodamente dal proprio PC è tramite il Remote Desktop Protocol.

undefined

In questo modo il Raspberry potrà essere lasciato connesso solamente alla Ethernet, senza altri fastidiosi cavi.

1. Connettersi al Raspberry tramite SSH

Preparare il Raspberry con una distro Debian come Raspbian (o Kali Linux), e connettersi tramite SSH.
Per connettersi tramite SSH usare Putty (su Windows) o il comando (da Linux):

ssh pi@192.168.x.x

dove al posto di x dovrete inserire il vero ip del raspberry; la password di default di raspbian per l'utente 'pi' è 'raspberry'.

Una volta connessi, eseguite un update dei packages con

sudo su
apt-get update

2. Installare XRDP

apt-get install xrdp

3. Avviare il servizio

service xrdp start
service xrdp-sesman start

4. Impostare l'auto avvio del servizio all'accensione

update-rc.d xrdp enable

5. Connettersi tramite RDP

A questo punto il Raspberry è pronto, possiamo anche dimenticarci l'SSH.

Apriamo l'applicazione (client) desktop remoto che preferiamo, e connettiamoci in via remota.

undefined

Inoltrare dati da seriale virtuale ad un indirizzo di rete tramite socket TCP

Vediamo come inoltrare dati da seriale virtuale verso un indirizzo di rete.

undefined

Passo 1 - Scegliere la seriale da utilizzare

E' possibile visualizzare la lista delle seriali virtuali disponibili nel sistema con il comando:

dmesg | grep tty


Passo 2 - Socat

Socat è un utilissimo strumento già presente in molte distro Linux, che consente di manipolare ed eseguire il forwarding di pacchetti di rete.

Aprire un terminale ed acquisire i privilegi di ROOT (importante).

Eseguire questo comando per inizializzare l'inoltro dei pacchetti in arrivo 
sulla seriale ttyS0, verso l'indirizzo IP di loopback, sulla porta 60001:

socat pty,link=/dev/ttyS0,raw tcp:127.0.0.1:60001&

Ovviamente basterà modificare il comando con la seriale e l'indirizzo IP:porta desiderati.

Un altro possibile uso è il binding (unione) di due differenti seriali:

socat PTY,link=/dev/ttyS10 PTY,link=/dev/ttyS11


Passo 3 - Invio/Ricezione con Python

3.1

Per poter ricevere i dati, dobbiamo predisporre un listener sull'indirizzo IP di destinazione (non trattato in dettaglio in questo articolo). Nel nostro caso usiamo semplicemente netcat, in ascolto sempre sulla porta 60001 (attenzione che la porta scelta non sia gìà in uso).
Diamo il comando (in un nuovo terminale con privilegi di ROOT):

nc -l 60001

oppure

nc -v localhost 60001

3.2

Prepariamo un semplice script per scrivere su seriale (utilizzando il Python) e salviamolo con il nome sender.py:

#START (serial forwarder)
import sys
import time
import os, pty, serial

#configure the serial connections
print "\nSTARTING SERIAL PRINT\n"

# open serial port
ser = serial.Serial('/dev/ttyS0', 9600, rtscts=True, dsrdtr=True)
print "SERIAL FORWARDER > (remind to use this as a root!)\n"

# write test string
ser.write("\n > serial test for an ALARM! \n go go ALARM! go :) ")

# close serial port
ser.close();
#END

eseguiamolo da un nuovo terminale (con privilegi di ROOT) con il comando seguente:

python sender.py

NOTA: installiamo pyserial se necessario (se andando ad eseguire il passo precedente riceviamo un errore):

sudo apt-get install python-serial

Potrete adesso vedere la connessione di socat, verso l'IP di destinazione. 

Ulteriori informazioni su socat, al sito ufficiale.

Come cambiare l'indirizzo MAC alla scheda di rete su Windows

L'indirizzo MAC (o MAC Address) viene usato dalle schede di rete per identificarsi nell'interscambio di informazioni.

MAC è l'acronimo di Media Access Control ed è costituito da un codice lungo 6 byte (48 bit).
Viene assegnato dal produttore della scheda al momento della sua creazione ed è univoco per ogni scheda.
I primi 3 byte sono l'identificativo della azienda produttrice, gli ultimi 3 rappresentano uno specifico sotto-indirizzo univoco.

undefined

L'IEEE (Institute of Electrical and Electronics Engineers) ha creato questo indirizzo prevedendone la saturazione intorno al 2100 (poiché sono disponibili 281.400 miliardi di diverse combinazioni).

Poiché ogni scheda di rete ha memorizzato un proprio indirizzo MAC, nei nostri computer equipaggiati con wifi-Bluetooth-ecc.. avremo più indirizzi. (per scoprire quali sono, salta al punto 'Verifica')

Se avessimo la necessità di cambiare il MAC di una specifica scheda di rete (per svariati motivi, come ad esempio per aggirare un filtro nel nostro router), dovremmo procedere come segue.

 

Cambiamo

Apriamo proprietà del sistema

undefined


Andiamo su Gestione Dispositivi

undefined


Cerchiamo la scheda a cui vogliamo modificare il MAC e andiamo sulle sue proprietà

undefined


Cerchiamo, da avanzate "Servizio di rete" o ("Network address")

undefined

Selezioniamo il campo vuoto e inseriamo (SENZA - o : o .) l'indirizzo MAC che vogliamo compaia.

Ad es. se vogliamo come nuovo MAC 08-00-27-00-E0-4D, mettiamo 08002700E04D.

Una volta inserito, diamo OK e RIAVVIAMO il sistema.

 

Come scegliere il MAC

Possiamo inserire praticamente qualsiasi combinazione: ecco la lista ufficiale per chiarire di cosa parlo. 

Strumenti utili

Se siamo in possesso di un indirizzo MAC del quale vogliamo maggiori dettagli, come il nome del produttore, andiamo su questo sito.

 

Verifica

Per verificare quali sono gli indirizzi MAC delle nostre schede di rete:

-apriamo il prompt come amministratori (start>cerchiamo 'cmd'>click destro>esegui come amministratore)

-diamo il comando

 undefined

 

NOTA:

come scritto all'inizio, il MAC viene memorizzato dalle case a livello firmware nei chip delle schede di rete, e non è alterabile permanentemente.

La nostra modifica sarà 'virtuale', cioè il nostro sistema 'simulerà' il MAC immesso come reale, ma non verrà alterato il MAC memorizzato nell'hardware. Il che vuol dire che a seguito di disinstallazioni driver/aggiornamenti anche del sistema, potremmo dover eseguire di nuovo la procedura.

 

Home