Raspberry Pi

Säkra Raspberry Pi med brandvägg

Säkra Raspberry Pi med brandvägg

Om du vill köra någon form av serverprogramvara på din Raspberry Pi (i.e., webbserver, databasserver, Minecraft-server) och göra dem offentligt tillgängliga på internet (hosting), då är det mycket viktigt att säkra din Raspberry Pi-server med ett brandväggsprogram.

Det finns många gratis och öppen källkods brandväggsprogram tillgängliga på Raspberry Pi OS (det officiella operativsystemet för Raspberry Pi en-kortdatorer). Bland dessa program är UFW och Firewalld de vanligaste brandväggsprogrammen.

I den här artikeln kommer jag att använda UFW-brandväggsprogrammet för att visa dig hur du skyddar din Raspberry Pi. Så, låt oss komma igång.

Saker du behöver:

För att följa den här artikeln behöver du följande saker för att ställa in din Raspberry Pi i huvudlöst läge:

  1. En Raspberry Pi 3 eller Raspberry Pi 4 enkelkortdator.
  2. En micro-USB (Raspberry Pi 3) eller USB Type-C (Raspberry Pi 4) nätadapter.
  3. Ett 16 GB eller 32 GB microSD-kort med Raspberry Pi OS blinkade.
  4. Nätverksanslutning på Raspberry Pi.
  5. En bärbar dator eller en stationär dator för VNC fjärrskrivbordsåtkomst eller SSH-åtkomst till Raspberry Pi.

Om du inte vill ställa in din Raspberry Pi 4 i huvudlöst läge behöver du också:

  1. En bildskärm
  2. En HDMI- eller mikro-HDMI-kabel
  3. Ett tangentbord
  4. En mus.

Om du behöver hjälp med att blinka Raspberry Pi OS-bilden på microSD-kortet, kolla min artikel Så här installerar och använder du Raspberry Pi Imager.

Om du är en Raspberry Pi-nybörjare och behöver hjälp med att installera Raspberry Pi OS på din Raspberry Pi, kolla in min artikel Så här installerar du Raspberry Pi OS på Raspberry Pi 4.

Om du behöver hjälp med den huvudlösa installationen av Raspberry Pi, kolla in min artikel Så här installerar och konfigurerar du Raspberry Pi OS på Raspberry Pi 4 utan extern bildskärm.

Uppdaterar Raspberry Pi OS:

När vi försöker säkra vår Raspberry Pi är det en bra idé att uppdatera alla befintliga paket med Raspberry Pi OS. Detta gör ditt Raspberry Pi OS säkrare eftersom det skulle installera alla de senaste säkerhetsuppdateringarna och buggfixarna.

Uppdatera först APT-paketets förvarscache med följande kommando:

$ sudo apt uppdatering


För att uppdatera alla befintliga paket i ditt Raspberry Pi OS, kör följande kommando:

$ sudo apt fullständig uppgradering


För att bekräfta installationen av uppdateringarna, tryck på Y och tryck sedan på <Stiga på>.


APT-pakethanteraren laddar ner alla nödvändiga paket från internet. Det kan ta ett tag att slutföra.


När paketen har laddats ner installerar APT-pakethanteraren dem en efter en. Det kan ta ett tag att slutföra.


Vid den här tiden bör alla uppdateringar installeras.

För att ändringarna ska träda i kraft startar du om din Raspberry Pi med följande kommando:

$ sudo omstart

Installera UFW - Okomplicerad brandvägg:

När din Raspberry Pi startar kan du installera UFW-brandväggsprogrammet med följande kommando:

$ sudo apt installera ufw -y


UFW bör installeras.


För att ändringarna ska träda i kraft startar du om din Raspberry Pi med följande kommando:

$ sudo omstart


När din Raspberry Pi startar, är ufw systemd-tjänsten ska vara aktiv, som du kan se på skärmdumpen nedan.

$ sudo systemctl status ufw


Du kan kontrollera om UFW är aktiverat med följande kommando:

$ sudo ufw-status


Som du kan se är UFW inte aktiverat som standard.


För att aktivera UFW, kör följande kommando:

$ sudo ufw aktivera


Som du kan se är UFW nu aktiverat.

$ sudo ufw-status

Tillåter åtkomst till portarna med hjälp av appprofiler:

UFW har några standardappprofiler. Var och en av appprofilerna har några fördefinierade portar som du kan tillåta / neka åtkomst till.

För att lista alla tillgängliga appprofiler, kör följande kommando:

$ sudo ufw applista


Alla installerade appprofiler bör listas.

Om du är ansluten till din Raspberry Pi via SSH eller VNC (som jag) måste du ge åtkomst till OpenSSH och VNC appprofiler. Annars, nästa gång du startar din Raspberry Pi, kommer du inte att kunna komma åt den på distans eftersom brandväggen kommer att blockera alla portar, inklusive SSH- och VNC-portarna. Så detta är mycket viktigt.


Du kan se vilka portar som definieras i en appprofil (i.e., OpenSSH) med följande kommando:

$ sudo ufw appinfo OpenSSH


Som du kan se, TCP-port 22 definieras i appprofilen OpenSSH.


På samma sätt kan TCP-port 5900 definieras i VNC appprofil.

$ sudo ufw appinformation VNC


För att ge åtkomst till de portar som definieras i VNC appprofil, kör följande kommando:

$ sudo ufw tillåter VNC


Som du kan se VNC appprofil tillåts genom brandväggen.

$ sudo ufw-status numrerad


På samma sätt, ge åtkomst till de portar som definieras i OpenSSH appprofil med följande kommando:

$ sudo ufw tillåter OpenSSH


Som du kan se OpenSSH appprofil tillåts genom brandväggen.

$ sudo ufw-status numrerad

Tillåta åtkomst till portarna med portnummer:

Ibland definieras inte porten som du vill tillåta / neka åtkomst i några tillgängliga appprofiler. Så du måste tillåta / neka åtkomst till dessa portar med hjälp av portnumret.

Du kan till exempel tillåta åtkomst till TCP-port 8080 med följande kommando:

$ sudo ufw tillåter 8080 / tcp


Som du kan se TCP-port 8080 får åtkomst via brandväggen.

$ sudo ufw-status numrerad


På samma sätt kan du tillåta åtkomst till UDP-port 8888 med följande kommando:

$ sudo ufw tillåter 8888 / udp


Som du kan se UDP-port 8888 får åtkomst via brandväggen.

$ sudo ufw-status numrerad

Neka tillgång till hamnar:

Standardbeteendet för UFW-brandväggsprogrammet är att förneka allt som inte är tillåtet. Så du behöver inte göra någonting för att neka tillgång till några portar.

För konkurrens skull kommer jag att visa dig hur du nekar hamnar i UFW ändå.

Till exempel för att neka tillgång till TCP-port 9900, kör följande kommando:

$ sudo ufw neka 9900 / tcp


Som du kan se TCP-port 9900 nekas åtkomst via brandväggen.

$ sudo ufw-status numrerad


På samma sätt kan du förneka de portar som definierats i en appprofil (i.e.,  WWW) som följer:

$ sudo ufw neka WWW

Neka specifika IP-adresser åtkomst till servern:

Ibland kan du behöva neka åtkomst till en specifik IP-adress eller IP-undernät för att skydda din Raspberry Pi-server från DDoS (Distribuerad Denial of Service) -attacker. Du kan göra det med UFW.

För att experimentera med att neka IP-adresser använder jag Apache-webbservern.

Du kan installera Apache-webbservern på din Raspberry Pi med följande kommando:

$ sudo apt installera apache2


För att bekräfta installationen, tryck på Y och tryck sedan på <Stiga på>.


APT-pakethanteraren laddar ner alla paket från internet och installerar dem en efter en. Det kan ta ett tag att slutföra.


Vid denna tidpunkt bör Apache-webbservern installeras.


När Apache-webbservern är installerad skapar du en enkel indexsida med följande kommando:

$ echo "

Välkommen till LinuxHint

"| sudo tee / var / www / html / index.html


De apache2 systemd-tjänsten ska köras, som du kan se på skärmdumpen nedan.

$ sudo systemctl status apache2


Tillåt åtkomst till Apache-webserverporten (TCP-port 80) med hjälp av appprofilen WWW som följer:

$ sudo ufw tillåt www


Som du kan se, definieras portarna i appprofilen WWW får åtkomst via brandväggen.


Hitta IP-adressen till din Raspberry Pi med följande kommando:

$ värdnamn -I


Som du kan se är IP-adressen till min Raspberry Pi 192.168.0.106. Det kommer att vara annorlunda för dig. Så se till att ersätta den med din från och med nu.


Du bör komma åt Apache-webbservern från andra enheter, som du kan se på skärmdumpen nedan.


Den dator jag använder för att komma åt Apache-webbservern har IP-adressen 192.168.0.109.


Att neka IP-adressen 192.168.0.109 tillgång till din Raspberry Pi-server, du måste lägga till brandväggsregeln högst upp (position 1). Ordningen på UFW-reglerna betyder mycket. De mest begränsande reglerna bör gå först.

$ sudo ufw-status numrerad


Att neka IP-adressen 192.168.0.109 tillgång till Raspberry Pi-servern, kör följande kommando:

$ sudo ufw infoga 1 neka från 192.168.0.109 till valfri


UFW-regeln för att neka IP-adressen 192.168.0.109 åtkomst till Raspberry Pi-servern bör vara den översta regeln, som visas på skärmdumpen nedan.

$ sudo ufw-status numrerad


Du kommer inte att kunna komma åt Apache-webbservern som körs på din Raspberry Pi från datorn med IP-adressen 192.168.0.109 längre, som du kan se på skärmdumpen nedan.


Men du kan komma åt Apache-webbservern som körs på din Raspberry Pi från andra datorer.


Om du vill neka åtkomst till ett IP-undernät måste du lägga till den nödvändiga UFW-regeln före regeln du har lagt till tidigare, eftersom det är en mer restriktiv regel.

$ sudo ufw-status numrerad


Till exempel för att neka åtkomst till alla datorer i ett IP-undernät 192.168.20.0/24, kör följande kommando:

$ sudo ufw infoga 1 neka från 192.168.20.0/24 till valfri


UFW-regeln ska läggas till i rätt position, som visas på skärmdumpen nedan. Nu finns ingen dator från IP-undernätet 192.168.20.0/24 ska kunna komma åt din Raspberry Pi-server.

$ sudo ufw-status numrerad

Ta bort UFW-regler:

Ibland kan du behöva ta bort vissa UFW-regler. Det är väldigt enkelt att göra det.

Du kan lista alla tillgängliga UFW-regler med följande kommando:

$ sudo ufw-status numrerad


Alla tillgängliga UFW-regler bör listas. Låt oss säga att du vill ta bort UFW-regel nummer 10 (regel på 10: e position).


För att ta bort UFW-regel nummer 10, kör följande kommando:

$ sudo ufw ta bort 10


Tryck på för att bekräfta borttagningen Y och tryck sedan på <Stiga på>.


UFW-regel nummer 10 bör tas bort.


Som du kan se tas UFW-regeln bort och reglerna ordnas om (UFW-regeln som var i position 11 är nu i position 10).

$ sudo ufw-status numrerad

Slutsats:

I den här artikeln har jag visat dig hur du installerar UFW-brandväggsprogrammet på din Raspberry Pi (kör Raspberry Pi OS). Jag har också visat dig hur du tillåter / nekar portar med UFW-brandväggsprogrammet. Jag har visat dig hur du nekar en specifik IP-adress eller ett IP-undernät från att komma åt Raspberry Pi med UFW-brandväggsprogrammet också.

Hur man förbättrar FPS i Linux?
FPS står för Bildrutor per sekund. FPS: s uppgift är att mäta bildfrekvensen i videouppspelningar eller spelprestanda. Med enkla ord betecknas antalet...
De bästa Oculus App Lab-spelen
Om du är Oculus-headsetägare måste du vara förtjust i sidoladdning. Sideladdning är processen för att installera icke-butiksinnehåll på ditt headset. ...
Topp 10 spel att spela på Ubuntu
Windows-plattformen har varit en av de dominerande plattformarna för spel på grund av den enorma andelen spel som utvecklas idag för att stödja Window...