Terug naar blog

Een firewall instellen met FirewallD op CentOS 7

Een firewall instellen met FirewallD op CentOS 7

Introductie

Firewalld is een oplossing voor firewallbeheer die beschikbaar is voor veel Linux-distributies. Het dient als een interface voor het iptables-pakketfiltersysteem dat wordt geleverd door de Linux-kernel. In deze handleiding leert u hoe u een firewall voor uw server configureert. We laten u ook de basisbeginselen zien van het beheren van de firewall met de firewall-cmd-beheertool.

Basisbeginselen van Firewalld

FirewallD maakt gebruik van de concepten van zones en services, in plaats van de chains en regels van iptables. Afhankelijk van de zones en services die u configureert, kunt u bepalen welk verkeer wel of niet is toegestaan van en naar het systeem. FirewallD kan worden geconfigureerd en beheerd met behulp van het opdrachtregelprogramma firewall-cmd.

Installeer en activeer uw firewall om te starten bij het opstarten

Op de meeste Linux-distributies is firewallD al geïnstalleerd. Als u het echter zelf moet installeren, typt u de onderstaande syntaxis:

U kunt de service inschakelen en uw server opnieuw opstarten zodra firewalld is geïnstalleerd:

Start vervolgens uw server opnieuw op. Uw firewall wordt ingeschakeld wanneer u de server met succes opnieuw hebt opgestart. Gebruik daarna de onderstaande opdracht om te controleren of de service is geactiveerd:

check firewall state FirewallD

De uitvoer laat zien dat de standaard firewall-instelling werkt.

De standaardinstellingen controleren

U kunt de door de server geselecteerde zone controleren met deze opdracht:

check firewall default zone

Controleer de actieve zone door te typen:

firewall active zones

Druk de configuratie van de standaardzone af om de regels te kennen die aan het openbare gebied zijn gekoppeld met behulp van deze syntaxis:

list all rules FirewallD

De uitvoer geeft aan dat deze zone zowel de standaard- als de actieve zone is. Het laat ook zien dat de interfaces eth0 en eth1 aan deze zone zijn toegewezen.

Alternatieve zones controleren

Naast de standaard- en actieve zones zijn er nog andere zones die u kunt verkennen. Voer deze opdracht in om alle beschikbare zones te zien:

firewall check other zones

Controleer de specifieke configuratie die aan een zone is toegewezen door de parameter –zone= toe te voegen aan de opdracht –list-all:

check zone configuration FirewallD

 De interfacezone wijzigen

U kunt de interfacezone eenvoudig wijzigen met de optie –change-interface gecombineerd met de optie –change-interface. De volgende opdracht wijst de interface eth1 toe aan de werkruimte:

U kunt de wijzigingen controleren door te typen:

changing firewall interface zones FirewallD

De standaardzone wijzigen

Om de standaardzone te wijzigen, gebruikt u –set-default-zone gevolgd door de naam van de zone die u als standaard wilt instellen. Om bijvoorbeeld de standaardzone te wijzigen in start, voert u de volgende opdracht uit:

Vervolgens kunt u de wijzigingen controleren met:

firewall change default zone

Regels instellen voor uw toepassingen

Laten we de basisbeginselen doorlopen die nodig zijn om firewall-uitzonderingen voor de services te definiëren:

Een service toevoegen aan uw zones

De meest eenvoudige manier is door de poorten of services die u nodig hebt toe te voegen aan de zones die u gebruikt. Evenzo kunt u de optie –get-services gebruiken om alle beschikbare services te zien:

firewall get services FirewallD

U kunt de service voor een zone activeren met de parameter –add-service =. De actie is gericht op de standaardzone of een zone gedefinieerd door de parameter –zone =. Standaard is alleen de huidige firewallsessie geconfigureerd. U kunt een permanente firewallconfiguratie instellen door de vlag –permanent te activeren. Als u bijvoorbeeld een webserver draait die regulier HTTP-verkeer levert, kunt u dit verkeer voor interfaces in onze “public”-zone voor deze sessie toestaan door het volgende in te voeren:

U kunt –zone = weglaten als u de standaardzone wilt wijzigen. U kunt controleren of de bewerking is geslaagd met de bewerkingen –list-all of –list-services:

add service to zone

Zodra u heeft geverifieerd dat alles naar verwachting werkt, wilt u waarschijnlijk de permanente firewallregels wijzigen om uw service ook na een herstart beschikbaar te houden. We kunnen de wijziging in onze “public”-zone permanent maken door de volgende syntaxis in te voeren:

U kunt de vlag –permanent toevoegen aan de bewerking –list-services om te controleren of dit is geslaagd. U moet sudo gebruiken voor –alle permanente bewerkingen:

Uw “public”-zone staat nu HTTP-verkeer toe op poort 80. U kunt dit toevoegen aan de huidige sessie en de permanente regelset met behulp van de onderstaande opdracht:

Als er geen services zijn die aan uw vereisten voldoen, heeft u twee uitstekende opties om deze situatie aan te pakken:

  1. Een poort openen voor uw zones

De meest eenvoudige manier om ondersteuning voor uw specifieke toepassing toe te voegen, is door de poorten te openen die in elke zone worden gebruikt. Het is zo eenvoudig als het toewijzen van een poort of poortbereik en het bijbehorende protocol voor de poorten die u moet openen. Als uw toepassing bijvoorbeeld op poort 5000 draait en TCP gebruikt, kunt u deze voor deze sessie toevoegen aan de “public”-zone met de parameter –add-port =. Protocollen kunnen TCP of UDP zijn:

Om te controleren of de bewerking is geslaagd, gebruikt u de bewerking –list-ports:

U kunt ook een bereik opgeven voor de seriële interface door de begin- en eindpoort in het bereik te scheiden met een koppelteken. Als uw toepassing bijvoorbeeld UDP-poorten 4990 tot 4999 gebruikt, kunt u deze openen in “public” door het volgende te schrijven:

Na het testen willen we ze waarschijnlijk toevoegen aan de permanente firewall. U kunt dit doen door het volgende te typen:

adding ports to permanent firewall

  1. Een service definiëren

Een service is een verzameling poorten met een bijbehorende naam en beschrijving. Services zijn eenvoudiger te beheren dan poorten, maar het vereist een klein beetje initiële inspanning. De meest eenvoudige manier om te beginnen is door een bestaand script (in / usr / lib / firewalld / services) te kopiëren naar de map /etc/firewalld/services. U kunt bijvoorbeeld de SSH-servicedefinitie kopiëren om te gebruiken in de “example”-servicedefinitie, als volgt. De bestandsnaam minus het XML-achtervoegsel bepaalt de servicenaam in de lijst met firewallservices:

Op dit punt kunt u de definitie in het gekopieerde bestand aanpassen:

Eerst bevat het bestand de SSH-definitie die u hebt gekopieerd:

Het grootste deel van deze definitie bestaat uit metadata. U moet de korte naam van de service wijzigen in de <short>-tags. Dit is een leesbare servicenaam. Stel dat we voor onze “example”-service poort 7777 moeten openen voor TCP en 8888 voor UDP. U kunt de bestaande definitie wijzigen door naar de INSERT-modus te gaan door op i te drukken:

Druk vervolgens op ESC en typ :x om het bestand op te slaan en te sluiten. Typ daarna het onderstaande commando om uw firewall te herstarten, zodat u toegang krijgt tot uw nieuwe service;

Gebruik daarna het onderstaande commando voor een lijst met beschikbare services:

get services

Deze service is nu beschikbaar in uw zone.

Uw zones aanmaken

Hoewel de vooraf gedefinieerde zones waarschijnlijk voldoende zijn voor de meeste gebruikers, kan het handig zijn om uw eigen zones te definiëren die hun functie vollediger beschrijven.

Wanneer u een zone toevoegt, voeg deze dan toe aan uw permanente firewall-instellingen. Vervolgens kunt u herladen om de instellingen naar uw sessie te brengen. U kunt bijvoorbeeld de twee eerder besproken zones aanmaken door te typen:

U kunt bevestigen dat ze aanwezig zijn in uw permanente configuratie met dit commando:

firewall zones

Laad de firewall opnieuw om deze nieuwe zones in de actieve configuratie op te nemen:

Nu kun je de juiste services en poorten toewijzen aan je zones. Voor de zone “publicweb” wil je bijvoorbeeld misschien de services SSH, HTTP en HTTPS toevoegen:

list public web zone

 

Je kunt ook de DNS-service toevoegen aan je “privateDNS”-zone met dit commando:

list privateDNS zone FirewallD

Vervolgens kun je je interfaces naar deze nieuwe zones wijzigen om ze te testen:

Test de configuratie om te zien of deze werkt. Als deze waarden voor jou werken, moet je dezelfde regels toevoegen aan de permanente configuratie. Dit kun je doen door de regels opnieuw toe te passen met de —permanent indicator:

 

Na het permanent toepassen van deze regels kun je je netwerk herstarten en je firewall-service herladen:

Controleer of de zones correct zijn toegewezen:

check active zones FirewallD

Zorg er bovendien voor dat beide zones de juiste service hebben:

Als je een van je zones als standaard wilt instellen voor andere interfaces, moet je dit gedrag configureren met de parameter –set-default-zone= met behulp van dit commando:

Conclusie

Op dit punt heb je met succes je eigen zones aangemaakt. Je zou nu een basisbegrip moeten hebben van het beheren van de firewalld-service op je CentOS-systeem voor dagelijks gebruik. Een goed begrip van de firewalld-service stelt je in staat om optimaal te profiteren van de kracht en flexibiliteit ervan.

Veel computerplezier!

 

author

Akshay Nagpal

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.