Home
» LINUX
»
Hoe configureer je de SLES 15-firewall met firewall-cmd?
Hoe configureer je de SLES 15-firewall met firewall-cmd?
Een service kan op een SLES 15-server draaien en toch een time-out geven voor externe clients omdat de firewall nieuw inkomend verkeer blokkeert. De oplossing is meestal om de actieve firewalld-zone te identificeren en alleen de service of poort toe te staan die de applicatie nodig heeft. Het SLES-opdrachtregelprogramma hiervoor is firewall-cmd.
Deze handleiding volgt de SUSE SLES 15 SP7 Security and Hardening Guide en de firewalld-opdrachtreferentie, gecontroleerd op 7 oktober 2026. Eerdere servicepacks en geüpgrade SLES 12-systemen kunnen een andere status of verouderde firewallconfiguratie hebben. De terminalafbeeldingen tonen representatieve voorbeelden, geen vastgelegde resultaten van een echte server; vervang interfacenamen, zones en services door de waarden op uw host.
1. Controleer of firewalld actief is.
SUSE documenteert firewalld als standaard geïnstalleerd en ingeschakeld op SLES 15. YaST start het normaal gesproken na de installatie en plaatst interfaces in de standaardzone public. Controleer de machine echter in plaats van ervan uit te gaan dat de standaardinstellingen niet zijn gewijzigd. Voer de volgende opdrachten uit met een account dat gemachtigd is om firewalld te gebruiken sudo:
sudo systemctl status firewalld
sudo firewall-cmd --state
De servicemanager moet melden dat de firewalldservice actief is en firewall-cmd --statemoet rapporteren runningdat de service is geïnstalleerd maar gestopt. Als de service is geïnstalleerd maar gestopt, start deze dan en schakel hem in bij het opstarten:
sudo systemctl enable --now firewalld
Als firewall-cmdhet pakket ontbreekt, controleer dan of firewalldhet is geïnstalleerd en beschikbaar is in de ingeschakelde SUSE-repositories. Installeer of vervang firewallcomponenten niet blindelings op een beheerde server.
De voorbeeldterminal controleert de firewalld-status en toont een voorbeeld van een actieve publieke zone met de eth0-interface.
2. Zoek de zone die de serverinterface beveiligt.
Firewalld groepeert regels in zones , die verschillende vertrouwensniveaus vertegenwoordigen. publicZones worden vaak gebruikt voor netwerken die niet vertrouwd worden. Een service die in de ene zone is geopend, wordt niet automatisch in elke zone geopend. Een correcte regel in de verkeerde zone kan er dus voor zorgen dat uw applicatie onbereikbaar wordt.
Gebruik de uitvoer van active-zone om de zone te vinden die is gekoppeld aan de interface die clientverkeer verwerkt. De interfacenaam kan eth0, ens160, of een andere naam zijn. Als u één interface wilt controleren, voert u het volgende commando uit:
sudo firewall-cmd --get-zone-of-interface=eth0
Vervang dit eth0door de daadwerkelijke interface. Een interface die niet expliciet aan een zone is toegewezen, wordt beheerd door de standaardzone. Wijzig de standaardzone niet zomaar, want dit kan gevolgen hebben voor interfaces die ervan afhankelijk zijn. Identificeer op een externe server de SSH-zone of andere beheerzone en controleer de toegangsregel voordat u de firewallinstellingen opnieuw laadt. Zorg ervoor dat er een console of een herstelpad buiten de band beschikbaar is, indien aanwezig.
De zonelijst laat zien welke interfaces en services aan de voorbeeld-openbare zone zijn gekoppeld voordat er wijzigingen zijn aangebracht.
3. Kies een specifieke service of poort.
Een firewalld -service is een benoemde definitie die een of meer poorten en protocollen kan bevatten. Het is meestal eenvoudiger om een bekende service op naam toe te staan dan het poortnummer te onthouden. Controleer de lijst met geïnstalleerde services en inspecteer een definitie voordat u deze gebruikt.
Voor een webserver httpdekt de vooraf gedefinieerde service doorgaans TCP-poort 80; httpsvoor TLS-webverkeer is er een aparte service. De SLES-documentatie laat dezelfde servicegebaseerde methode zien met voorbeelden zoals DHCP. Gebruik de service die uw applicatie daadwerkelijk nodig heeft en controleer de servicedefinitie lokaal als u twijfelt.
Als er geen vooraf gedefinieerde service beschikbaar is, open dan alleen de vereiste poort en het protocol. Een applicatie die luistert op TCP-poort 8443 kan bijvoorbeeld worden toegestaan met --add-port=8443/tcp. Het openen van een poort in de firewall start geen applicatie, koppelt deze niet aan het netwerk en maakt deze niet beveiligd; controleer of de service zelf is geconfigureerd om te luisteren op het beoogde adres.
Test eerst een tijdelijke regel.
Voor een korte test kunt u een regel toepassen op de runtimeconfiguratie. Runtimewijzigingen worden direct van kracht, maar gaan verloren na een herstart van de firewall of service, tenzij u ze ook permanent opslaat. Firewalld ondersteunt een tijdsgebonden regel, wat handig is als u wilt dat een test automatisch verloopt.
Gebruik voor een eenmalige poorttest --add-port=8443/tcp --timeout=5min plaats van --add-service=http. Selecteer de zone die daadwerkelijk de serverinterface bevat; kopieer deze niet publicals uw host een andere zone gebruikt.
Het voorbeeldcommando voegt de HTTP-service toe aan de permanente configuratie van de openbare zone en herlaadt vervolgens firewalld om deze toe te passen.
4. Sla de regel op en herlaad firewalld
Wanneer u een regel wilt behouden, voegt u deze toe aan de permanente configuratie. Het volgende voorbeeld staat HTTP toe in de openbare zone:
Deze voorbeelden wijzigen eerst de permanente configuratie en laden deze vervolgens opnieuw, zodat de nieuwe regel actief wordt. Bij het opnieuw laden worden ook de runtime-instellingen vervangen door de permanente configuratie. Eventuele wijzigingen die elders alleen tijdens de runtime zijn doorgevoerd, kunnen daarom verloren gaan. Controleer vóór het opnieuw laden van een productiesysteem de belangrijke runtime- en permanente regels, met name de toegang voor beheer op afstand.
Er is ook een workflow waarbij de uitvoering centraal staat: test een regel tijdens de uitvoering, controleer of de service werkt en voeg vervolgens dezelfde regel toe --permanenten herlaad de pagina. Vermijd het gebruik van deze --runtime-to-permanentmethode als snelkoppeling, tenzij u van plan bent elke huidige runtime-regel op te slaan, inclusief tijdelijke wijzigingen die door andere beheerders of software zijn aangebracht.
Hoe kunt u controleren of de wijziging is gelukt?
Controleer zowel de actieve runtime-regel als de opgeslagen regel. Voor een HTTP-service in de openbare zone voert u het volgende commando uit:
De query moet een resultaat retourneren yes, de permanente servicelijst moet bevatten httpen de configuratiecontrole moet succesvol worden afgerond. Gebruik voor een poortregel --query-port=8443/tcpen --list-portsin de overeenkomstige commando's. Test ook vanaf een aparte client die de server kan bereiken; een lokale firewallquery bevestigt dat de regel aanwezig is, niet dat DNS, routing, upstream firewalls of de applicatielistener correct zijn.
De verificatieopdrachten controleren de actieve serviceregel, de opgeslagen servicelijst en de syntaxis van de permanente configuratie.
Veelvoorkomende problemen en veilige oplossingen
De regel is aanwezig, maar verbindingen blijven verlopen: zorg ervoor dat deze is toegevoegd aan de zone die is gekoppeld aan de clientinterface. Controleer vervolgens of de applicatie luistert op het verwachte adres en de verwachte poort, en controleer eventuele firewalls in het netwerk.
De regel werkte tot na een herlaadbeurt: waarschijnlijk werd deze alleen tijdens de uitvoering toegevoegd. Voeg de regel toe --permanenten herlaad de pagina, en vraag vervolgens beide configuraties op.
SSH-toegang loopt risico: controleer de services van de actieve zone en de permanente services voordat u de applicatie opnieuw laadt. Als SSH vereist is en ontbreekt, voeg de sshservice dan permanent toe aan de juiste zone voordat u de applicatie opnieuw laadt. Sluit uw huidige externe sessie niet af voordat u een tweede verbinding hebt getest.
U migreert vanuit een oudere SUSE-release: SLES 15 heeft SuSEfirewall2 vervangen door firewalld. SUSE waarschuwt dat oudere firewallprofielen beperkte achterwaartse compatibiliteit hebben; raadpleeg de migratiehandleiding in plaats van ervan uit te gaan dat elke oudere regel is geconverteerd.
Er lijken tegenstrijdige regels te bestaan: firewalld is bedoeld om de firewallregels van de host te beheren. SUSE waarschuwt ervoor om dezelfde regels afzonderlijk te wijzigen met tools zoals iptables, omdat dit de actieve configuratie in de war kan brengen.
Om een onnodige permanente service of poort te verwijderen, gebruikt u de overeenkomende --remove-serviceoptie --remove-portmet --permanent, waarna u de pagina opnieuw laadt en de resultaten controleert. Verwijder bijvoorbeeld HTTP uit de publieke zone met sudo firewall-cmd --permanent --zone=public --remove-service=httpgevolgd door sudo firewall-cmd --reload.
Controleer jezelf voordat je klaar bent.
firewalldis actief en start automatisch op wanneer de server opstart.
U hebt de actieve zone geïdentificeerd voor de interface die verkeer ontvangt.
Alleen de dienst of poort die de applicatie nodig heeft, is in die zone toegestaan.
Beheer op afstand blijft toegestaan, zowel voor als na het herladen.
De regel verschijnt in runtime- en permanente query's en de configuratiecontrole slaagt.
Een verbindingstest vanaf een andere host bevestigt dat de applicatie bereikbaar is.