Raspberry Pi

Raspberry Pi beveiligen met firewall

Raspberry Pi beveiligen met firewall

Als u een soort serversoftware op uw Raspberry Pi (i.e., webserver, databaseserver, Minecraft-server) en openbaar beschikbaar te maken op internet (hosting), dan is het beveiligen van uw Raspberry Pi-server met een firewallprogramma erg belangrijk.

Er zijn veel gratis en open-source firewallprogramma's beschikbaar op het Raspberry Pi OS (het officiële besturingssysteem van Raspberry Pi-computers met één bord). Van deze programma's zijn UFW en Firewalld de meest voorkomende firewallprogramma's.

In dit artikel zal ik het UFW-firewallprogramma gebruiken om u te laten zien hoe u uw Raspberry Pi kunt beveiligen. Dus laten we beginnen.

Dingen die je nodig hebt:

Om dit artikel te volgen, heb je de volgende dingen nodig om je Raspberry Pi in headless-modus in te stellen:

  1. Een Raspberry Pi 3 of Raspberry Pi 4 single-board computer.
  2. Een micro-USB (Raspberry Pi 3) of USB Type-C (Raspberry Pi 4) voedingsadapter.
  3. Een 16 GB of 32 GB microSD-kaart met Raspberry Pi OS geflitst.
  4. Netwerkconnectiviteit op de Raspberry Pi.
  5. Een laptop of een desktopcomputer voor externe VNC-desktoptoegang of SSH-toegang tot de Raspberry Pi.

Als je je Raspberry Pi 4 niet in headless-modus wilt instellen, heb je ook het volgende nodig:

  1. Een monitor
  2. Een HDMI- of micro-HDMI-kabel
  3. Een toetsenbord
  4. Een muis.

Als je hulp nodig hebt bij het flashen van de Raspberry Pi OS-afbeelding op de microSD-kaart, bekijk dan mijn artikel Raspberry Pi Imager installeren en gebruiken.

Als je een Raspberry Pi-beginner bent en hulp nodig hebt bij het installeren van Raspberry Pi OS op je Raspberry Pi, bekijk dan mijn artikel Raspberry Pi OS installeren op Raspberry Pi 4.

Als je hulp nodig hebt bij de headless setup van Raspberry Pi, bekijk dan mijn artikel Raspberry Pi OS installeren en configureren op Raspberry Pi 4 zonder externe monitor.

Raspberry Pi OS bijwerken:

Omdat we onze Raspberry Pi proberen te beveiligen, is het een goed idee om alle bestaande pakketten van het Raspberry Pi-besturingssysteem bij te werken. Dit maakt je Raspberry Pi OS veiliger omdat het de nieuwste beveiligingsupdates en bugfixes zou installeren.

Werk eerst de cache van de APT-pakketrepository bij met de volgende opdracht:

$ sudo apt-update


Voer de volgende opdracht uit om alle bestaande pakketten van uw Raspberry Pi OS bij te werken:

$ sudo apt volledige upgrade


Om de installatie van de updates te bevestigen, drukt u op Y en druk vervolgens op <Enter>.


De pakketbeheerder van APT zal alle vereiste pakketten van internet downloaden. Het kan even duren om te voltooien.


Zodra de pakketten zijn gedownload, zal de pakketbeheerder van APT ze één voor één installeren. Het kan even duren om te voltooien.


Op dit punt zouden alle updates moeten zijn geïnstalleerd.

Om de wijzigingen door te voeren, start u uw Raspberry Pi opnieuw op met de volgende opdracht:

$ sudo opnieuw opstarten

UFW installeren - ongecompliceerde firewall:

Zodra uw Raspberry Pi opstart, kunt u het UFW-firewallprogramma installeren met de volgende opdracht:

$ sudo apt install ufw -y


UFW moet worden geïnstalleerd.


Om de wijzigingen door te voeren, start u uw Raspberry Pi opnieuw op met de volgende opdracht:

$ sudo opnieuw opstarten


Zodra je Raspberry Pi opstart, zal de oeps systemd-service zou actief moeten zijn, zoals je kunt zien in de onderstaande schermafbeelding.

$ sudo systemctl-status ufw


U kunt controleren of UFW is ingeschakeld met het volgende commando:

$ sudo ufw-status


Zoals u kunt zien, is UFW niet standaard ingeschakeld.


Voer de volgende opdracht uit om UFW in te schakelen:

$ sudo ufw inschakelen


Zoals je kunt zien, is UFW nu ingeschakeld.

$ sudo ufw-status

Toegang tot de poorten toestaan ​​met app-profielen:

UFW heeft enkele standaard app-profielen. Elk van de app-profielen heeft een aantal vooraf gedefinieerde poorten waartoe u de toegang kunt toestaan/weigeren.

Voer de volgende opdracht uit om alle beschikbare app-profielen weer te geven:

$ sudo ufw app-lijst


Alle geïnstalleerde app-profielen moeten worden vermeld.

Als je verbonden bent met je Raspberry Pi via SSH of VNC (zoals ik), moet je toegang verlenen tot de OpenSSH en VNC app-profielen. Anders heb je de volgende keer dat je je Raspberry Pi opstart geen toegang op afstand omdat de firewall alle poorten blokkeert, inclusief de SSH- en VNC-poorten. Dit is dus erg belangrijk.


U kunt zien welke poorten zijn gedefinieerd in een app-profiel (i.e., OpenSSH) met het volgende commando:

$ sudo ufw app-info OpenSSH


Zoals je kunt zien, TCP-poort 22 is gedefinieerd in het app-profiel OpenSSH.


Op dezelfde manier is de TCP-poort 5900 is gedefinieerd in de VNC app-profiel.

$ sudo ufw app-info VNC


Om toegang te verlenen tot de poorten die zijn gedefinieerd in de VNC app-profiel, voer de volgende opdracht uit:

$ sudo ufw laat VNC toe


Zoals je kunt zien, is de VNC app-profiel is toegestaan ​​via de firewall.

$ sudo ufw status genummerd


Sta op dezelfde manier toegang toe tot de poorten die zijn gedefinieerd in de OpenSSH app-profiel met de volgende opdracht:

$ sudo ufw laat OpenSSH toe


Zoals je kunt zien, is de OpenSSH app-profiel is toegestaan ​​via de firewall.

$ sudo ufw status genummerd

Toegang tot de poorten toestaan ​​met behulp van het poortnummer:

Soms wordt de poort waartoe u de toegang wilt toestaan/weigeren niet gedefinieerd in beschikbare app-profielen. U moet dus toegang tot deze poorten toestaan/weigeren met het poortnummer.

U kunt bijvoorbeeld toegang verlenen tot de TCP-poort 8080 met het volgende commando:

$ sudo ufw 8080/tcp toestaan


Zoals je kunt zien, is de TCP-poort 8080 heeft toegang via de firewall.

$ sudo ufw status genummerd


Op dezelfde manier kunt u toegang verlenen tot de UDP-poort 8888 met het volgende commando:

$ sudo ufw toestaan ​​8888/udp


Zoals je kunt zien, is de UDP-poort 8888 heeft toegang via de firewall.

$ sudo ufw status genummerd

Toegang tot poorten weigeren:

Het standaardgedrag van het UFW-firewallprogramma is om alles te weigeren wat niet is toegestaan. U hoeft dus niets te doen om de toegang tot poorten te weigeren.

Omwille van de concurrentie zal ik je laten zien hoe je toch poorten in UFW kunt weigeren.

Om bijvoorbeeld de toegang tot de TCP-poort 9900, voer de volgende opdracht uit:

$ sudo ufw weigeren 9900/tcp


Zoals je kunt zien, is de TCP-poort 9900 wordt de toegang geweigerd via de firewall.

$ sudo ufw status genummerd


Op dezelfde manier kunt u de poorten weigeren die zijn gedefinieerd in een app-profiel (i.e.,  WWW) als volgt:

$ sudo ufw weigeren WWW

Specifieke IP-adressen toegang tot de server weigeren:

Soms moet u de toegang tot een specifiek IP-adres of IP-subnet weigeren om uw Raspberry Pi-server te beschermen tegen DDoS-aanvallen (Distributed Denial of Service). Dat kan met UFW.

Om te experimenteren met het weigeren van IP-adressen, zal ik de Apache-webserver gebruiken.

Je kunt de Apache-webserver op je Raspberry Pi installeren met het volgende commando:

$ sudo apt installeer apache2


Om de installatie te bevestigen, drukt u op Y en druk vervolgens op <Enter>.


De pakketbeheerder van APT downloadt alle pakketten van internet en installeert ze één voor één. Het kan even duren om te voltooien.


Op dit punt zou de Apache-webserver moeten zijn geïnstalleerd.


Nadat de Apache-webserver is geïnstalleerd, maakt u een eenvoudige indexpagina met de volgende opdracht:

$ echo "

Welkom bij LinuxHint

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


De apache2 systemd-service zou moeten werken, zoals je kunt zien in de onderstaande schermafbeelding.

$ sudo systemctl-status apache2


Toegang tot de Apache-webserverpoort toestaan ​​(TCP-poort 80) met behulp van het app-profiel WWW als volgt:

$ sudo ufw toestaan ​​www


Zoals u kunt zien, zijn de poorten die zijn gedefinieerd in het app-profiel WWW heeft toegang via de firewall.


Zoek het IP-adres van je Raspberry Pi met het volgende commando:

$ hostnaam -I


Zoals je kunt zien, is het IP-adres van mijn Raspberry Pi: 192.168.0.106. Het zal voor jou anders zijn. Dus zorg ervoor dat je het vanaf nu vervangt door de jouwe.


U moet vanaf andere apparaten toegang krijgen tot de Apache-webserver, zoals u kunt zien in de onderstaande schermafbeelding.


De computer die ik gebruik om toegang te krijgen tot de Apache-webserver heeft het IP-adres 192.168.0.109.


Het IP-adres weigeren 192.168.0.109 toegang tot uw Raspberry Pi-server, moet u de firewallregel bovenaan toevoegen (positie 1). De volgorde van de UFW-regels is erg belangrijk. De meest beperkende regels moeten eerst gaan.

$ sudo ufw status genummerd


Het IP-adres weigeren 192.168.0.109 toegang tot de Raspberry Pi-server, voer de volgende opdracht uit:

$ sudo ufw voeg 1 in vanaf 192.168.0.109 naar elk


De UFW-regel om het IP-adres te weigeren 192.168.0.109 toegang tot de Raspberry Pi-server zou de bovenste regel moeten zijn, zoals weergegeven in de onderstaande schermafbeelding screenshot.

$ sudo ufw status genummerd


Je hebt geen toegang tot de Apache-webserver die op je Raspberry Pi draait vanaf de computer met het IP-adres 192.168.0.109 meer, zoals je kunt zien in de onderstaande schermafbeelding.


Maar u kunt vanaf andere computers toegang krijgen tot de Apache-webserver op uw Raspberry Pi.


Als u de toegang tot een IP-subnet wilt weigeren, moet u de vereiste UFW-regel toevoegen vóór de regel die u eerder hebt toegevoegd, omdat dit een meer beperkende regel is.

$ sudo ufw status genummerd


Om bijvoorbeeld de toegang tot elke computer in een IP-subnet te weigeren 192.168.20.0/24, voer de volgende opdracht uit:

$ sudo ufw voeg 1 in vanaf 192.168.20.0/24 naar willekeurig


De UFW-regel moet op de juiste positie worden toegevoegd, zoals weergegeven in de onderstaande schermafbeelding. Nu, geen computer van het IP-subnet 192.168.20.0/24 zou toegang moeten hebben tot je Raspberry Pi-server.

$ sudo ufw status genummerd

UFW-regels verwijderen:

Soms moet u enkele UFW-regels verwijderen. Het is heel gemakkelijk om dit te doen.

U kunt alle beschikbare UFW-regels weergeven met de volgende opdracht:

$ sudo ufw status genummerd


Alle beschikbare UFW-regels moeten worden vermeld. Stel dat u de UFW-regel nummer 10 wilt verwijderen (regel op de 10e positie).


Voer de volgende opdracht uit om de UFW-regel nummer 10 te verwijderen:

$ sudo ufw verwijderen 10


Om het verwijderen te bevestigen, drukt u op Y en druk vervolgens op <Enter>.


De UFW-regel nummer 10 moet worden verwijderd.


Zoals je kunt zien, is de UFW-regel verwijderd en zijn de regels opnieuw geordend (de UFW-regel die op positie 11 stond, staat nu op positie 10).

$ sudo ufw status genummerd

Conclusie:

In dit artikel heb ik je laten zien hoe je het UFW-firewallprogramma op je Raspberry Pi installeert (met het Raspberry Pi-besturingssysteem). Ik heb je ook laten zien hoe je poorten kunt toestaan/weigeren met behulp van het UFW-firewallprogramma. Ik heb je laten zien hoe je een specifiek IP-adres of een IP-subnet de toegang tot de Raspberry Pi kunt ontzeggen met behulp van het UFW-firewallprogramma.

Hoe Xdotool te gebruiken om muisklikken en toetsaanslagen in Linux te stimuleren
Xdotool is een gratis en open source opdrachtregelprogramma voor het simuleren van muisklikken en toetsaanslagen. Dit artikel behandelt een korte hand...
Top 5 ergonomische computermuisproducten voor Linux
Veroorzaakt langdurig computergebruik pijn in uw pols of vingers?? Heb je last van stijve gewrichten en moet je constant de hand schudden?? Voelt u ee...
Hoe de muis- en touchpad-instellingen te wijzigen met Xinput in Linux
De meeste Linux-distributies worden standaard geleverd met de bibliotheek "libinput" om invoergebeurtenissen op een systeem af te handelen. Het kan in...