Cosa si dovrebbe fare per proteggere Raspberry Pi?


82

Avere decine di migliaia di Raspberry Pi connessi a Internet alla fine catturerà l'interesse di alcune persone che vorrebbero fare cose sgradevoli ai piccoli computer, specialmente quando molte persone usano il proprio Pi per fare server di rete. Linux è un solido sistema operativo pronto all'uso, ma a parte la semplice modifica della password, cosa si dovrebbe fare per "rafforzare" il Raspberry Pi se intendo ospitare servizi Internet sul dispositivo?

Proprio per supportare la mia battuta "decine di migliaia", Eben Upton ha affermato che "Il Raspberry Pi ha venduto oltre 200.000 dei suoi moduli base per computer e attualmente spedisce 4.000 unità al giorno" . Probabilmente è sicuro supporre che decine di migliaia di quei 200.000 siano stati connessi a Internet. È meno sicuro supporre che decine di migliaia di quei Raspberry Pis connessi a Internet stiano ospitando un servizio web pubblico, ma esiste ancora il potenziale per l'entusiasmo degli hacker.


3
Tieni presente che sebbene ci possano essere "decine di migliaia" connesse, ci sono (attualmente) 3 distro distinte Linux disponibili (di cui sono a conoscenza) e penso che ci siano anche alcuni progetti non basati su Linux. Questo influenza la prospettiva dell'hacker. Tuttavia, se la sicurezza è importante, mantieni la tua distribuzione aggiornata e, se necessario, tieni il tuo dispositivo protetto da un firewall.
RLH,

Buon punto RLH Aggiungerò alcune informazioni aggiuntive alla domanda che supporta il numero di Raspberry Pis in natura per dare un'idea migliore della superficie di attacco del Raspberry Pi che Steve ha menzionato nella sua risposta.
Dan B,

@DanB La superficie di attacco non è una funzione del numero di Pi ma piuttosto del numero di sistemi e servizi disponibili per l'attacco. en.wikipedia.org/wiki/Attack_surface
Steve Robillard

@SteveRobillard Scusate se non ero chiaro nel commento, ma nella modifica ho fatto alla domanda ho cercato di ridurre in modo qualitativo il numero di Pis che ospitano servizi di fronte al pubblico e quindi presenterebbero un servizio disponibile per l'attacco .
Dan B,

Ho trovato un breve tutorial su come proteggere il tuo Raspberry Pi quando si utilizza SSH, sembra abbastanza pulito. -> tutorial
Dominik St.

Risposte:


54

Proteggere un computer non è un processo semplice, interi libri sono scritti sull'argomento. Le dimensioni del Pi non riducono la minaccia alla sicurezza o la superficie di attacco presentata a un possibile attaccante. Di conseguenza, descriverò i passaggi coinvolti e fornirò collegamenti a istruzioni e tutorial più dettagliati.

Dal momento che non hai menzionato la distro che stai usando, assumerò il Raspbian Distro raccomandato.

  1. Cambia la password predefinita. La distro di Raspbian include questa opzione come opzione nello script di avvio iniziale. Se non lo hai già fatto, puoi usare il comando passwd per cambiarlo. Assicurati di scegliere una password complessa .
  2. Disabilita i servizi non utilizzati . Ho visto che la distribuzione consigliata di Raspbian include il web server Apache e lo abilita all'avvio (qualcuno può confermarlo) . Hai davvero bisogno di un server web in esecuzione? Altrimenti disabilitalo. Se hai bisogno di eseguire Apache assicurati di proteggerlo , e fai altrettanto per altri servizi (es. FTP, NGINX, MySQL ecc.), Una ricerca su Google dovrebbe far apparire diverse risorse.
  3. Installa e configura iptables .
  4. Mantieni aggiornato il tuo sistema. Puoi automatizzare ciò usando cron o usando cron-apt .
  5. Configurare la registrazione per monitorare gli accessi e tentativi di accesso non riusciti. Se possibile, utilizza un disco rigido esterno per ospitare la tua partizione var /, questo ti darà più spazio, evita che i file di registro riempiano la scheda SD e prolunghi la durata della scheda SD.

Alcune cose aggiuntive che potresti voler considerare:

Dovresti anche leggere questa domanda correlata Come posso proteggermi da intrusioni e malware prima di collegarlo a Internet (specialmente su un indirizzo IP pubblico)? .

Questo è solo il minimo indispensabile per proteggere il tuo Pi. Per maggiori informazioni potresti voler leggere il Manuale di protezione di Debian .


6
Assicurati di generare le tue chiavi ssh. Penso che alcune delle immagini contenessero già delle chiavi.
John La Rooy,

2
Apache non è installato in raspbian per impostazione predefinita (l'utente ha installato qualcosa come php5-mysql IIRC). Per un filtro di pacchetti che è un po 'più amichevole rispetto agli iptables nudi, forse dovremmo raccomandare ufw e forse anche la sua interfaccia grafica GUFW?
elmicha,

1
Ha senso installare iptables, anche se si è dietro un router?
keiki,

2
@ otakun85 Sì, si chiama difesa in profondità. Affidandoti completamente al tuo router se qualcuno dovesse superare il tuo router con iptables attivo e funzionante rende più difficili ulteriori exploit.
Steve Robillard,

2
La disabilitazione dei servizi inutilizzati aiuta anche con il tempo di avvio e consente di risparmiare una (piccola) quantità di memoria e CPU.
TomG

11

Dopo aver guardato l'RPi, sembra un dispositivo abbastanza sicuro fuori dalla scatola, purché faccia un paio di cose.

L'utente / pass predefinito deve essere modificato. Per lo meno, cambia la password. Per una migliore sicurezza, cambia anche il nome utente. (Aggiungi un nuovo utente, quindi disabilita PI. Verifica che ROOT sia disabilitato anche dall'accesso SSH, anche se penso che lo sia comunque per impostazione predefinita.)

La scansione dell'RPi restituisce solo una porta aperta, 22, che è la connessione SSH, e anche quella deve essere attivata prima di mostrare (anche se la maggior parte delle persone lo utilizzerà al posto di monitor, tastiera e mouse, mi aspetto, soprattutto su un {web} server)

È possibile modificare il numero di porta SSH, ma ciò non farà molto, poiché può essere scansionato abbastanza facilmente. Abilitare invece l'autenticazione SSH-Key.

Ora non hai modo di accedere alla tua macchina senza la chiave SSH, il nome utente e la password corretti.

Quindi, imposta il tuo server web. Apache è praticamente dove si trova. Ciò siederà e monitorerà la porta 80 come impostazione predefinita e risponderà automaticamente alle connessioni dai browser, servendo le tue pagine web.

Se si dispone di un firewall o di un router, è possibile modificare le porte RPi e fare in modo che il router diriga il traffico da una porta all'altra. Ad esempio, il traffico della porta 80 nel router viene reindirizzato alla porta 75 su RPi e SSH su 22 viene reindirizzato alla porta 72. Ciò aggiungerebbe un altro livello di protezione, ma è un po 'più complesso.

Mantieni tutto aggiornato e patchato, ovviamente.

Questo non ti proteggerà dagli attacchi che sfruttano java, flash, server SQL, ecc. Che potresti aggiungere in seguito, ma è tutto per le basi.

È inoltre possibile aggiungere un firewall, che rallenterà chiunque entri nel sistema dall'uscita su una porta diversa se installa un nuovo servizio. Il tuo router dovrebbe occuparsene, ma se è collegato direttamente, quindi impostalo e, per quanto tempo, potresti anche eseguirlo comunque - non aggiungerà molto in termini di risorse di sistema.

Un'altra cosa che potresti voler aggiungere è fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page ) che aggiunge una regola firewall per bloccare più tentativi di accesso, prevenendo gli attacchi del dizionario. Sebbene questi non possano funzionare sul tuo sistema se hai seguito quanto sopra, se per qualche motivo devi lasciare la password solo SSH auth in atto (accedi in remoto da molte macchine diverse, ad esempio), impedirà un attacco del dizionario dal lavoro. Dopo il numero di tentativi che specifichi, si bloccherà per qualche tempo ulteriori tentativi da quell'indirizzo IP. (Basta fare attenzione a non vedere alcun router / indirizzo IP locale e vietarlo troppo presto o troppo a lungo!)

Modificato per aggiungere: una volta che tutto è ben impostato, utilizzare uno strumento come dd o Win32DiskImager per eseguire un backup bit-saggio completo della scheda SD. In questo modo, se qualcosa va storto, puoi ripristinarlo sulla stessa carta o scriverlo su una nuova carta e continuare a prescindere. (Ma se violato, vorresti capire quale buco è stato trovato e chiuderlo prima, forse!)


1
Puoi spiegare come la modifica delle porte RPi sul router aggiunge un altro livello di protezione?
Andrei,


-1

Oltre a rafforzare il sistema operativo, puoi anche considerare l'utilizzo di un servizio di monitoraggio della sicurezza basato su cloud per monitorare l'attività da / sul / sul tuo dispositivo e ricevere avvisi se viene rilevato qualcosa di spiacevole. Al giorno d'oggi ci sono alcuni strumenti SIEM basati su cloud e alcuni (come siemless) utilizzano un modello freemium, quindi gli utenti domestici non devono pagare un centesimo. Per usare un tale servizio dovrai familiarizzare con cose come rsyslog / syslog che è una parte standard di tutte le distribuzioni del sistema operativo Linux.


1
Gli strumenti cloud aumentano la superficie di attacco, il monitoraggio della sicurezza locale (logwarn / check) sono buoni strumenti, ma questa risposta è incompleta ed è più di un commento.
user1133275,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.