Sikre Raspberry Pi med brannmur

Sikre Raspberry Pi med brannmur

Hvis du vil kjøre en slags serverprogramvare på Raspberry Pi (jeg.e., Webserver, databaseserver, Minecraft Server) og gjør dem offentlig tilgjengelige på Internett (hosting), og deretter sikrer du Raspberry Pi -serveren med et brannmurprogram er veldig viktig.

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

I denne artikkelen vil jeg bruke UFW Firewall -programmet for å vise deg hvordan du kan sikre 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 enkeltbrett datamaskin.
  2. En mikro-USB (Raspberry Pi 3) eller USB Type-C (Raspberry Pi 4) Power Adapter.
  3. Et 16 GB eller 32 GB MicroSD -kort med Raspberry Pi OS blinket.
  4. Nettverkstilkobling på Raspberry Pi.
  5. En bærbar PC eller en stasjonær datamaskin for VNC Remote Desktop Access 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 hvordan du installerer og bruker Raspberry Pi Image.

Hvis du er en Raspberry Pi -nybegynner og trenger hjelp til å installere Raspberry Pi OS på Raspberry Pi, sjekk artikkelen min hvordan du installerer Raspberry Pi OS på Raspberry Pi 4.

Hvis du trenger hjelp til det hodeløse oppsettet av Raspberry Pi, kan du sjekke artikkelen min hvordan du installerer og konfigurerer Raspberry Pi OS på Raspberry Pi 4 uten ekstern skjerm.

Oppdatering av Raspberry Pi OS:

Når vi prøver å sikre bringebærpi -en, er det en god idé å oppdatere alle de eksisterende pakkene til Raspberry Pi OS. Dette vil gjøre Raspberry Pi OS sikrere fordi det vil installere alle de nyeste sikkerhetsoppdateringene og feilrettingene.

Oppdater først Apt Package Repository Cache med følgende kommando:

$ sudo apt oppdatering


Hvis du vil oppdatere alle de eksisterende pakkene til Raspberry Pi OS, kjører du følgende kommando:

$ sudo apt fulloppgradering


For å bekrefte installasjonen av oppdateringene, trykk Y Og trykk deretter <Tast inn>.


Apt Package Manager vil laste ned alle nødvendige pakker fra Internett. Det kan ta en stund å fullføre.


Når pakkene er lastet ned, vil Apt Package Manager installere dem en etter en. Det kan ta en stund å fullføre.


På dette tidspunktet skal alle oppdateringene installeres.

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

$ sudo omstart

Installere UFW - ukomplisert brannmur:

Når Raspberry Pi -støvlene dine, kan du installere UFW Firewall -programmet med følgende kommando:

$ sudo apt install ufw -y


UFW skal installeres.


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

$ sudo omstart


Når Raspberry Pi -støvlene ufw SystemD -tjenesten skal være aktiv, som du kan se på skjermdumpen nedenfor.

$ sudo systemctl status ufw


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

$ sudo ufw status


Som du ser er UFW ikke aktivert som standard.


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

$ sudo ufw aktiver


Som du ser er UFW nå aktivert.

$ sudo ufw status

Gi 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 opp alle tilgjengelige appprofiler, kjører du følgende kommando:

$ sudo ufw appliste


Alle de installerte appprofilene skal være oppført.

Hvis du er koblet til Raspberry Pi via SSH eller VNC (som meg), må du gi tilgang til OpenSSH og VNC Appprofiler. Ellers, neste gang du starter Raspberry Pi, vil du ikke kunne få tilgang til den eksternt, da brannmuren vil blokkere alle portene, inkludert SSH- og VNC -portene. 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 TCP Port 5900 er definert i VNC Appprofil.

$ sudo ufw appinfo vnc


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

$ sudo ufw tillater vnc


Som du kan se, VNC Appprofil er tillatt gjennom brannmuren.

$ sudo ufw status nummerert


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

$ sudo ufw tillater openssh


Som du kan se, OpenSSH Appprofil er tillatt gjennom brannmuren.

$ sudo ufw status nummerert

Gi tilgang til portene ved hjelp av portnummer:

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

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

$ sudo ufw tillater 8080/tcp


Som du kan se, TCP Port 8080 er tillatt 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 tillater 8888/udp


Som du kan se, UDP Port 8888 er tillatt tilgang gjennom brannmuren.

$ sudo ufw status nummerert

Nekte tilgang til porter:

Standardoppførselen til UFW Firewall -programmet er å nekte alt som ikke er tillatt. Så du trenger ikke å gjøre noe for å nekte tilgang til noen porter.

For konkurranse skyld vil jeg vise deg hvordan du kan nekte havner i UFW uansett.

For eksempel for å nekte tilgang til TCP Port 9900, Kjør følgende kommando:

$ sudo ufw nekter 9900/tcp


Som du kan se, 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) følgende:

$ sudo ufw nekt www

Å nekte spesifikke IP -adresser tilgang til serveren:

Noen ganger kan det hende du må nekte tilgang til en spesifikk IP -adresse eller IP -undernett for å beskytte Raspberry Pi -serveren din mot DDoS (Distribuert Nektelse av tjenesten) angrep. Du kan gjøre det med UFW.

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

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

$ sudo apt install Apache2


For å bekrefte installasjonen, trykk Y Og trykk deretter <Tast inn>.


Apt Package Manager vil laste ned alle pakkene fra Internett og installere dem en etter en. Det kan ta en stund å fullføre.


På dette tidspunktet bør Apache Webserver installeres.


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

$ ekko "

Velkommen til Linuxhint

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


De Apache2 SystemD -tjenesten skal kjøres, som du kan se på skjermdumpen nedenfor.

$ sudo systemctl status apache2


Tillat tilgang til Apache Webserver -port (TCP Port 80) ved hjelp av appprofilen Www følgende:

$ sudo ufw tillater www


Som du ser, portene som er definert i appprofilen Www er tillatt tilgang gjennom brannmuren.


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

$ hostname -i


Som du ser 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 Webserver fra andre enheter, som du kan se på skjermdumpen nedenfor.


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


Å nekte IP -adressen 192.168.0.109 Tilgang til Raspberry Pi -serveren din, du må legge til brannmurregelen øverst (posisjon 1). UFW -reglene er mye viktig. De mest restriktive reglene skal 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 nekt fra 192.168.0.109 til noen


UFW -regelen for å 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 kan ikke få tilgang til Apache Webserver som kjører på 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 Webserver som kjører på Raspberry Pi fra andre datamaskiner.


Hvis du vil nekte tilgang til et IP -undernett, 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 hver datamaskin i et IP -undernett 192.168.20.0/24, Kjør følgende kommando:

$ SUDO UFW INSERT 1 nekt fra 192.168.20.0/24 til noen


UFW -regelen skal legges til i riktig posisjon, som vist på skjermdumpen nedenfor. Nå, ingen datamaskin fra IP -undernettet 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 skal være oppført. La oss si at du vil fjerne UFW -regel nummer 10 (regel på 10. plassering).


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

$ sudo ufw slett 10


For å bekrefte fjerning av operasjonen, trykk Y Og trykk deretter <Tast inn>.


UFW -regel nummer 10 bør fjernes.


Som du kan se, blir UFW -regelen fjernet, og reglene blir omorganisert (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å Raspberry Pi (kjører Raspberry Pi OS). Jeg har også vist deg hvordan du kan tillate/nekte porter ved hjelp av UFW Firewall -programmet. Jeg har vist deg hvordan du kan nekte en spesifikk IP -adresse eller et IP -undernett fra å få tilgang til Raspberry Pi ved hjelp av UFW Firewall -programmet også.