Trimiteți adresa unui Raspberry Pi în căsuța Gmail la pornirea sistemului

Ghid pas cu pas despre modul de trimitere al adresei IP al unui Raspberry Pi la contul dumneavoastră de Gmail la pornirea sistemului. În acest fel, este mai ușor să găsiți și să accesați dispozitivul prin intermediul rețelei locale.

Raspberry Pi 3 Model B

Acest tutorial este dedicat celor care accesează Raspberry Pi prin intermediul unui alt dispozitiv, de exemplu un laptop. Nu contează dacă folosiți SSH (Secure Shell), VNC (Virtual Network Computing) sau orice altă modalitate de acces. Pun pariu că v-ați regăsit cel puțin o dată în următoarea situație. Conectați cablul Ethernet, porniți dispozitivul Pi și vă întrebați oare ce adresa IP a fost atribuită de această dată la placa dumneavoastră.

În momentul în care scriu acest tutorial, dețin un Raspberry Pi 3 Model B pe care rulează un Raspbian Jessie cu PIXEL. Toate informațiile din articol se pot aplica și în viitoarele versiuni Raspbian.

Dar așteptați…

Puteți să deschideți un browser, să deschideți interfața web a routerului dumneavoastră de acasă și să găsiți acolo adresa dispozitivului. Lista de clienți DHCP nu minte, nu- așa? Sau chiar mai bine, puteți atribui o adresă IP statică la Raspberry Pi. Acest lucru se poate realiza fie din setările routerului, fie prin configurări la nivel de Raspberry PI. Dar dacă nu avem acest privilegiu? Dacă folosiți Raspberry Pi într-un laborator școlar sau universitar? În acest caz este foarte posibil să nu aveți dreptul de a accesa lista de dispozitive conectate la rețea sau de a efectua configurări suplimentare.

Există, de asemenea, metode brute-force pentru a găsi adresa IP al unui Raspberry Pi. Ping la întreaga rețea este o soluție plauzibilă. Există chiar instrumente care fac asta pentru tine. Am folosit Angry IP Scanner pentru o perioadă îndelungată și chiar funcționează. Porniți instrumentul, setați intervalul de adrese, apăsați un buton și așteptați. După ce terminați scanarea, trebuie doar să vă căutați dispozitivul în listă.

Cu toate acestea, există o mică șansă ca această modalitate să nu funcționeze. Administratorul de rețea poate filtra pachetele ICMP și astfel pachetele ping nu pot să circule în rețea. De asemenea, prin ping agresiv la nivelul întregii rețelei, puteți deranja pe cineva. Aș recurge la această metodă numai dacă nu ar exista altă cale.

Atunci?

Soluția mea la această problemă se bazează pe trimiterea unui e-mail la fiecare pornire, e-mail care va conține IP-ul dispozitivului. Acest tutorial utilizează Gmail, dar puteți utiliza orice alt serviciu care acceptă trimiterea de mesaje prin SMTP. Singurul dezavantaj al acestei soluții este faptul că Raspberry Pi trebuie să fie conectat la internet.

Am împărțit tutorialul în două secțiuni separate. Prima acoperă configurarea serviciului de poștă electronică, în timp ce cea de-a doua acoperă automatizarea care trimite adresa IP. Trimiterea de mesaje prin Gmail de pe un Raspberry Pi poate fi utilă și în alte cazuri. Puteți conecta senzori pentru a verifica temperatura unei încăperi și trimite un e-mail când valoarea scade sub un anumit prag. Sau puteți utiliza o cameră de Raspberry Pi cu software de detectare a mișcării care poate trimite alerte prin poștă electronică.

Avertisment cu privire la verificare în 2 pași

Dacă utilizați funcția de verificare în doi pași pentru a vă securiza contul Google, atunci există pași suplimentari pe care trebuie să îi urmați. Dacă nu utilizați această funcție, puteți sări peste această secțiune.

Pentru ca SSMTP să poată comunica cu un cont Gmail care utilizează verificarea în doi pași, va trebui să creați ceva numit „Parolă de aplicație”. Aceasta este o parolă specială care oferă permisiune utilitarului SSMTP pentru a accesa contul dumneavoastră Gmail fără a fi nevoie de verificarea în doi pași. Puteți obține mai multe informații și puteți genera o parolă de aplicație făcând clic pe următorul link.

https://support.google.com/accounts/answer/185833?hl=ro

Asigurați-vă că notați parola de aplicație pe care o generați. Veți avea nevoie mai târziu de ea.

Configurarea serviciului de email

Planul nostru este să instalăm și să configurăm ssmtp și mailutils, două pachete software standard. Primul este un „Mail Transport Agent” (MTA) și va livra mesaje email către Gmail iar celălalt este un „framework” consacrat de poștă electronică.

Începeți prin a deschide o fereastră de terminal și trecerea la utilizatorul root.

sudo su

Actualizați lista pachetelor disponibile

apt-get update

Instalați ssmtp și mailutils.

apt-get install ssmtp
apt-get install mailutils

Editați fișierul de configurare SSMTP utilizând editorul dvs. preferat. Eu prefer nano.

 
nano /etc/ssmtp/ssmtp.conf

Modificați configurația prin introducerea setărilor cu privire la utilizatorul și parola dumneavoastră. Dacă aveți activată verificarea în doi pași, asigurați-vă că utilizați parola de aplicați generată anterior în locul parolei contului.

Un exemplu de configurare se găsește mai jos.

# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=your_username@gmail.com

# The place where the mail goes.
mailhub=smtp.gmail.com:587

# Account information
AuthUser=your_username@gmail.com
AuthPass=your_password
AuthMethod=LOGIN

# Secure the communication
UseTLS=Yes
UseSTARTTLS=Yes

Editați fișierul de aliasuri SSMTP pentru a asocia utilizatorii locali la contul Gmail folosit.

 
nano /etc/ssmtp/revaliases

Introduceți următoarea configurație.

root:your_username@gmail.com:smtp.gmail.com:587
pi:your_username@gmail.com:smtp.gmail.com:587

Dacă utilizați un nume de utilizator diferit pentru a vă conecta la Raspberry Pi, asigurați-vă că îl includeți pe cel corect mai sus.

Suntem gata cu partea de configurare a poștei electronice. Să vedem dacă funcționează totul prin trimiterea unui mesaj de test.

echo "Test text" | mail -s "Test Mail" your_username@gmail.com

Trimiterea adresei

Pentru a trimite adresa IP a Raspberry Pi vom crea un script. Prin plasarea acestui script în directorul /etc/network/if-up.d sistemul îl va apela automat de fiecare dată când o interfață de rețea intră în starea UP.

Deschideți un terminal și creați un script numit mailip. Dacă alegeți să utilizați un nume diferit pentru scriptul dumneavoastră, asigurați-vă că omiteți extensia fișierului.

 
sudo nano /etc/network/if-up.d/mailip

Introduceți următorul conținut înlocuind adresa de e-mail de la sfârșitul fișierului cu propria dumneavoastră adresă.

#!/bin/sh
# Send a mail with the IP address after interface comes up

# It is safe to ignore localhost
if [ "$IFACE" = lo ]; then
    exit 0
fi

# Only run from ifup.
if [ "$MODE" != start ]; then
    exit 0
fi

# We only care about IPv4 and IPv6
case $ADDRFAM in
    inet|inet6|NetworkManager)
        ;;  
    *)  
        exit 0
        ;;  
esac

# We wait for DHCP to assign an IP address
sleep 15

# Store the IP address to a variable
MYIP="$(/bin/hostname --all-ip-addresses)"

# Send the mail if the address is not empty
if [ -z "$MYIP" ]; then
    exit 0
else
    echo "$MYIP" | /usr/bin/mail -s "PI is up" your_username@gmail.com
fi

exit 0

Ultimul pas pe care trebuie să-l facem este marcarea scriptul de mai sus ca și executabil.

sudo chmod +x /etc/network/if-up.d/mailip

Asta-i tot, am terminat. Acum puteți reporni dispozitivul pentru a testa dacă totul funcționează. Verificați-vă căsuța Gmail, trebuie să primiți un e-mail cu adresa IP a dispozitivului.

T3ZlciBBbmQgT3V0IQ==

Articole recente

Be First to Comment

Lasă un răspuns

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.