Fråga:
Vad ska man göra för att säkra Raspberry Pi?
Dan B
2012-07-24 18:50:34 UTC
view on stackexchange narkive permalink

Att ha tiotusentals Raspberry Pi-enheter anslutna till internet kommer så småningom att fånga intresset hos vissa människor som vill göra otrevliga saker för de små datorerna, särskilt när många använder sin Pi för att göra nätverksservrar. Linux är ett stabilt operativsystem ur lådan säkerhetsmässigt, men bortsett från att bara ändra lösenordet, vad ska man göra för att "härda" Raspberry Pi om jag tänker vara värd för internetanslutna tjänster på enheten?

Bara för att stödja min "tiotusentals" quip har Eben Upton sagt att "Raspberry Pi har sålt över 200 000 av sina grundläggande datormoduler och levererar för närvarande 4000 enheter om dagen". Det är förmodligen säkert att anta att tiotusentals av dessa 200 000 har anslutits till internet. Det är mindre säkert att anta att tiotusentals av de internetanslutna Raspberry Pis är värd för en webbtjänst som står inför allmänheten, men potentialen för hackers entusiasm finns fortfarande.

Tänk på att även om det kan finnas "tiotusentals" anslutna, finns det (för närvarande) 3 separata Linux-distroer tillgängliga (som jag känner till) och jag tror att det till och med finns några icke-Linux-baserade projekt där ute. Detta påverkar hackarens perspektiv. Fortfarande, om säkerhet är viktig, håll din distro uppdaterad och, om det behövs, håll din enhet bakom en brandvägg.
Bra poäng RLH Jag lägger till lite ytterligare information i frågan som stöder antalet Raspberry Pis i naturen för att ge en bättre uppfattning om Raspberry Pi: s attackyta som Steve nämnde i sitt svar.
@DanB Attack yta är inte en funktion av antalet Pi men snarare antalet system och tjänster tillgängliga för attack. http://en.wikipedia.org/wiki/Attack_surface
@SteveRobillard Tyvärr om jag var oklar i kommentaren, men i den redigering jag gjorde till frågan försökte jag på ett kvalitativt sätt sätta ner antalet Pis som är värd för offentliga tjänster och skulle därför presentera en tjänst tillgänglig för attack.
Jag har hittat en kort handledning om hur du skyddar din hallon pi när du använder SSH, verkar ganska snyggt. [-> handledning] (http://jjjjango.blogspot.co.at/2015/01/secure-your-raspberry-pi.html)
Se även https://www.raspberrypi.org/documentation/configuration/security.md
Sex svar:
Steve Robillard
2012-07-24 20:05:04 UTC
view on stackexchange narkive permalink

Att säkra en dator är inte en enkel process, hela böcker skrivs om ämnet. Pi: s storlek minskar inte säkerhetshotet eller attackytan som presenteras för en möjlig angripare. Som ett resultat kommer jag att beskriva de involverade stegen och ge länkar till mer detaljerade instruktioner och handledning.

Eftersom du inte har nämnt vilken distro du använder kommer jag att anta den rekommenderade Raspbian Distro.

  1. Ändra standardlösenordet. Raspbian-distro inkluderar detta som ett alternativ i det första startskriptet. Om du inte redan har gjort det kan du använda kommandot passwd för att ändra det. Se till att välj ett starkt lösenord.
  2. Inaktivera oanvända tjänster. Jag såg att den rekommenderade Raspbian-distributionen innehåller Apache-webbservern och aktiverar den vid start (kan någon bekräfta detta) . Behöver du verkligen en webbserver som kör? Om inte inaktivera det. Om du behöver köra Apache måste du säkra det och göra samma sak för andra tjänster (t.ex. FTP, NGINX, MySQL etc.), en google-sökning bör visa flera resurser.
  3. Installera och konfigurera iptables.
  4. Håll ditt system uppdaterad. Du kan automatisera detta med cron eller med cron-apt.
  5. Konfigurera loggning för att övervaka inloggningar och misslyckade inloggningsförsök. Använd om möjligt en extern hårddisk för att vara värd för dig / var-partitionen, detta ger dig mer utrymme, undvik att loggfilerna fyller på SD-kortet och förlänger SD-kortets livslängd.

Ytterligare saker du kanske vill överväga:

Du bör också läsa den här frågan Hur kan jag skydda mig mot intrång och skadlig programvara innan jag ansluter den till internet (särskilt på allmänheten IP-adress)?.

Detta är bara de minsta stegen för att säkra din Pi. För mer information kan du läsa Securing Debian Manual.

Se till att skapa dina egna ssh-nycklar. Jag tror att några av bilderna redan hade nycklar.
@gnibbler bra poäng Jag försökte bara bekräfta att detta var sant och att de inte genererades vid installation / aktivering av SSH.
Apache är inte installerat på raspbian som standard (användaren installerade något som php5-mysql IIRC). För ett paketfilter som är lite mer vänligt än de nakna iptabellerna, kanske vi bör rekommendera ufw och kanske till och med dess GUI frontend gufw?
Är det vettigt att installera iptables, även om du står bakom en router?
@otakun85 Ja, det kallas försvar på djupet. Genom att förlita sig helt på din router om någon kommer förbi din router med iptables igång blir ytterligare utnyttjande svårare.
Att inaktivera oanvända tjänster hjälper också till vid starttid och sparar en (liten) mängd minne och CPU.
Nigel Tolley
2013-04-06 16:44:48 UTC
view on stackexchange narkive permalink

Efter att ha tittat på RPi verkar det som en ganska säker enhet ur lådan, så länge du gör ett par saker.

Standardanvändarnas / passbehovet har ändrats. Ändra åtminstone lösenordet. För bättre säkerhet igen, ändra också användarnamnet. (Lägg till en ny användare och inaktivera sedan PI. Kontrollera att ROOT också är inaktiverat från SSH-inloggning, men jag tror att det är som standard.)

Skanning av RPi returnerar bara en öppen port, 22, vilket är SSH-anslutningen, och även den måste vara påslagen innan den visas (även om de flesta kommer att använda den istället för en bildskärm, tangentbord och mus, förväntar jag mig, särskilt på en {web} -server)

Du kan ändra SSH-portnummer, men det kommer inte att göra mycket, eftersom det kan skannas port tillräckligt enkelt. Aktivera istället SSH-Key-autentisering.

Du har nu inget sätt för någon att komma in i din maskin utan rätt SSH-nyckel, användarnamn och lösenord.

Ställ sedan in din webbserver. Apache är ganska mycket där det är. Det kommer att sitta och övervaka port 80 som standard och automatiskt svara på anslutningar från webbläsare, betjäna dina webbsidor.

Om du har en brandvägg eller router kan du ändra RPi-portarna och låta routern styra trafik från en hamn till en annan. Till exempel omdirigeras port 80-trafik till routern till port 75 på RPi och SSH på 22 omdirigeras till port 72. Detta skulle lägga till ytterligare ett lager av skydd, men är lite mer komplicerat.

Håll allt uppdaterat och lappat, uppenbarligen.

Detta skyddar dig inte från attacker som utnyttjar java, flash, SQL-servrar, etc. som du mycket väl kan lägga till senare, men det är det för grunderna, verkligen.

Du kan också lägga till en brandvägg som saktar ner alla som kommer in i ditt system från att komma ut i en annan port om de installerar en ny tjänst. Din router borde hantera det, men om den är direktansluten, ställ sedan in den, och hur länge det tar kan du lika gärna köra den ändå - det kommer inte att lägga mycket i vägen för systemresurser.

En annan sak du kanske vill lägga till är fail2ban ( http://www.fail2ban.org/wiki/index.php/Main_Page) som lägger till en brandväggsregel för att blockera flera inloggningsförsök, vilket förhindrar ordlistaattacker. Även om dessa inte kan fungera på ditt system om du har följt ovanstående, om du av någon anledning behöver lämna lösenordet bara SSH-autentisering (du fjärrloggar till exempel från många olika datorer) kommer det att förhindra en ordbokattack från att arbeta. Efter antalet försök som du anger, kommer det att blockera några fler försök från den IP-adressen. (Se bara till att den inte ser någon router / lokal IP-adress och förbjud den för tidigt eller för länge!)

Redigerad för att lägga till: När du har fått allt klart snyggt, använd en verktyg som dd eller Win32DiskImager för att ta en fullständig bitvis backup av ditt SD-kort. På det sättet, om något går fel, kan du återställa det till samma kort eller skriva det till ett nytt kort och fortsätta oavsett. (Men om du hackas vill du ta reda på vilket hål som hittades och stäng det först, kanske!)

Kan du förklara hur ändring av RPi-portarna på routern ger ytterligare ett skydd?
alzclarke
2012-11-06 08:47:48 UTC
view on stackexchange narkive permalink

linode har en utmärkt guide för att säkra en Linux-server: http://library.linode.com/securing-your-server. samma regler kan tillämpas på hallon pi

dimo414
2020-03-16 22:54:31 UTC
view on stackexchange narkive permalink

Flera affischer har nämnt vikten av att hålla din Pi uppdaterad, men de flesta resurser jag hittat föreslår helt enkelt manuellt kör apt-get från tid- i tiden, vilket verkar som ett dåligt tillvägagångssätt. Jag föredrar mycket att ha säkerhetsuppdateringar automatiskt installerade.

Debians obevakade uppgraderingar -paketet ska stödja detta, men (på Raspbian? ) det är lite fiffigt att ställa in.

  • Du måste köra sudo dpkg-omkonfigurera -ploga obevakade uppgraderingar för att faktiskt schemalägga uppdateringen cronjob
  • Du kan behöva lägga till origin = poster för Raspbian - flera inlägg föreslår lägga till anpassade poster i konfigurationsfilen för origin = Raspbian och origin = Raspberry Pi Foundation , men jag vet inte exakt hur jag ska validera installationen. Det är synd att ursprunget (verkar som) kräver manuell tweaking.
  • Tänk också på:
    • Ställa in mailx och avkommentera Unattended-Upgrade :: Mail och Unattended-Upgrade :: MailOnlyOnError för att få meddelanden om uppdateringar
    • Unattended-Upgrade :: MinimalSteps verkar också som en bra idé

Kör sudo obevakad-uppgradering -d --tork-kör för att se vad det skulle göra (även om det på samma sätt inte är så hemskt informativt, eftersom det inte rapporterar några uppdateringar på ett nyligen uppdaterat system).

Leon185
2019-12-23 03:19:41 UTC
view on stackexchange narkive permalink

Du kan också överväga att använda Lynis. Det genomsöker ditt system för sårbarheter och ger förslag för att förbättra säkerheten för din Pi. Det ger dig till och med en säkerhetspoäng på hur väl skyddad din Pi är.

För att installera den använder du:

sudo apt install lynis

Förvaret är troligtvis inaktuellt så uppdatera lynis genom att först lägga till en nyckel med

  sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C80E383C3DE9F082E01391A0366C67DE91CA5D5F  kod> 

lägg sedan till reporna

  sudo apt installera apt-transport-https  

och

  eko "deb https://packages.cisofy.com/community/lynis/deb/ stabil huvud" | sudo tee /etc/apt/sources.list.d/cisofy-lynis.list  

Slutligen gör sudo apt update för att uppdatera lynis

Jag vet att det här är ett gammalt inlägg men jag ville lägga till det. Hoppas det hjälper :)

spids
2015-05-28 15:20:05 UTC
view on stackexchange narkive permalink

Förutom att härda operativsystemet kan du också överväga att använda en molnbaserad säkerhetsövervakningstjänst för att övervaka aktiviteten till / från / på din enhet och ta emot varningar om något fel upptäcks. Det finns några molnbaserade SIEM-verktyg nuförtiden, och vissa (som siemless) använder en freemium-modell så att hemmanvändare inte behöver betala ett öre. För att använda en sådan servcie måste du bekanta dig med saker som rsyslog / syslog som är en standarddel av alla Linux OS-distributioner.

Molnverktyg ökar attackytan, lokal säkerhetsövervakning (loggar / check) är bra verktyg, men det här svaret är ofullständigt och är mer en kommentar.


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...