Sunteți pe pagina 1din 10

Textul si imaginile din acest document sunt licentiate

Attribution-NonCommercial-NoDerivs
CC BY-NC-ND

Codul sursa din acest document este licentiat


Public-Domain

Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website /
blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul
sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici
un fel de limitari.
Cum putem securiza un sistem
Raspberry Pi?

Suntem obinuii s considerm placa Raspberry Pi un


sistem de dezvoltare a crui scop este unul strict
funcional la fel ca i n cazul unei plci echipate cu
un microcontroler. Uitm adesea c avem de a face cu
o plac ce ruleaz un sistem de operare i care necesit
un set de reguli de securitate asemntoare unui sistem
de calcul de uz general (desktop sau server). n
momentul n care integrm placa de dezvoltare ntr-un
proiect real, mai ales ntr-un proiect cu conectivitate
Internet, lipsa implementrii unor msuri de securitate
compromite fr discuie scopul proiectului degeaba
funcional sistemul se comport corect atta timp ct el poate fi afectat foarte uor de
incidente maliioase sau accidente de utilizare.

Exist multe documentaii ce dezbat acest subiect i parcurgerea lor poate s creioneze
mai bine dimensiunea i seriozitatea problemei:

Securing Your Raspberry Pi: From Passwords to Firewalls


http://www.makeuseof.com/tag/securing-raspberry-pi-passwords-firewalls/

IoT Security: Tips to Protect your Device from Bad Hackers


https://www.hackster.io/charifmahmoudi/iot-security-tips-to-protect-your-device-from-bad-hackers-768093

Make your Raspberry Pi more secure


http://iot-projects.com/index.php?id=make-your-raspberry-pi-more-secure

Securing Your Raspberry Pi


https://www.madirish.net/566

How to set up a secure Raspberry Pi web server, mail server and Owncloud installation
https://www.pestmeester.nl/

https://www.robofun.ro/forum/
Raspberry Pi Firewall and Intrusion Detection System
http://www.instructables.com/id/Raspberry-Pi-Firewall-and-Intrusion-Detection-Syst/

Setting up a (reasonably) secure home web-server with Raspberry Pi


https://mattwilcox.net/web-development/setting-up-a-secure-home-web-server-with-raspberry-pi

n cadrul leciei de fa vom structura regulile de securitate specifice unei plci


Raspberry Pi n trei categorii dictate de nivelul la care se aplic:
Securitate fizic
Reguli minimale de operare
Instrumente suplimentare de securitate

Securitatea fizic a unei plci Raspberry Pi

Fr a avea intenia de a cdea n desuet trebuie subliniat importana integritii fizice


a sistemului de calcul. Degeaba asigurm o securitate logic impecabil dac din punct
de vedere fizic sistemul este ameninat de incidente de funcionare electric sau
mecanic. Unele dintre cele mai importante reguli ce trebuie respectate n utilizarea
plcii Raspberry Pi sunt:

Asigurarea unei surse de alimentare stabilizat i de


putere electric suficient de mare. Nu se recomand
utilizarea unor surse de tensiune ieftine. n cazul n
care sistemul asigur o funcionalitate critic
(controlul unei centrale termice sau a unui sistem de
securitate) este recomandat utilizarea suplimentar a
unui sistem UPS. Se recomand utilizarea
alimentatorului oficial al plcii de dezvoltare:
https://www.robofun.ro/raspberry-pi-si-componente/alimentator-raspberry-pi-2.5-a

Utilizarea unei carcase este absolut necesar. Aceast are


rolul de proteja placa de dezvoltare de praf i alte mizerii dar
i de a prentmpina distrugrea acesteia din cauza unei
descrcri electrostatice. Improvizarea unei nvelitori de
carton sau din alte materiale moi nu este recomand. Se

https://www.robofun.ro/forum/
poate alege o variant potrivit n funie de domeniul de utilizare a sistemului
final:
https://www.robofun.ro/raspberry-pi-si-componente/raspberry-cutii

Utilizarea unui radiator sau / i a unui ventilator pentru


microprocesorul plcii de dezvoltare nu se face doar n cazul
forrii frecvenei procesorului (overclocking). Meninerea
unei temperaturi sczute pentru procesor crete durata de
funcionare a acestuia i crete fiabilitatea sistemului final.
https://www.robofun.ro/raspberry-pi-si-componente

Ignorat adesea, componenta ce stocheaz sistemul de


operare al plcii de dezvoltare cardul de memorie este
un element extrem de important pentru buna funcionare a
sistemului final. Carduri cu vitez mic de acces, uzate sau
cu defecte de fabricaie conduc la probleme ce pot fi
anevoios de diagnosticat i creaz multe bti de cap.

Reguli minimale de operare

Aceste reguli trebuie implementate indiferent de scopul sistemului (dezvoltare sau


proiect operaional) fiind eseniale n operare eficient a plcii de dezvoltare Raspberry
Pi i reprezentnd un nucleu de bune practici aplicabil pentru sisteme de calcul diverse
(de la routere WiFi pn la servere):

Schimbarea datelor de conectare implicite. Minimal se recomand


schimbarea parolei utilizatorului pi cu ajutorul comenzii passwd dar mult mai
bine este crearea unui cont utilizator nou i tergerea contului pi. n acest fel
sistemul nu poate fi accesat utiliznd date de conectare bine cunoscute.

Utilizarea versiunii potrivite a sistemului de operare. Pentru placa de


dezvoltare Raspberry Pi sunt disponibile mai multe variante (distribuii) ale
sistemului de operare Linux. Fiecare dintre aceste variante are un anumit specific
ce este potrivit unui anumit domeniu de utilizare. Chiar distribuia oficial a
plcii, distribuia Raspbian, are dou versiuni: Raspbian Jessie with PIXEL i
Raspbian Jessie Lite (cea din urm nu include interfaa grafic ci doar consol

https://www.robofun.ro/forum/
de tip linie de comand) dac sistemul final nu va include un ecran grafic este
o risip de resurse s se utilizeze versiunea complet (with PIXEL). n plus, un
sistem de operare ncrcat (cu multe pachete software instalate) prezint mai
multe riscuri de securitate.

(instalarea interfeei grafice doar pentru a controla sistemul de la distan prin


intermediul VNC este o opiune extrem de infantil, controlul cel mai bun al
unui sistem Linux se realizeaz la nivel de linie de comand utilizai SSH)

Meninerea software-ului la zi. Instalarea ultimelor versiuni ale pachetelor


software ce compun distribuia Linux nu este un moft ce ine de noi
funcionaliti introduse apariia unor noi versiuni de programe este dictat de
multe ori de rezolvarea unor probleme (bug-uri) de securitate.

!!! sudo apt-get update !!!


!!! sudo apt-get upgrade !!!

Dezinstalarea sau dezactivarea pachetelor software nefolosite. Fiecare


pachet software este un posibil furnizor de probleme de securitate. Dezinstalarea
pachetelor neutilizate este una dintre cele mai bune soluii. O completare a
acestei reguli const n dezactivarea serviciilor neutilizate (de exemplu, serviciul
SSH reprezint un risc ridicat de securitate, este recomandat oprirea acestui
serviciu dac nu l utilizm). O list a serviciilor (a programelor ce pornesc odat
cu sistemul de operare) se poate obine cu ajutorul comenzii:

sudo service --status-all | grep +

dezactivarea unui serviciu se va face cu ajutorul comenzii:

sudo systemctl disable nume_serviciu

https://www.robofun.ro/forum/
Configurarea resurselor hardware n conformitate cu scopul sistemului.
Chiar dac n sine o resurs hardware, activat i neutilizat, nu implic o
vulnerabilitate de securitate, este bine s avem activate doar resursele hardware
utilizate (aici vorbim de porturile I/O, I2C, SPI, port serial etc.). Acest lucru se
poate configura cu ajutorul comenzii:

sudo raspi-config

Un exemplu suplimentar l reprezint memoria plcii de dezvoltare, este


recomandat micorare memoriei alocate procesorului grafic dac nu utilizm
interfaa grafic elibernd astfel mai mult memorie pentru CPU (se poate face
acest lucru din Advanced -> Memory Split).

https://www.robofun.ro/forum/
Instrumente suplimentare de securitate

n cele ce urmeaz vom prezenta o serie de programe care, utilizate corect, pot crete
nivelul de securitate a unui sistem Raspberry Pi.

Firewall/iptables este un mecanism intern


al sistemului de operare ce permite filtrarea
comunicaiilor de reea. Filtrarea se realizeaz
dup reguli ncadrate n trei mari categorii:
INPUT conexiuni de reea de intrare,
OUTPUT conexiuni de reea de ieire,
FORWARD conexiuni de reea ce
traverseaz sistemul. Cu ajutorul acestui
mecanism se poate decide ce conexiuni de reea va accepta sistemul nostru, de la ce
adrese, ce servicii (ce porturi) sunt accesate etc. De exemplu, urmtoarele dou
instruciuni:

sudo iptables -A INPUT -s xxx.xxx.xxx.xxx -j ACCEPT


sudo iptables -A INPUT -j REJECT

vor avea ca efect acceptarea conexiunilor de la adresa IP xxx.xxx.xxx.xxx i rejectarea


oricrei alte conexiuni sistemul nostru va putea fi accesat doar de la adresa IP
indicat. Aceasta este o practic foarte bun dac adresele sistemelor cu care comunic
sistemul nostru sunt fixe. Pentru a lista toate regulile de filtrare se poate folosi
comanda:

sudo iptables -L

Fail2ban este un utilitar ce permite blocarea comunicaiei de


reea cu o anumit adres IP n urma activitii maliioase
generate de la acea adres: mai multe ncercri de conectare la
distan nereuite, scanarea de vulnerabiliti de la distan
.a.m.d. Funcionarea acestuia se bazeaz pe scanarea fiierelor
jurnal ale diverselor servicii sistem (SSH, web, mail) i, n cazul
detectrii unor activiti ru intenionate, pe introducerea unei
restricii temporare n sistemul iptables.

https://www.robofun.ro/forum/
Pentru utilizare primul pas este instalarea pachetului software:

sudo apt-get install fail2ban

Dup care se va edita fiierul /etc/fali2ban/jail.local i se vor introduce reguli de


supraveghere. Urmtorul bloc este un exemplu bun pentru serviciul SSH (orice adres
IP cu trei ncercri nereuite de conectare va fi blocat timp de 15 minute, excepie
fcnd adresele locale din clasa 192.168.0.0/16):

[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
mail-whois-lines[name=%(__name__)s, dest=%(destemail)s, logpath=%(logpath)s]
logpath = /var/log/auth.log
maxretry = 3
bantime = 900
ignoreip = 192.168.0.0/16

Pentru ca modificrile n fiierul de configurare s aib efect vom reporni serviciul:

sudo /etc/init.d/fail2ban restart

Mai multe informaii despre programul fail2ban putei gsi la adresa:


http://www.fail2ban.org/wiki/index.php/Main_Page

rkhunter & chrootkit sunt dou programe menite s scaneze


sistemul mpotriva unor aplicaii maliioase (rootkit-uri). Chiar
dac incidena infectrii cu aplicaii de tip virus este mic n cazul
sistemelor Linux asta nu nseamn c nu exist ameninri la
adresa sistemului de fiiere local. Rootkit-urile sunt programe, cel
mai adesea ru intenionate, care modific fiiere sistem
ascunznd alte aplicaii sau permind accesul de la distan unor
persoane neautorizate. De cele mai multe ori deintorul sistemului nici nu e contient
de infectarea acestuia. Cele dou aplicaii verific integritatea fiierelor sistem i
detecteaz aplicaiile de tip rootkit. Instalarea aplicaiilor se face cu ajutorul comenzii:

sudo apt-get install chkrootkit rkhunter libwww-perl

https://www.robofun.ro/forum/
Rularea aplicaiei chkrootkit se face cu ajutorul comenzii:

sudo chkrootkit

Aplicaia rkhunter se poate utiliza cu ajutorul comenzilor:

sudo rkhunter --update


sudo rkhunter --check

https://www.robofun.ro/forum/
logwatch este o aplicaie de monitorizare i raportare pentru
fiierele jurnal sistem (log-uri). Chiar dac este un instrument pasiv
(de monitorizare), utilizarea acestuia poate preveni foarte multe
incidente de securitate prin alertarea timpurie a deintorului
sistemului. Instalarea acestui program se face cu ajutorul comenzii:

sudo apt-get install logwatch

Dup instalare aplicaia logwatch va rula zilnic i va raporta prin email ctre
administratorul sistemului (utilizatorul root) sumarul fiierelor jurnal sistem. Ajustarea
parametrilor de funcionare se poate face prin editarea fiierului
/usr/share/logwatch/default.conf/logwatch.conf . Testarea aplicaiei se poate face cu
ajutorul comenzii:

sudo logwatch --range=today

Instrumentele software prezentate nu reprezint dect cteva exemple de aplicaii ce


pot ajuta utilizatorii s menin un nivel de securitate adecvat pentru sistemele lor
Raspberry Pi. Exist i alte aplicaii ce pot fi utilizate n funcie de scopul i domeniul
de utilizare a sistemului. V recomandm nc dou aplicaii interesante de explorat:

Snort sistem de detecie i prevenie a intruziunilor


(IDPS), foarte util n cazul sistemelor de tip gateway.
https://www.snort.org/

ClamAv sistem open-source antivirus, necesar n cazul


implementrii unor servere de fiiere.
https://www.clamav.net/

https://www.robofun.ro/forum/

S-ar putea să vă placă și