Firewalld installeren en configureren op CentOS en Ubuntu

Beveiliging is een van de acties die altijd aanwezig moet zijn, niet alleen in organisaties maar ook op persoonlijk niveau wanneer we met een besturingssysteem werken, en dat wil zeggen, hoewel er verschillende hulpmiddelen zijn om de beveiliging en privacy te vergroten tijdens het gebruik van een systeem, de bediening systeem zelf bevat een extra functie zoals de firewall.

De essentiële functie van een firewall is het creëren en beheren van inkomende en uitgaande regels om het hele netwerkverbindingsproces te beschermen. Zo wordt voorkomen dat verdachte of onbetrouwbare pakketten onze computer binnenkomen en enige vorm van schade veroorzaken, zoals het inbrengen van malware of het kapen van informatie.

Als we met Linux-systemen werken, een van de veiligste, hebben we open source-hulpprogramma's die ons helpen dit beveiligingsproces veel completer te maken en een van deze hulpprogramma's is Firewalld. Solvetic zal uitleggen wat Firewalld is en hoe we het kunnen installeren en gebruiken in twee van de meest gebruikte distributies van dit moment, zoals CentOS en Ubuntu.

OpmerkingHet configuratieproces is identiek voor beide systemen

Wat is Firewalld?Firewalld (firewall-daemon), is een hulpprogramma dat tot doel heeft een dynamisch beheerde firewall te leveren die ondersteuning biedt voor netwerkzones waarin het vertrouwensniveau van de te gebruiken netwerkverbindingen of interfaces is gedefinieerd. Firewalld is compatibel met de IPv4-adressen, IPv6-firewallinstellingen, Ethernet-bridges en IP-adrespools.

Firewalld biedt ons een interface voor services of applicaties om firewallregels direct toe te voegen, waardoor controletaken worden vergemakkelijkt. Een van de belangrijkste voordelen van het gebruik van Firewalld is dat alle wijzigingen die moeten worden aangebracht in realtime kunnen worden gedaan in de uitvoeringsomgeving zonder dat de service of Daemon opnieuw hoeft te worden gestart, zoals bij veel hulpprogramma's gebeurt.

Firewalld integreert een D-Bus-interface die geschikt is voor het beheer van de services, applicaties en het beheer van de firewallconfiguratie.Deze interface kan worden geïntegreerd met de configuratietools zoals firewall-cmd, firewall-config en firewall-applet.

Firewalld-functiesEnkele van de functies die we tegenkomen bij het gebruik van Firewalld zijn:

  • Ondersteuning voor IPv4, IPv6, bridging en ipset.
  • IPv4- en IPv6 NAT-ondersteuning.
  • Firewall of firewallzones.
  • Volledige D-Bus API.
  • Eenvoudige service, poort, protocol, bronpoort, maskering, poortdoorschakeling, icmp-filter, rich rule, interface en bronadresbeheer in gebruikte zones.
  • Directe interface voor beheer.
  • Blokkeringsfunctie die een witte lijst maakt van applicaties die de firewall kunnen wijzigen.
  • Automatisch laden van Linux-kernelmodules.
  • Integratie met Puppet.
  • Getimede firewallregels in zones.
  • Eenvoudige registratie van geweigerde pakketten.
  • Grafische configuratietool met gtk3.
  • Applet met behulp van Qt4.

DistributiesDe basisdistributies waarin Firewalld kan worden geïmplementeerd zijn:

  • RHEL 7, CentOS 7
  • Fedora 18 en hoger

ToepassingenDe toepassingen en bibliotheken die firewalld als hulpprogramma voor firewallbeheer ondersteunen, zijn onder meer:

  • Netwerkmanager
  • libvirt
  • havenarbeider
  • fail2ban

Het is belangrijk dat we, voordat we in detail treden over het installeren en gebruiken van Firewalld, er iets meer over weten. Firewalld bestaat uit drie lagen, namelijk:

  • Hoofdlaag (kernlaag) die verantwoordelijk is voor het beheer van de configuratie en services zoals iptables, ip6tables, ebtables, ipset en de modulelader.
  • D-Bus-interface: dit is het belangrijkste middel voor het wijzigen en maken van firewall-instellingen.
  • Backends die interactie met netfilter mogelijk maken (de native kernelmodule die wordt gebruikt voor firewall) en sommige worden geteld als iptables, ip6tables, ebtables, ipset, nft, linnftables, enz.

De firewalld D-Bus-interface is de belangrijkste manier om firewall-instellingen te maken en te bewerken. Deze interface wordt gebruikt door alle online tools die in firewalld zijn ingebouwd, zoals firewall-cmd, firewall-config en firewall-applet, de firewall-offline-cmd-regel praat niet rechtstreeks met firewalld, maar het bewerkt en maakt de configuratiebestanden van firewalld rechtstreeks via de firewalld-kernel met de IO-stuurprogramma's.

Het globale configuratiebestand voor firewalld bevindt zich in /etc/firewalld/firewalld.conf en de firewallfuncties zijn geconfigureerd in XML-indeling.

Firewalld maakt gebruik van zones die het niveau van vertrouwen bepalen dat de te gebruiken netwerkverbinding, de interface of bronadreslink zal hebben, en dezelfde zone kan voor veel netwerkverbindingen, interfaces en bronnen worden gebruikt.

De beschikbare zones in Firewalld zijn:

AfzettenDit is de zone met het laagste betrouwbaarheidsniveau omdat alle inkomende pakketten automatisch worden geweigerd en alleen uitgaande pakketten kunnen worden ingeschakeld.
BlokBij gebruik van deze zone is het vertrouwensniveau vergelijkbaar met Drop, maar het verschilt alleen doordat inkomende pakketten worden afgewezen met icmp-host-prohibited voor IPv4 en icmp6-adm-prohibited voor IPv6-berichten.
OpenbaarMet deze zone verwijst het vertrouwensniveau naar niet-vertrouwde openbare netwerken, dus het accepteert alleen vertrouwde verbindingen.
ExternHet is het niveau dat wordt gedefinieerd wanneer we de firewall als gateway gebruiken en de maskering ervan wordt ingeschakeld door de routers.
DMZHet is een zone waar het vertrouwensniveau van toepassing is op apparatuur die zich in een DMZ (Gedemilitariseerde) zone bevindt, dit betekent dat de openbare toegang beperkt is tot het interne netwerk. Het accepteert alleen geaccepteerde verbindingen.
WerkZoals de naam al aangeeft, wordt dit niveau gebruikt in werkgebieden waar netwerkcomputers toegang hebben.
thuisDoor dit niveau te gebruiken hebben we het over een thuisomgeving en worden de meeste computers op het netwerk geaccepteerd
internDit type niveau is van toepassing op interne netwerken, zodat alle computers op het lokale netwerk worden geaccepteerd.
vertrouwdHet staat voor Trust, wat inhoudt dat het het hoogste niveau is en alle inkomende verbindingen vertrouwt.

Om zones te configureren of toe te voegen, kunnen we een van de volgende beschikbare firewalld-configuratie-interfaces gebruiken:

  • Grafische configuratietool firewall-config.
  • Firewall-cmd opdrachtregelprogramma.
  • D-BUS programmatische interface.
  • Maak, kopieer of bewerk een zonebestand in een van de configuratiemappen, zoals: / etc / firewalld / zones voor aangepaste en door de gebruiker gemaakte configuratiebestanden of / usr / lib / firewalld / zones voor standaard- en terugvalconfiguraties .

1. Firewalld installeren en beheren op Linux

Stap 1
In het geval dat CentOS 7 wordt gebruikt, is het firewalld-pakket vooraf geïnstalleerd en kan dit worden geverifieerd met de volgende opdracht:

 rpm -qa firewalld
In het geval van Ubuntu moeten we het installeren met de volgende opdracht:
 sudo apt firewalld installeren

VERGROTEN

We voeren de letter S in om de download en installatie van Firewalld te bevestigen.

Stap 2
Firewalld is een reguliere systemd-service die als volgt kan worden beheerd via de opdracht systemctl:

 sudo systemctl start firewalld (hiermee kunt u de service starten) sudo systemctl firewalld inschakelen (schakelt de service in tijdens het opstarten van het systeem) sudo systemctl status firewalld (hiermee kunt u de status van de service zien)

VERGROTEN

Stap 3
Na het starten van de firewalld-service kunnen we controleren of de daemon al dan niet in Linux draait, hiervoor moeten we de firewall-cmd-tool gebruiken, we voeren het volgende uit:

 sudo firewall-cmd -state

VERGROTEN

2. Zones beheren in Firewalld CentOS en Ubuntu

Stap 1
Om een ​​lijst van alle beschikbare firewallservices en zones te krijgen, moeten we de volgende opdrachten uitvoeren:
Om de zones te zien:

 sudo firewall-cmd --get-zones

VERGROTEN

Stap 2
Om de services te zien die we zullen uitvoeren:

 sudo firewall-cmd --get-services

VERGROTEN

Stap 3
De standaardzone is de zone die is geïmplementeerd voor elke firewallfunctie die niet is gekoppeld aan een andere zone. Het is mogelijk om de standaardzoneset voor netwerkverbindingen en interfaces te verkrijgen door het volgende uit te voeren:

 sudo firewall-cmd --get-default-zone

VERGROTEN

Stap 4
Als we een andere standaardzone willen instellen, moeten we het volgende commando gebruiken, moet worden opgemerkt dat als we de optie --permanent toevoegen, de configuratie permanent tot stand wordt gebracht, we elk van de volgende opties kunnen uitvoeren:

 sudo firewall-cmd --set-default-zone = extern
of
 sudo firewall-cmd --set-default-zone = extern -permanent
Stap 4
Vervolgens passen we de wijzigingen toe door het volgende uit te voeren:
 sudo firewall-cmd -reload

VERGROTEN

Stap 5
Als het doel is om bijvoorbeeld een interface aan een zone toe te voegen, kunnen we het volgende uitvoeren:

 sudo firewall-cmd --zone = home --add-interface = enp0s3
In dit geval hebben we de enp0s3 (LAN) interface toegevoegd aan de thuiszone.

VERGROTEN

Stap 6
Opgemerkt moet worden dat een interface alleen aan een enkele zone kan worden toegevoegd, in plaats daarvan kan deze naar een andere zone worden verplaatst, hiervoor zullen we de --change-interface-schakelaar gebruiken of uit de vorige zone verwijderen met de -remove-interface-schakelaar en voeg het dan toe aan de nieuwe zone, bijvoorbeeld:

 sudo firewall-cmd --zone = openbaar --add-interface = enp0s3 sudo firewall-cmd --zone = openbaar --change-interface = enp0s3
Met Firewalld is het mogelijk om veel zones tegelijkertijd te gebruiken. Als we een lijst willen krijgen van alle actieve zones met de functies ingeschakeld, zoals interfaces, services, poorten, protocollen, voeren we het volgende uit:
 sudo firewall-cmd --get-active-zones

VERGROTEN

Stap 7
Om meer informatie te krijgen over de zones, zoals wat er is ingeschakeld of uitgeschakeld, kunnen we een van deze commando's gebruiken:

 sudo firewall-cmd --zone = home --list-all
OF
 sudo firewall-cmd --info-zone public

VERGROTEN

Stap 8
Een andere handige optie om te gebruiken met Firewalld is --get-target, dit toont het doel van een permanente zone, de doelen kunnen standaard zijn, ACCEPT, DROP, REJECT, om het doel van verschillende zones te controleren kunnen we een van de volgende commando's gebruiken :

 sudo firewall-cmd --permanent --zone = public --get-target sudo firewall-cmd --permanent --zone = block --get-target sudo firewall-cmd --permanent --zone = dmz --get- target sudo firewall-cmd --permanent --zone = extern --get-target sudo firewall-cmd --permanent --zone = drop --get-target

3. Poorten blokkeren of openen in Firewalld Linux CentOS en Ubuntu


Om een ​​poort via firewalld te openen, voegt u deze toe aan de zone met de optie --add-port. Als de zone niet expliciet is opgegeven, wordt deze ingeschakeld in de standaardzone.

Stap 1
Om bijvoorbeeld poorten 80 en 443 toe te voegen die inkomend webverkeer via de HTTP- en HTTPS-protocollen toestaan, gaan we het volgende uitvoeren:

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

VERGROTEN

Stap 2
Nu gaan we de firewalld opnieuw laden en de functies controleren die in de openbare zone zijn ingeschakeld:

 sudo firewall-cmd --herlaad sudo firewall-cmd --info-zone public

VERGROTEN

Stap 3
Als we een poort in firewalld willen blokkeren, moeten we de --remove-port optie gebruiken, in dit voorbeeld als volgt:

 sudo firewall-cmd --zone = public --permanent --remove-port = 80 / tcp --remove-port = 443 / tcp

4. Services blokkeren of openen in Firewalld CentOS en Ubuntu


Voor het inschakelen van een service in Firewalld moeten we deze inschakelen met de optie --add-service, onthoud dat, als we de zone weglaten, de standaardzone wordt gebruikt.

Stap 1
Om bijvoorbeeld de http-service in een openbare zone in te schakelen, voeren we het volgende uit:

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

VERGROTEN

Stap 2
Met de parameter -remove-service kunnen we de service uit de toegewezen zone verwijderen:

 sudo firewall-cmd --zone = public --permanent --remove-service = http sudo firewall-cmd -reload

VERGROTEN

5. IP-masquerading in- en uitschakelen via Firewalld Linux


IP-masquerading, of IPMASQ / MASQ) is een NAT-mechanisme waarmee hosts op een netwerk met privé-IP-adressen met internet kunnen communiceren via het openbare IP-adres dat is toegewezen aan de Linux-server met behulp van de IPMASQ-gateway.

Met deze maskering zal het verkeer van de onzichtbare hosts op andere computers op internet verschijnen alsof het rechtstreeks van de Linux-server komt.

Om te controleren of de maskering actief is of niet, voeren we het volgende uit:

 sudo firewall-cmd --zone = public --query-masquerade
Dan kunnen we een zone als deze toevoegen:
 sudo firewall-cmd --zone = public --add-masquerade
Om een ​​zone uit dit type functie te verwijderen, moeten we het volgende uitvoeren:
 sudo firewall-cmd --zone = public --remove-masquerade

6. Hoe IMCP-bericht in en uit te schakelen in Firewalld Linux


Het ICMP-protocol (Internet Control Message Protocol) is een protocol dat is ontwikkeld om verzoeken om informatie of antwoorden op die verzoeken om informatie of onder foutcondities gedurende het hele communicatieproces in het net te genereren.

Stap 1
In Firewalld is het mogelijk om ICMP-berichten in of uit te schakelen, maar het wordt aanbevolen om alle compatibele ICMP-typen te valideren, hiervoor voeren we uit:

 sudo firewall-cmd --get-icmptypes

VERGROTEN

Stap 2
We kunnen een ICMP als volgt toevoegen of blokkeren:

 sudo firewall-cmd --zone = home --add-icmp-block = echo-antwoord sudo firewall-cmd --zone = home --remove-icmp-block = echo-antwoord

VERGROTEN

Stap 3
We kunnen alle ICMP-typen zien die in een zone zijn toegevoegd met behulp van de schakeloptie --list-icmp-blocks:

 sudo firewall-cmd --zone = home --list-icmp-blocks

7. Hoe de paniekmodus in Firewalld Linux CentOS en Ubuntu in of uit te schakelen?


Paniekmodus is een speciale modus geïntegreerd in Firewalld waarin alle inkomende en uitgaande pakketten worden geëlimineerd en actieve verbindingen verlopen zodra deze is geactiveerd. We kunnen deze modus inschakelen in noodsituaties waar er een bedreiging voor het systeem is en dus zullen we vermijden enige verbinding.

Stap 1
Om de paniekmodus te controleren, gebruiken we de --query-panic optie en we kunnen deze activeren met de sudo firewall-cmd --panic-on optie:

VERGROTEN

Stap 2
Om te begrijpen hoe deze modus werkt, kunnen we een website pingen als deze is uitgeschakeld en zullen we alle verzonden verzoeken ontvangen, maar wanneer deze is geactiveerd, zien we een bericht dat een tijdelijke verbindingsfout aangeeft:

VERGROTEN

Stap 3
Om deze modus uit te schakelen voeren we uit:

 sudo firewall-cmd --panic-off

8. Hoe Firewalld op Linux CentOS en Ubuntu te blokkeren?

Stap 1
In Firewalld kunnen lokale applicaties of services de firewallconfiguratie wijzigen als ze met root-privileges worden uitgevoerd, we kunnen bepalen welke applicaties wijzigingen in de firewall kunnen aanvragen en deze aan de witte lijst voor blokkeren kunnen toevoegen. Deze functie is standaard uitgeschakeld en we kunnen deze in- of uitschakelen met de --lockdown-on of -lockdown-off schakelaar:

 sudo firewall-cmd --lockdown-on
OF
 sudo firewall-cmd --lockdown-off
Stap 2
Een veiligere methode is om deze functie rechtstreeks in de editie van het hoofdconfiguratiebestand in of uit te schakelen, aangezien firewall-cmd soms niet bestaat in de blokkerende witte lijst, hiervoor openen we het configuratiebestand:
 sudo nano /etc/firewalld/firewalld.conf

VERGROTEN

Daar vinden we de regel Lockdown = geen regel en stellen de status in op Lockdown = ja, sla de wijzigingen op met de Ctrl + O-toetsen en verlaat de editor met Ctrl + X.

Firewalld is een complete oplossing om verschillende regels en zones toe te voegen aan onze Linux-distributies en zo betere algemene beveiligingsopties aan het systeem toe te voegen.

wave wave wave wave wave