Kennisbank Eenvoudige instructies om met de Profitserver-service te werken
Hoofd Kennisbank Firewall configureren op Linux

Firewall configureren op Linux


Firewall op Linux speelt een cruciale rol bij het beveiligen van een computersysteem. Het fungeert als een barrière, controleert en filtert netwerkverkeer om het systeem te beschermen tegen ongeautoriseerde toegang, aanvallen en andere bedreigingen. Zonder een goed geconfigureerde firewall kan de server kwetsbaar zijn voor verschillende soorten cyberaanvallen, wat ernstige gevolgen kan hebben voor de beveiliging en vertrouwelijkheid van gegevens.

In dit artikel bekijken we twee belangrijke tools voor het configureren van de Linux-firewall: firewalld en iptables. We vergelijken hun functies, mogelijkheden en voordelen. Daarnaast geven we gedetailleerde instructies voor het instellen en gebruiken van beide tools en bespreken we de beste werkwijzen voor het beveiligen van uw systeem met een firewall op het Linux-platform. Alle stappen worden gedemonstreerd op een virtuele server met root-toegang.

Firewalld configureren op Linux

Firewalld (Firewall Daemon) is een programma voor het beheren van de firewall in Linux-besturingssystemen. Het biedt een gebruikersinterface voor het configureren van firewallregels, waarmee verbindingen van netwerkapplicaties kunnen worden toegestaan ​​of geblokkeerd. Het is standaard voorgeïnstalleerd in de meeste serverdistributies. Als Firewalld niet is voorgeïnstalleerd, kan het onafhankelijk worden geïnstalleerd vanuit de officiële repositories van de distributie.

Voor Red Hat-systemen (zoals RHEL, CentOS, Fedora) wordt de installatie uitgevoerd met de opdracht:

yum install firewalld

Voor Debian/Ubuntu:

apt-get install firewalld

Na de installatie kan het direct gestart en geactiveerd worden met de opdracht:

systemctl start firewalld

Vervolgens moet u de service toevoegen aan het opstarten:

systemctl enable firewalld
Firewalld toevoegen in Linux autoload

Op dit punt raden we aan om ufw uit te schakelen, omdat het gelijktijdige gebruik van deze tool met firewalld of iptables niet wordt aanbevolen. Controleer de status:

systemctl status ufw
Ufw Linux controleren

Om het te stoppen, voer je de opdracht in:

systemctl stop ufw

Voor volledige deactivering:

ufw disable

Nadat u deze acties hebt uitgevoerd, kunt u doorgaan met het configureren van firewalld.

Ten eerste is het noodzakelijk om trustzones te definiëren. Firewalld gebruikt het concept van zones om het niveau van trust voor netwerkinterfaces te bepalen. Elke interface krijgt één zone toegewezen en firewallregels worden toegepast op basis van de zone. De lijst met alle beschikbare zones wordt geopend met de opdracht:

firewall-cmd --get-zones

Meestal worden er 4 hoofdzones gebruikt:

  1. Publieke: Deze zone is voor netwerken die u als onveilig beschouwt;
  2. Privé: Geldt voor thuisnetwerken of andere vertrouwde netwerkverbindingen;
  3. Intern: Wordt gebruikt voor interne netwerken, zoals die binnen een organisatie of bedrijfsnetwerk;
  4. DMZ:In deze zone worden doorgaans servers geplaatst die toegankelijk moeten zijn via internet.

Dit is echter slechts een voorbeeld. U kunt uw eigen zone toevoegen met de opdracht:

firewall-cmd --permanent --new-zone=nameyourzone

Na het toevoegen is herladen vereist:

firewall-cmd --reload

Om een ​​zone te verwijderen, wordt een vergelijkbare methode gebruikt

firewall-cmd --permanent --delete-zone=nameyourzone

Na het definiëren van zones is het noodzakelijk om verkeer toe te staan ​​voor de benodigde services en poorten. Om een ​​bepaalde service toe te staan, gebruikt u de opdracht:

firewall-cmd --zone=public --add-service=name

Waarbij 'name' de naam van de service is. Bijvoorbeeld, om verkeer voor Apache toe te staan:

firewall-cmd --zone=public --add-service=http

Om toegestane poorten te definiëren, gebruikt u de opdracht:

firewall-cmd --zone=public --add-port=number/protocol

De standaardpoort 22 voor SSH zou er bijvoorbeeld zo uitzien:

firewall-cmd --zone=public --add-port=22/tcp

In deze fase zijn de belangrijkste regels al vastgesteld. Bepaal vervolgens hoe het verkeer wordt verwerkt op basis van de bron, bestemming, poort en andere criteria. Om een ​​regel toe te voegen (met de openbare zone als voorbeeld):

firewall-cmd --zone=public rule

Om bijvoorbeeld inkomend verkeer van elke bron naar poort 80 (HTTP) toe te staan:

firewall-cmd --zone=public --add-port=80/tcp --permanent

Om een ​​regel te verwijderen:

firewall-cmd --permanent --remove-rule=rule_specification

Waarbij 'rule' het type regel aangeeft (bijv. poort, service, uitgebreide regel, enz.) en 'rule_specification' de specificatie van de regel zelf is.

Nadat u wijzigingen in de Firewalld-configuratie hebt aangebracht, moet u deze opslaan en toepassen. Om wijzigingen op te slaan, gebruikt u de opdracht:

firewall-cmd --runtime-to-permanent

Wijzigingen toepassen:

firewall-cmd --reload

Nadat u de installatie hebt voltooid, kunt u de geselecteerde parameters verifiëren door de lijst met alle regels te openen:

firewall-cmd --list-all
firewalld Linux-regels

Als er problemen optreden, controleer dan de Firewalld-logboeken met de opdracht:

journalctl -u firewalld

Let op: we hebben hier alleen het algemene algoritme voor het tot stand brengen van de verbinding behandeld. De tool heeft uitgebreidere functionaliteit. Voor volledige informatie over alle beschikbare opties kunt u de officiële documentatie raadplegen of de helpfunctie openen.

firewall-cmd --help

Iptables configureren op Linux

In tegenstelling tot Firewalld is iptables een oudere maar nog steeds veelgebruikte tool in Linux voor het beheren van de firewall. Het biedt een directere en flexibelere benadering van pakketfilterregels op het Linux-kernelniveau. Echter, iptables vereist meer geavanceerde kennis en ervaring vergeleken met Firewalld, waardoor het minder toegankelijk is voor beginners. Controleer de vooraf geïnstalleerde versie van de tool met de opdracht:

iptables -V

Als de tool niet is geïnstalleerd, moet deze worden geïnstalleerd. De opdracht voor installatie op Ubuntu, Debian:

apt install iptables

Voor Red Hat-systemen (bijv. CentOS, Fedora):

yum install iptables

De opdracht voor activering na installatie:

systemctl start iptables

Om toe te voegen aan de opstart, voer je het volgende uit:

systemctl enable iptables

Voordat u begint met de iptables-configuratie, is het belangrijk om te begrijpen hoe het werkt. Dit wordt geholpen door de syntaxis van het programma. Het ziet er als volgt uit:

iptables -t table action chain additional_parameters

Laten we dieper op elk item ingaan.

Iptables heeft vier hoofdtabellen: filter, nat, mangle en raw . Elke tabel is ontworpen voor het verwerken van bepaalde soorten pakketten en heeft zijn eigen reeks regels:

  1. filter: Dit is de meest gebruikte tabel, met regels voor pakketfiltering. Deze wordt gebruikt om te beslissen of pakketten moeten worden toegestaan ​​of geweigerd.
  2. nat: Deze tabel wordt gebruikt voor het wijzigen van netwerkadressen en poorten in pakketten. Het wordt vaak gebruikt voor het instellen van masquerading (NAT).
  3. mangrove: In deze tabel kunt u pakketheaders wijzigen. Het wordt gebruikt voor gespecialiseerde pakketbewerkingen, zoals markeren.
  4. rauw: Deze tabel wordt gebruikt voor het configureren van regels die van toepassing zijn voordat ze door het connection tracking-systeem gaan. Het wordt doorgaans gebruikt voor het instellen van regels die niet door het tracking-systeem mogen worden gewijzigd, zoals het verwijderen van pakketten van bepaalde adressen.

Elke tabel bevat een set ketens. Ketens zijn een reeks regels die sequentieel worden gecontroleerd. Er zijn drie vooraf gedefinieerde ketens:

  1. INPUT (inkomend)De regels in deze keten bepalen wat er met binnenkomende pakketten moet gebeuren.
  2. UITGANG (uitgaand)Deze keten is van toepassing op alle pakketten die uw computer naar andere apparaten of computers in het netwerk verzendt.
  3. DOORSTUREN (doorsturen)De regels in deze keten specificeren wat er met doorgestuurde pakketten moet gebeuren.

Ten slotte bezit elke keten een actie (doel). In de praktijk worden 5 hoofdacties gebruikt:

  1. ACCEPTEREN: Laat het pakket door de firewall heen gaan.
  2. DROP: Het pakket afwijzen en zonder reactie weggooien.
  3. WEIGEREN: Het pakket afwijzen en de verzender een ICMP-foutbericht sturen.
  4. LOG: Registreer het pakket in het systeemlogboek en voer een andere actie uit (bijvoorbeeld ACCEPT of DROP).
  5. RETURN: Stop met het controleren van de regels in de huidige keten en keer terug naar de aanroepende keten (indien van toepassing).

Om de installatie te starten, opent u de lijst met bestaande regels met de opdracht:

iptables -L
Firewall configureren op Linux

Als leidraad voor het configureren van Iptables, laten we eens kijken naar praktische voorbeelden van de meest gebruikte commando's. Voor het gemak verdelen we de voorbeelden in 3 groepen, afhankelijk van de specifieke keten.

Kettinginvoer :​

  1. Sta binnenkomend verkeer toe via het TCP-protocol op poort 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Sta binnenkomend verkeer toe via het UDP-protocol op poort 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Blokkeer inkomend verkeer van een specifiek IP-adres:

iptables -A INPUT -s 192.168.1.100 -j DROP

Ketting UITVOER :

  1. Sta uitgaand verkeer toe via het TCP-protocol op poort 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Sta uitgaand verkeer toe via het UDP-protocol op poort 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Blokkeer uitgaand verkeer naar een specifieke poort (bijvoorbeeld 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Keten VOORWAARTS :

  1. Blokkeer doorgestuurd verkeer van een specifiek bereik van IP-adressen:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Blokkeer het doorsturen van pakketten vanaf een specifieke netwerkinterface:

iptables -A FORWARD -i eth1 -j DROP

3. Beperk het aantal gelijktijdige verbindingen voor een specifieke poort (in dit voorbeeld 10 verbindingen per minuut op poort 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Zoals u kunt zien, wordt in elk afzonderlijk geval een extra argument (opdracht) gebruikt. Om een ​​volledige lijst met mogelijke argumenten en algehele ondersteuning voor de functionaliteit van de tool te krijgen, voert u het volgende in:

iptables -h
iptables linux setup commando lijst

Om te controleren of de instellingen correct zijn, voert u de opdracht opnieuw in om de lijst met regels te bekijken:

iptables -L
Iptables Linux-regels controleren

Om een ​​specifieke regel te verwijderen, gebruikt u de opdracht:

iptables -D chain rule_number

Als u bijvoorbeeld regel nummer 1 uit de INPUT-keten wilt verwijderen, ziet de opdracht er als volgt uit:

iptables -D INPUT 1

Om alle regels met één opdracht te verwijderen:

iptables -F

Belangrijke opmerking : iptables-regels worden niet automatisch opgeslagen na het herstarten van het systeem of de service. Om de regels op te slaan, moeten ze worden toegevoegd aan een configuratiebestand en na een herstart worden hersteld. De hulpprogramma's iptables-save en iptables-restore kunnen hierbij helpen. Om de regels op te slaan, voert u de volgende opdracht in:

iptables-save > /etc/iptables/rules.v4

Hiermee worden de huidige iptables-regels opgeslagen in het bestand rules.v4. Om te herstellen na het opnieuw opstarten, voert u het volgende in:

iptables-restore < /etc/iptables/rules.v4

Met deze opdracht worden de regels uit het bestand rules.v4 hersteld.

Conclusie

Firewall configureren op Linux met firewalld of iptables is een belangrijk aspect van het waarborgen van serverbeveiliging. Beide tools bieden betrouwbare middelen om netwerkverkeer te beheren en het systeem te beschermen tegen ongeautoriseerde toegang en cyberaanvallen. De keuze tussen firewalld en iptables hangt af van de specifieke behoeften en voorkeuren van de gebruiker, rekening houdend met hun verschillende functionaliteiten en sterktes.

❮ Vorig artikel Serverbelastingdiagnostiek
Volgend artikel ❯ Linux-gebruikers: beheer en machtigingen

Vraag ons over VPS

Wij staan ​​altijd klaar om uw vragen te beantwoorden, op elk moment van de dag of nacht.