Aan de slag met firewalld op Linux

Aan de slag met firewalld op Linux
fatmawati achmad zaenuri/Shutterstock.com

Als u op zoek bent naar een moderne, krachtige firewall voor Linux die eenvoudig te configureren is op de opdrachtregel of met zijn GUI-interface, dan firewalld is waarschijnlijk wat je zoekt.

De behoefte aan firewalls

Netwerkverbindingen hebben een oorsprong en een bestemming. Software bij de oorsprong vraagt ​​om de verbinding en software op de bestemming accepteert of weigert deze. Als het wordt geaccepteerd, kunnen gegevenspakketten – in het algemeen netwerkverkeer genoemd – in beide richtingen over de verbinding gaan. Dat geldt voor of u nu in uw eigen huis door de kamer deelt, op afstand verbinding maakt met uw werk vanuit uw thuiskantoor of een verre, cloudgebaseerde bron gebruikt.

Wat doet een firewall eigenlijk?

VERWANTWat doet een firewall eigenlijk?

Volgens goede beveiligingspraktijken moet u de verbindingen met uw computer beperken en controleren. Dit is wat firewalls doen. Ze filteren netwerkverkeer op IP-adres, poort of protocol en weigeren verbindingen die niet voldoen aan een vooraf gedefinieerde set criteria: de firewall regels-die u hebt geconfigureerd. Ze zijn als beveiligingspersoneel op een exclusief evenement. Als je naam niet op de lijst staat, kom je niet binnen.

Natuurlijk wilt u niet dat uw firewallregels zo beperkend zijn dat uw normale activiteiten worden beperkt. Hoe eenvoudiger het is om uw firewall te configureren, hoe kleiner de kans dat u per ongeluk tegenstrijdige of draconische regels instelt. We horen vaak van gebruikers die zeggen dat ze geen firewall gebruiken omdat het te ingewikkeld is om te begrijpen, of omdat de opdrachtsyntaxis te ondoorzichtig is.

De firewalld firewall is krachtig en toch eenvoudig in te stellen, zowel op de opdrachtregel als via de speciale GUI-toepassing. Onder de motorkap vertrouwen Linux-firewalls op netfilter , het netwerkfilterraamwerk aan de kernelzijde. Hier in gebruikersland hebben we een keuze aan tools om mee te communiceren netfilterzoals iptables, ufw de ongecompliceerde firewall, en firewalld.

Naar onze mening, firewalld biedt de beste balans tussen functionaliteit, granulariteit en eenvoud.

Firewall installeren

Er zijn twee delen om firewalld . er is firewalld het daemon-proces dat de firewall-functionaliteit biedt, en er is firewall-config. Dit is de optionele GUI voor firewalld. Merk op dat er geen “d” in . staat firewall-config.

Installeren firewalld op Ubuntu, Fedora en Manjaro is in alle gevallen eenvoudig, hoewel ze elk hun eigen kijk hebben op wat vooraf is geïnstalleerd en wat is gebundeld.

Om op Ubuntu te installeren, moeten we installeren firewalld en firewall-config.

sudo apt install firewalld

Firewalld installeren op Ubuntu

sudo apt install firewall-config

Firewall-config installeren op Ubuntu

op Fedora, firewalld is al geïnstalleerd. We hoeven alleen maar toe te voegen firewall-config .

sudo dnf install firewall-config

Firewall-config installeren op Fedora

Op Manjaro is geen van beide componenten vooraf geïnstalleerd, maar ze zijn gebundeld in een enkel pakket, zodat we ze beide kunnen installeren met een enkele opdracht.

sudo pacman -Sy firewalld

Firewalld en firewall-config installeren met één commando op Manjaro

We moeten de inschakelen firewalld daemon om toe te staan ​​dat het elke keer dat de computer opstart wordt uitgevoerd.

sudo systemctl enable firewalld

Firewalld inschakelen om automatisch te starten bij opstarten

En we moeten de daemon starten zodat deze nu draait.

sudo systemctl start firewalld

De firewalld-daemon starten

We kunnen gebruiken systemctl om dat te controleren firewalld is gestart en loopt zonder problemen:

sudo systemctl status firewalld

De status van firewalld controleren met systemctl

We kunnen ook gebruik maken van firewalld om te controleren of het draait. Dit maakt gebruik van de firewall-cmd commando met de --state keuze. Let op er staat geen “d” in firewall-cmd :

sudo firewall-cmd --state

De status van firewalld controleren met de opdracht firewall-cmd

Nu we de firewall hebben geïnstalleerd en werken, kunnen we verder gaan met het configureren ervan.

Het concept van zones

De firewalld firewall is gebaseerd op: zones. Zones zijn verzamelingen van firewallregels en een bijbehorende netwerkverbinding. Hiermee kunt u verschillende zones aanpassen – en een andere reeks beveiligingsbeperkingen – waaronder u kunt werken. U hebt bijvoorbeeld een zone gedefinieerd voor normaal, dagelijks hardlopen, een andere zone voor veiliger hardlopen en een “niets in, niets uit” volledige afgesloten zone.

Om van de ene zone naar de andere te gaan, en effectief van het ene beveiligingsniveau naar het andere, verplaatst u uw netwerkverbinding van de zone waarin deze zich bevindt, naar de zone waaronder u wilt werken.

Dit maakt het erg snel om van de ene gedefinieerde set firewallregels naar de andere te gaan. Een andere manier om zones te gebruiken, is door uw laptop de ene zone te laten gebruiken wanneer u thuis bent en een andere wanneer u niet thuis bent en openbare wifi gebruikt.

firewalld wordt geleverd met negen vooraf geconfigureerde zones. Deze kunnen worden bewerkt en er kunnen meer zones worden toegevoegd of verwijderd.

  • druppel: Alle inkomende pakketten worden verwijderd. Uitgaand verkeer is toegestaan. Dit is de meest paranoïde instelling.
  • blok: Alle inkomende pakketten worden verwijderd en een icmp-host-prohibited bericht naar de afzender wordt gestuurd. Uitgaand verkeer is toegestaan.
  • vertrouwd: Alle netwerkverbindingen worden geaccepteerd en andere systemen worden vertrouwd. Dit is de meest vertrouwde instelling en moet worden beperkt tot zeer veilige omgevingen zoals captive testnetwerken of uw huis.
  • openbaar: Deze zone is voor gebruik op openbare of andere netwerken waar geen van de andere computers kan worden vertrouwd. Een kleine selectie van veelvoorkomende en meestal veilige verbindingsverzoeken wordt geaccepteerd.
  • extern: Deze zone is voor gebruik op externe netwerken met NAT-masquerading (port forwarding) ingeschakeld. Uw firewall fungeert als een router die verkeer doorstuurt naar uw privénetwerk dat bereikbaar blijft, maar nog steeds privé.
  • intern: Deze zone is bedoeld voor gebruik op interne netwerken wanneer uw systeem als gateway of router fungeert. Andere systemen op dit netwerk worden over het algemeen vertrouwd.
  • dmz: Deze zone is voor computers die zich in de “gedemilitariseerde zone” buiten uw perimeterverdediging bevinden en met beperkte toegang tot uw netwerk.
  • werk: Deze zone is voor werkmachines. Andere computers op dit netwerk worden over het algemeen vertrouwd.
  • huis: Deze zone is voor thuismachines. Andere computers op dit netwerk worden over het algemeen vertrouwd.

De thuis-, werk- en interne zones lijken qua functie erg op elkaar, maar door ze in verschillende zones te scheiden, kunt u een zone naar wens afstemmen, waarbij één set regels voor een bepaald scenario wordt ingekapseld.

Een goed startpunt is om erachter te komen wat de standaardzone is. Dit is de zone waaraan uw netwerkinterfaces worden toegevoegd wanneer: firewalld is geinstalleerd.

sudo firewall-cmd --get-default-zone

De standaard firewalld-zone vinden

Onze standaardzone is de openbare zone. Om de configuratiedetails van een zone te zien, gebruik de --list-all keuze. Hier wordt alles weergegeven dat is toegevoegd of ingeschakeld voor een zone.

sudo firewall-cmd --zone=public --list-all

De details van de openbare zone weergeven

We kunnen zien dat deze zone is gekoppeld aan netwerkverbinding enp0s3 en verkeer toestaat gerelateerd aan DHCP, mDNS en SSH. Omdat er minimaal één interface aan deze zone is toegevoegd, is deze zone actief.

firewalld kunt u toevoegen Diensten waarvan u verkeer naar een zone wilt accepteren. Die zone laat dan dat soort verkeer door. Dit is gemakkelijker dan te onthouden dat mDNS bijvoorbeeld poort 5353 en het UDP-protocol gebruikt, en die details handmatig aan de zone toe te voegen. Hoewel jij dat ook kunt.

Als we het vorige commando uitvoeren op een laptop met een ethernetverbinding en een wifi-kaart, zien we iets soortgelijks, maar dan met twee interfaces.

sudo firewall-cmd --zone=public --list-all

Een zone met twee interfaces erin

Onze beide netwerkinterfaces zijn toegevoegd aan de standaardzone. De zone heeft regels voor dezelfde drie services als het eerste voorbeeld, maar DHCP en SSH zijn toegevoegd als benoemde services, terwijl mDNS is toegevoegd als een poort- en protocolkoppeling.

Om alle zones weer te geven, gebruik de --get-zones keuze.

sudo firewall-cmd --get-zones

Alle zones met firewall weergeven

Om de configuratie voor alle zones tegelijk te zien, gebruik de --list-all-zones keuze. Je zult dit willen pijpen in less.

sudo firewall-cmd --list-all-zones | less

De details van alle zones weergeven

Dit is handig omdat u door de lijst kunt bladeren of de zoekfunctie kunt gebruiken om poortnummers, protocollen en services te zoeken.

De details van alle zones weergegeven in minder

Op onze laptop gaan we onze Ethernet-verbinding verplaatsen van de openbare zone naar de thuiszone. Dat kunnen we doen met de --zone en --change-interface opties.

sudo firewall-cmd --zone=home --change-interface=enp3s0

Een netwerkinterface toevoegen aan de thuiszone

Laten we eens kijken naar de thuiszone en kijken of onze wijziging is doorgevoerd.

sudo firewall-cmd --zone=home --list-all

De thuiszone met een toegevoegde netwerkinterface

En het heeft. Onze Ethernet-verbinding wordt toegevoegd aan de thuiszone.

Dit is echter geen blijvende verandering. We hebben de veranderd rennen configuratie van de firewall, niet zijn opgeslagen configuratie. Als we opnieuw opstarten of de . gebruiken --reload optie, zullen we terugkeren naar onze vorige instellingen.

Om een ​​wijziging permanent te maken, moeten we de toepasselijke naam . gebruiken --permanent keuze.

Dit betekent dat we de firewall voor eenmalige vereisten kunnen wijzigen zonder de opgeslagen configuratie van de firewall te wijzigen. We kunnen ook wijzigingen testen voordat we ze naar de configuratie sturen. Om onze wijziging permanent te maken, is het formaat dat we moeten gebruiken:

sudo firewall-cmd --zone=home --change-interface=enp3s0 --permanent

Als u enkele wijzigingen aanbrengt maar vergeet te gebruiken --permanent op sommige ervan kunt u de instellingen van de huidige actieve sessie van de firewall naar de configuratie schrijven met behulp van de --runtime-to-permanent keuze.

sudo firewall-cmd --runtime-to-permanent

De firewallconfiguratie opnieuw laden

Services toevoegen en verwijderen

firewalld kent veel diensten. U kunt ze opsommen met behulp van de --get-services keuze.

sudo firewall-cmd --get-services

De services vermelden waar firewalld op naam naar kan verwijzen

Onze versie van firewalld 192 diensten vermeld. Om een ​​dienst in een zone in te schakelen, gebruik de --add-service keuze.

Lijst met erkende diensten

We kunnen een dienst aan een zone toevoegen met behulp van de --add-service keuze.

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

De HTTP-service toevoegen aan een zone

De naam van de service moet overeenkomen met de vermelding in de lijst met services van firewalld.

Een service vervangen: --add-service met --remove-service

Poorten en protocollen toevoegen en verwijderen

Als je liever kiest welke poorten en protocollen worden toegevoegd, kan dat ook. U moet het poortnummer en het protocol weten voor het type verkeer dat u toevoegt.

Laten we HTTPS-verkeer toevoegen aan de openbare zone. Dat gebruikt poort 443 en is een vorm van TCP-verkeer.

sudo firewall-cmd --zone=public --add-port=443/tcp

Een poort- en protocolkoppeling aan een zone toevoegen

Je zou een reeks poorten kunnen leveren door de eerste en laatste poorten te voorzien van een koppelteken “-‘ tussen hen, zoals ‘400-450’.

Vervangen van een poort: --add-port met --remove-port .

De GUI gebruiken

Druk op uw “Super” -toets en begin met het typen van “firewall”. Je ziet het bakstenen muurpictogram voor de firewall-config sollicitatie.

Klik op dat pictogram om de toepassing te starten.

Een dienst toevoegen aan: firewalld het gebruik van de GUI is net zo eenvoudig als het selecteren van een zone uit de lijst met zones en het selecteren van de dienst uit de lijst met diensten.

U kunt ervoor kiezen om de lopende sessie of de permanente configuratie te wijzigen door “Runtime” of “Permanent” te selecteren in het vervolgkeuzemenu “Configuratie”.

Het vervolgkeuzemenu voor configuratie

Om wijzigingen aan te brengen in de lopende sessie en de wijzigingen pas vast te leggen nadat u hebt getest dat ze werken, stelt u het menu “Configuratie” in op “Runtime”. Breng uw wijzigingen aan. Als je tevreden bent dat ze doen wat je wilt, gebruik je de menuoptie Opties > Runtime to Permanent.

Om een ​​poort- en protocolvermelding aan een zone toe te voegen, selecteert u de zone in de zonelijst en klikt u op “Poorten”. Als u op de knop Toevoegen klikt, kunt u het poortnummer opgeven en het protocol uit een menu kiezen.

Een poort- en protocolkoppeling toevoegen met behulp van de firewall-config GUI

Om een ​​protocol toe te voegen, klikt u op “Protocollen”, klikt u op de knop “Toevoegen” en selecteert u het protocol in het pop-upmenu.

Een protocol in de publieke zone, in de firewall-config GUI

Om een ​​interface van de ene zone naar de andere te verplaatsen, dubbelklikt u op de interface in de lijst “Verbindingen” en selecteert u vervolgens de zone in het pop-upmenu.

Een netwerkinterface verplaatsen van de ene zone naar de andere in de firewall-config GUI

Het topje van de ijsberg

Je kunt er nog veel meer mee firewalld, maar dit is genoeg om u op weg te helpen. Met de informatie die we u hebben gegeven, kunt u zinvolle regels maken in uw zones.

Nieuwste artikelen

Gerelateerde artikelen