Raspberry Pi boards er fantastiske til ethvert projekt - de er billige, nemme at bruge, kan køre en bred vifte af mulige operativsystemer og levere programmerbare GPIO-stifter samt multi-core CPU-tilgængelighed og flere USB-porte.
Du kan bruge Raspberry Pi boards til alle former for automatisering og informationsindsamling projekter. Men hvis du ikke er forsigtig, kan dit lille hobbyprojekt resultere i en sikkerhedsrisiko, der fungerer som et indgangspunkt i dit netværk. De kan ikke udføre sikker opstart som ARM Trustzone, og SD-kort og operativsystem er ikke let krypterede. Følg disse sikkerhedstips for at beskytte dine Pi og andre enheder på dit netværk.
Ændre standardadgangskoderne - Hvis du installerer en ny version af NOOBS eller Raspbian, skal du sørge for at ændre standardadgangskoden til "pi" -brugeren til noget, der er langt og svært at gætte. En passphase som "iamasuckerfor5dollarmojitos" er meget bedre end [email protected]! Selvom du planlægger at deaktivere kontoen, er dette første skridt grundlæggende beskyttelse, hvis du glemmer det.
Dit næste skridt skal være at deaktivere standard Pi-kontoen i Raspbian. Før du gør dette, opret en ny konto på systemet. Du kan bruge useradd kommandoen for at gøre dette, med nogle ekstra flag til at angive, at der oprettes en ny hjemmekatalog for brugeren. Log ind som Pi-brugeren og udsted kommandoen:
$ sudo / usr / sbin / useradd - grupper sudo -m makezine
Brug dit eget brugernavn i stedet for "makezine". Dette vil oprette en ny konto, oprette en mappe til kontoen (f.eks / Home / makezine), og tilføj den nye konto til sudo-gruppen, så brugeren kan bruge sudo-kommandoen. Når først den nye brugerkonto er oprettet, skal vi angive et kodeord for kontoen. Du kan gøre dette ved hjælp af kommandoen:
$ sudo passwd makezine
Dernæst nulstill root adgangskoden. Vælg noget langt og svært at gætte.
$ sudo passwd root
Endelig vil du gerne deaktivere Pi-kontoen:
$ sudo passwd -lock pi
Nu kan du logge ud af Pi-kontoen og logge ind med din nye konto og adgangskode.
Som standard installerer Raspbian en fjernadgangskal (SSH), som du kan få adgang til overalt. Du kan deaktivere dette ved at oprette SSH, så kun maskiner med en autoriseret SSH-nøgle kan logge ind. Sikkerhedskopier dine private nøgler i mindst to steder, du har tillid til.
For at indstille dem skal du redigere SSH-konfigurationsfilen ved hjælp af vi eller en anden tekstredigerer med kommandoen:
$ sudo vi / etc / ssh / sshd_config
Sørg for, at følgende linjer er indstillet og uden bemærkninger - hvilket betyder at linjerne er i filen, og de er ikke forud for et hash-tag-symbol, som markerer en linje som en kommentar og ignorerer den til konfigurationsformål:
# Autentificering: LoginGraceTime 120 PermitRootLogin nej StrictModes ja RSAAuthentication ja PubkeyAuthentication ja AuthorizedKeysFile% h / .ssh / authorized_keys # For at aktivere tomme adgangskoder, skift til ja (IKKE ANBEFALET) PermitEmptyPasswords no # Skift til ja for at aktivere udfordrings-respons adgangskoder (pas på problemer med # nogle PAM moduler og tråde) ChallengeResponseAuthentication no # Skift til nej for at deaktivere tunnelled clear text passwords PasswordAuthentication no BrugPAM no
Den sidste linje er meget vigtig, da den vil deaktivere Pluggable Authentication Modules (PAM) eller native Linux-godkendelse, og kun tillade brugere at logge ind med en nøgle. Dernæst generer en SSH-nøgle. Du kan gøre dette med PuTTY på Windows eller med ssh-keygen kommandoen på Linux. Opret en .ssh-mappe i din brugers hjemmekatalog og en authorized_keys-fil med følgende kommandoer. Sørg for at indstille tilladelserne korrekt (ellers vil den nøglebaserede godkendelse mislykkes):
$ mkdir ~ / .ssh $ chmod 0700 ~ / .ssh $ touch ~ / .ssh / authorized_keys $ chmod 0600 ~ / .ssh / authorized_keys
Brug derefter din tekstredigerer til at redigere filen authorized_keys og indsæt i den offentlige nøgle, du genererede, så du kan logge ind. Sørg for at genstarte SSH for at sikre ændringerne træder i kraft ved hjælp af kommandoen:
$ sudo systemctl genstart ssh
Når du har låst SSH, skal du sikre dig, at iptables firewall kører på din Pi. For et godt mål kan du konfigurere firewallen, så den logger en besked, når en firewall-regel er aktiveret, og en forbindelse er blokeret. Først sørg for at iptables er installeret ved hjælp af kommandoen:
$ sudo apt-get installer iptables iptables-vedholdende
Bemærk at brug af iptables-firewall kræver, at nye kernemoduler indlæses. Den nemmeste måde at indlæse dem på er at genstarte din Pi. Når først iptables er installeret, skal du gå videre og kontrollere de nuværende iptables-regler med kommandoen:
$ sudo / sbin / iptables -L
Dette vil liste reglerne, som sandsynligvis er tomme. Du kan gemme disse regler til en tekstfil og redigere den ved hjælp af kommandoen:
$ sudo / sbin / iptables-save> /etc/iptables/rules.v4
Dette er den fil, som iptables-vedholdende bruger, når dit system starter eller genstarter for at sikre, at firewall stadig kører. Gem, rediger derefter filen, så den ser lidt ud som følgende (ændrer de regler du har brug for):
$ sudo cat /etc/iptables/rules.v4: INPUT ACCEPT [0: 0]: FORWARD ACCEPT [0: 0]: OUTPUT ACCEPT [0: 0] # Tillader all loopback (lo0) trafik og slipper al trafik til 127 / 8, der ikke bruger lo0 -A INPUT -i lo -j ACCEPT -A INPUT! -i lo -d 127.0.0.0/8 -j REJECT # Accepterer alle etablerede indgående forbindelser -A INPUT -m-state -state OPSTILLET, RELATERET -J ACCEPT # Tillader al udgående trafik # Du kan ændre dette for kun at tillade bestemt trafik - A OUTPUT -J ACCEPT # Tillader SSH-forbindelser # - -portnummeret er det samme som i / etc / ssh / sshd_config -A INPUT -p tcp -m state -state NEW --port 22 -j ACCEPT # log iptables benægtet opkald (adgang via 'dmesg' kommando) -A INPUT -m grænse --limit 5 / min -j LOG -log-præfiks "iptables nægtet:" --log-niveau 7 # Afvis alle andre indgående - standard benægt, medmindre det er udtrykkeligt Tilladt politik: -A INPUT -J REJECT-A FORWARD -J REJECT COMMIT
Derefter skal du sikre dig, at dine iptables fungerer korrekt. Dette kan være vanskeligt, fordi du måske er eksternt tilsluttet via SSH, og hvis du har rodet noget op, vil du ikke have din forbindelse afbrudt. Heldigvis er der en kommando, der kan hjælpe dig ved at anvende regler og beder om bekræftelse på, at du stadig kan forbinde. Hvis du ikke svarer på et bestemt tidspunkt, antager programmet, at du er blevet afbrudt, og det vil rulle dine ændringer tilbage. Hvis du svarer, vil den anvende dine ændringer permanent. For at opnå dette skal du bruge kommandoen:
$ sudo / usr / sbin / iptables-apply /etc/iptables/rules.v4
Hvis alt fungerer, vil dine ændringer blive anvendt, og du kan tjekke dem med kommandoen:
$ sudo / sbin / iptables -L
Sluk, hvad du ikke behøver. Sørg for, at din firewall kun udsætter de ønskede tjenester, helst på ikke-standardporte.
Sæt det på sit eget netværk. Sørg for, at Pi er installeret på sit eget netværk, og at det ikke kan nå andre dele af netværket, mens du sikrer udgående forbindelser til internettet, er kendt og filtreret til daglig brug. Du bør ikke være i stand til at kontakte din hjemmets filserver eller andre systemer fra Pi, og dens internetforbindelse bør begrænses.
Opdater dine pakker regelmæssigt. Tjek Raspberry Pi-webstedet for opdateringer. Du kan opsætte automatiske opdateringer ved at installere pakken "uovervågede opgraderinger" som beskrevet på den officielle Debian-wiki.
Sikkerhedskopier dine konfigurationer. Dit SD-kort mislykkes. Forvent fejl og backup dine data, eller SD-kortet som helhed, til et eksternt USB-drev som led i en krypteret pakke, fil eller filsystem.
Undgå forudinstallerede færdige billeder, hvis du kan. Hvis du bruger et forudinstalleret billede fra et sted, spørg dig selv hvorfor. Du har brug for fuld og fuldstændig tillid til skaberen, som måske har skåret hjørner og installeret sårbar software eller endda bagdøre. Dette kan endda være utilsigtet. Se om du selv kan installere billedet eller softwaren. Hvis du ikke kan eller vil det, skal du sørge for, at din Pi er i sit eget netværk og ikke kan nå andre systemer på dit netværk. Hvis din router har et DMZ-segment eller et gæst Wi-Fi-netværk, er det et glimrende valg for en Pi under forudsætning af, at kun de tjenester, du vil blive udsat for, udsættes for internettet. Hvis du absolut skal bruge et præfabrikeret billede:
# / bin / rm -v / etc / ssh / ssh_host_ * # dpkg-omkonfigurere openssh-server
Hardware watchdog timer: Hvis din Raspberry Pi går i stykker mens du er på ferie, vil dine automatiske systemer også falde ned. Raspberry Pi leveres med en Broadcom hardware watchdog timer, der kan genstarte Pi i tilfælde af at det bliver unresponsive.
Heatsink: Det ville være en skam, hvis din Raspberry Pi løb for varmt på grund af vejr eller overklocking. Sørg for at have en heatsink på CPU'en for at sikre, at virkelig tunge spidser ikke slår det i stå. De koster kun et par dollars og er nemme at installere.
Logwatch: Modtag natlige e-mails, der rapporterer om de foregående dages aktiviteter og advarsler med Logwatch. Du skal sørge for, at e-mail arbejder på din Pi, men exim4-postrelæet skal fungere fint. Installer Logwatch ved hjælp af kommandoen:
$ sudo apt-get install logwatch
Dernæst juster konfigurationsfilen på /usr/share/logwatch/default.conf/logwatch.conf, så de passer til dine behov. Som standard vil Logwatch e-maile rootkontoen, så du vil sandsynligvis opsætte en slags relæ. Du kan tjekke min artikel om e-mail-relæer for yderligere rådgivning.