Bringebær Pi

Sikrer Raspberry Pi med brannmur

Sikrer Raspberry Pi med brannmur

Hvis du vil kjøre en slags serverprogramvare på Raspberry Pi (i.e., webserver, databaseserver, Minecraft-server) og gjøre dem offentlig tilgjengelige på internett (hosting), og det er veldig viktig å sikre Raspberry Pi-serveren din med et brannmurprogram.

Det er mange gratis og åpen kildekode-brannmurprogrammer tilgjengelig på Raspberry Pi OS (det offisielle operativsystemet til Raspberry Pi enkeltkortcomputere). Blant disse programmene er UFW og Firewalld de vanligste brannmurprogrammene.

I denne artikkelen vil jeg bruke UFW-brannmurprogrammet for å vise deg hvordan du sikrer Raspberry Pi. Så la oss komme i gang.

Ting du trenger:

For å følge denne artikkelen trenger du følgende ting for å sette opp Raspberry Pi i hodeløs modus:

  1. En Raspberry Pi 3 eller Raspberry Pi 4 enkeltbordsmaskin.
  2. En micro-USB (Raspberry Pi 3) eller USB Type-C (Raspberry Pi 4) strømadapter.
  3. Et 16 GB eller 32 GB microSD-kort med Raspberry Pi OS blinket.
  4. Nettverkstilkobling på Raspberry Pi.
  5. En bærbar eller stasjonær datamaskin for ekstern tilgang til VNC eller SSH-tilgang til Raspberry Pi.

Hvis du ikke vil sette opp Raspberry Pi 4 i hodeløs modus, trenger du også:

  1. En skjerm
  2. En HDMI- eller mikro-HDMI-kabel
  3. Et tastatur
  4. En mus.

Hvis du trenger hjelp til å blinke Raspberry Pi OS-bildet på microSD-kortet, kan du sjekke artikkelen min Slik installerer og bruker du Raspberry Pi Imager.

Hvis du er en Raspberry Pi-nybegynner og trenger hjelp til å installere Raspberry Pi OS på din Raspberry Pi, kan du sjekke artikkelen min Slik installerer du Raspberry Pi OS på Raspberry Pi 4.

Hvis du trenger hjelp med hodeløs oppsett av Raspberry Pi, sjekk artikkelen min Slik installerer og konfigurerer du Raspberry Pi OS på Raspberry Pi 4 uten ekstern skjerm.

Oppdaterer Raspberry Pi OS:

Når vi prøver å sikre vår Raspberry Pi, er det en god ide å oppdatere alle eksisterende pakker med Raspberry Pi OS. Dette vil gjøre ditt Raspberry Pi OS sikrere fordi det vil installere alle de nyeste sikkerhetsoppdateringene og feilrettingen.

Oppdater først APT-pakkelagerbufferen med følgende kommando:

$ sudo apt oppdatering


For å oppdatere alle eksisterende pakker i Raspberry Pi OS, kjør følgende kommando:

$ sudo apt fulloppgradering


Trykk på for å bekrefte installasjonen av oppdateringene Y og trykk deretter på <Tast inn>.


APT-pakkeadministratoren laster ned alle nødvendige pakker fra internett. Det kan ta litt tid å fullføre.


Når pakkene er lastet ned, installerer APT-pakkebehandleren dem en etter en. Det kan ta litt tid å fullføre.


På dette tidspunktet skal alle oppdateringene installeres.

For at endringene skal tre i kraft, må du starte Raspberry Pi på nytt med følgende kommando:

$ sudo omstart

Installere UFW - Ukomplisert brannmur:

Når Raspberry Pi er startet opp, kan du installere UFW-brannmurprogrammet med følgende kommando:

$ sudo apt install ufw -y


UFW skal installeres.


For at endringene skal tre i kraft, må du starte Raspberry Pi på nytt med følgende kommando:

$ sudo omstart


Når Raspberry Pi har startet, er ufw systemd-tjenesten skal være aktiv, som du kan se på skjermbildet nedenfor.

$ sudo systemctl status ufw


Du kan sjekke om UFW er aktivert med følgende kommando:

$ sudo ufw status


Som du kan se, er UFW ikke aktivert som standard.


For å aktivere UFW, kjør følgende kommando:

$ sudo ufw aktivere


Som du kan se, er UFW nå aktivert.

$ sudo ufw status

Tillater tilgang til portene ved hjelp av appprofiler:

UFW har noen standard appprofiler. Hver av appprofilene har noen forhåndsdefinerte porter som du kan tillate / nekte tilgang til.

For å liste alle tilgjengelige appprofiler, kjør følgende kommando:

$ sudo ufw appliste


Alle installerte appprofiler skal vises.

Hvis du er koblet til din Raspberry Pi via SSH eller VNC (som meg), må du gi tilgang til OpenSSH og VNC app-profiler. Ellers, neste gang du starter Raspberry Pi, vil du ikke kunne få tilgang til den eksternt, da brannmuren vil blokkere alle porter, inkludert SSH- og VNC-porter. Så dette er veldig viktig.


Du kan se hvilke porter som er definert i en appprofil (i.e., OpenSSH) med følgende kommando:

$ sudo ufw appinfo OpenSSH


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


På samme måte er den TCP-port 5900 er definert i VNC app-profil.

$ sudo ufw appinfo VNC


For å gi tilgang til portene som er definert i VNC app-profil, kjør følgende kommando:

$ sudo ufw tillate VNC


Som du kan se, er VNC app-profil er tillatt gjennom brannmuren.

$ sudo ufw status nummerert


På samme måte, gi tilgang til portene som er definert i OpenSSH app-profil med følgende kommando:

$ sudo ufw tillater OpenSSH


Som du kan se, er OpenSSH app-profil er tillatt gjennom brannmuren.

$ sudo ufw status nummerert

Tillater tilgang til portene ved hjelp av portnummer:

Noen ganger blir ikke porten du vil tillate / nekte tilgang til, definert i noen tilgjengelige appprofiler. Så du må tillate / nekte tilgang til disse portene ved hjelp av portnummeret.

For eksempel kan du gi tilgang til TCP-port 8080 med følgende kommando:

$ sudo ufw tillater 8080 / tcp


Som du kan se, er TCP-port 8080 får tilgang gjennom brannmuren.

$ sudo ufw status nummerert


På samme måte kan du gi tilgang til UDP-port 8888 med følgende kommando:

$ sudo ufw tillate 8888 / udp


Som du kan se, er UDP-port 8888 får tilgang gjennom brannmuren.

$ sudo ufw status nummerert

Nekter tilgang til porter:

Standard oppførsel til UFW-brannmurprogrammet er å nekte alt som ikke er tillatt. Så du trenger ikke å gjøre noe for å nekte tilgang til noen porter.

For konkurransens skyld vil jeg vise deg hvordan du nekter havner i UFW uansett.

For eksempel å nekte tilgang til TCP-port 9900, kjør følgende kommando:

$ sudo ufw nekte 9900 / tcp


Som du kan se, er TCP-port 9900 nektes tilgang gjennom brannmuren.

$ sudo ufw status nummerert


På samme måte kan du nekte portene som er definert i en appprofil (i.e.,  WWW) som følger:

$ sudo ufw nekte WWW

Nekter spesifikke IP-adresser tilgang til serveren:

Noen ganger kan det hende du må nekte tilgang til en bestemt IP-adresse eller IP-delnett for å beskytte Raspberry Pi-serveren din mot DDoS (Distribuert Denial of Service) -angrep. Du kan gjøre det med UFW.

For å eksperimentere med å nekte IP-adresser, vil jeg bruke Apache-webserveren.

Du kan installere Apache-webserveren på Raspberry Pi med følgende kommando:

$ sudo apt installere apache2


Trykk på for å bekrefte installasjonen Y og trykk deretter på <Tast inn>.


APT-pakkebehandleren vil laste ned alle pakkene fra internett og installere dem en etter en. Det kan ta litt tid å fullføre.


På dette tidspunktet skal Apache-webserveren installeres.


Når Apache-webserveren er installert, oppretter du en enkel indeksside med følgende kommando:

$ echo "

Velkommen til LinuxHint

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


De apache2 systemd-tjenesten skal kjøre, som du kan se på skjermbildet nedenfor.

$ sudo systemctl status apache2


Gi tilgang til Apache-webserverporten (TCP-port 80) ved hjelp av app-profilen WWW som følger:

$ sudo ufw tillat www


Som du kan se, er portene definert i appprofilen WWW får tilgang gjennom brannmuren.


Finn IP-adressen til din Raspberry Pi med følgende kommando:

$ vertsnavn -I


Som du kan se, er IP-adressen til min Raspberry Pi 192.168.0.106. Det vil være annerledes for deg. Så sørg for å erstatte den med din fra nå av.


Du bør få tilgang til Apache-webserveren fra andre enheter, som du kan se på skjermbildet nedenfor.


Datamaskinen jeg bruker for å få tilgang til Apache-webserveren har IP-adressen 192.168.0.109.


Å nekte IP-adressen 192.168.0.109 tilgang til Raspberry Pi-serveren din, må du legge til brannmurregelen øverst (posisjon 1). Rekkefølgen til UFW-reglene betyr mye. De mest restriktive reglene bør gå først.

$ sudo ufw status nummerert


Å nekte IP-adressen 192.168.0.109 tilgang til Raspberry Pi-serveren, kjør følgende kommando:

$ sudo ufw insert 1 deny fra 192.168.0.109 til hvilken som helst


UFW-regelen om å nekte IP-adressen 192.168.0.109 tilgang til Raspberry Pi-serveren skal være den øverste regelen, som vist på skjermbildet nedenfor.

$ sudo ufw status nummerert


Du vil ikke kunne få tilgang til Apache-webserveren som kjører på din Raspberry Pi fra datamaskinen med IP-adressen 192.168.0.109 lenger, som du kan se på skjermbildet nedenfor.


Men du kan få tilgang til Apache-webserveren som kjører på Raspberry Pi fra andre datamaskiner.


Hvis du vil nekte tilgang til et IP-subnett, må du legge til den nødvendige UFW-regelen før regelen du har lagt til tidligere, da det er en mer restriktiv regel.

$ sudo ufw status nummerert


For eksempel å nekte tilgang til alle datamaskiner i et IP-subnett 192.168.20.0/24, kjør følgende kommando:

$ sudo ufw insert 1 deny fra 192.168.20.0/24 til hvilken som helst


UFW-regelen skal legges til i riktig posisjon, som vist på skjermbildet nedenfor. Nå er det ingen datamaskin fra IP-subnettet 192.168.20.0/24 skal kunne få tilgang til Raspberry Pi-serveren din.

$ sudo ufw status nummerert

Fjerne UFW-regler:

Noen ganger kan det hende du må fjerne noen UFW-regler. Det er veldig enkelt å gjøre det.

Du kan liste opp alle tilgjengelige UFW-regler med følgende kommando:

$ sudo ufw status nummerert


Alle tilgjengelige UFW-regler bør være oppført. La oss si at du vil fjerne UFW-regel nummer 10 (regel på 10. posisjon).


For å fjerne UFW-regel nummer 10, kjør følgende kommando:

$ sudo ufw slett 10


Trykk på for å bekrefte fjerningen Y og trykk deretter på <Tast inn>.


UFW-regel nummer 10 bør fjernes.


Som du kan se, fjernes UFW-regelen, og reglene omorganiseres (UFW-regelen som var i posisjon 11 er nå i posisjon 10).

$ sudo ufw status nummerert

Konklusjon:

I denne artikkelen har jeg vist deg hvordan du installerer UFW-brannmurprogrammet på din Raspberry Pi (kjører Raspberry Pi OS). Jeg har også vist deg hvordan du tillater / nekter porter ved hjelp av UFW-brannmurprogrammet. Jeg har vist deg hvordan du nekter en spesifikk IP-adresse eller et IP-subnett fra å få tilgang til Raspberry Pi ved hjelp av UFW-brannmurprogrammet også.

Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...
HD Remastered Games for Linux som aldri hadde en Linux-utgave tidligere
Mange spillutviklere og utgivere kommer med HD-remaster av gamle spill for å forlenge franchisetiden, vennligst fans som ber om kompatibilitet med mod...
Hvordan bruke AutoKey til å automatisere Linux-spill
AutoKey er et desktopautomatiseringsverktøy for Linux og X11, programmert i Python 3, GTK og Qt. Ved å bruke skript og MACRO-funksjonalitet kan du aut...