Haben Sie Fragen? Senden Sie uns doch eine Nachricht

OneSystems GmbH

OneSystems GmbH

System Management aus der Schweiz

+41 44 586 40 18
Email: info@onesystems.ch

OneSystems GmbH
Grindlenstrasse 9, 9630 Wattwil, Schweiz

Open in Google Maps
  • Home
  • Über uns
  • Beratung & Betrieb
  • Dienstleistungen
    • Web Hosting
    • E-Mail Hosting
    • Ihre eigene Daten Cloud
  • Produkte
    • BackupPilot
    • OneTools
      • OneAI – AI Gateway
      • OneRun – Automatisierung
  • Blog
  • Kontakt
    • Remote Support
  • Home
  • Blog
  • Linux
  • CentOS
  • CentOS 7 Firewall konfigurieren mit FirewallD
16. Oktober 2026

CentOS 7 Firewall konfigurieren mit FirewallD

CentOS 7 Firewall konfigurieren mit FirewallD

by Michael Kleger / Donnerstag, 13 August 2015 / Published in CentOS, Linux

CentOS (7) bringt mit firewalld eine einfach zu konfigurierende Firewall mit. Im Gegensatz zu UFW unter Ubuntu ist die Firewall unter Centos 7 von Anfang an aktiv. Sie unterstützt IPv4 und IPv6 als auch unterschiedliche Zonen für unterschiedliche Interfaces. Wird einem Interface z.B. die Zone „home“ zugewiesen, werden alle eingehenden Verbindungen angenommen. Wird die Zone „public“ zugewiesen, werden keine eingehenden Verbindungen angenommen, außer diese wurden explizit zugelassen. Für einen Server im Internet ist somit die Zone „public“ die geeignete.

Um zu überprüfen ob die Firewall bereits aktiv ist wird folgender Befehl als root ausgeführt

# systemctl status firewalld

 

wenn die Firewall aktiv ist erhält man eine Ausgabe wie die folgende:

Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)


Active: active (running) since So 2014-08-31 09:23:48 CEST; 14min ago
Main PID: 539 (firewalld)
CGroup: /system.slice/firewalld.service
└─539 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Aug 31 09:23:48 centos systemd[1]: Started firewalld - dynamic firewall daemon.

 

Ist der Dämon nicht aktiv, kann er mit

# systemctl start firewalld

 

gestartet werden.

Konfiguriert wird die Firewall mit dem Kommando firewall-cmd und den entsprechenden Optionen. Damit eine Änderung dauerhaft ist, und nicht nach einenm Neustart verloren geht, muss immer die Option –permanentverwendet werden.

Um herauszufinden welche Zone(n) gerade aktiv sind führt man folgenden Befehl aus:

# firewall-cmd --get-active-zones

 

und erhält z.B. folgende Ausgabe

# firewall-cmd --get-active-zones
public
interfaces: eth0

 

Dies bedeutet, dass dem Interface eth0 die Zone public zugewiesen ist. Bei einem Server mit nur einem Netzwerkinterface ist das in den meisten Fällen die sinnvollste Einstellung.

Eine Liste mit allen verfügbaren Zonen erhält man mit:

# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

 

Die Standard Zone kann folgendermaßen geändert werden, in diesem Fall z.B. auf „home“

# firewall-cmd --set-default-zone=home
success

 

Damit die Änderung auch nach einem Neustart noch funktioniert muss, wie oben beschrieben ein –permanent angehängt werden

# firewall-cmd --set-default-zone=home --permanent
success

 

Dienste welche Verbindungen annehmen dürfen werden immer einer Zone zugewiesen. Firewalld kommt mit vorkonfigurierten Diensten, von denen mache schon aktiv sind, z.B SSH auf Port 22. Die Konfiguration der Zone public erhält man mit:

# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

 

Die vorkonfigurierten Services sind unter /usr/lib/firewalld/services gespeichert. Eigene Services können unter/etc/firewalld/services hinzugefügt werden. Wenn eine Datei in beiden Verzeichnissen vorhanden ist, wird die Datei in /etc/firewalld/services verwendet.

Einen neuen Service (in diesem Fall http, Port 80) kann man mit folgendem Befehl freigeben:

# firewall-cmd --zone=public --add-service=http --permanent
success

 

Damit Änderungen aktiv werden muss immer die Konfiguration neu geladen werden

# firewall-cmd --reload
success

 

Ruft man nun erneut die Konfiguration der Zone public auf sieht man dass der Service http hinzugefügt wurde

 #firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

 

Entfernen kann man den Service wieder mit folgendem Befehl:

# firewall-cmd --zone=public --remove-service=http --permanent
success

 

und anschließendem

# firewall-cmd --reload
success

 

Natürlich ist es auch möglich einen Port für ein bestimmtes Protokoll freizugeben, ohne dafür einen Service zu konfigurieren. In diesem Fall geben wir Port 443 für TCP frei.

# firewall-cmd --zone=public --add-port=443/tcp --permanent
success

 

Aktiviert wird die Freigabe wieder mit

# firewall-cmd --reload
success

 

Eine erneutes Anzeigen der Konfiguration der Zone public zeigt uns dass der Port freigegeben wurde

# firewall-cmd --zone=public --list-all
public (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http ssh
ports: 443/tcp
masquerade: no
forward-ports:
icmp-blocks:
rich rules:

 

Entfernen kann man die Portfreigabe wieder mit

# firewall-cmd --zone=public --remove-port=443/tcp --permanent
success
  • Tweet
Tagged under: CentOS, Firewall, FirewallD

About Michael Kleger

What you can read next

Der eigene Mastodon Server
Postfix befehle
CentOS 6.5 mit PHP 5.4

Schreibe einen Kommentar Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.

Letzten Beiträge

  • Forgejo mit Fail2Ban absichern: Unsere Konfiguration gegen Crawler und Scanner

    Im letzten Beitrag haben wir gezeigt, wie ein s...
  • Wie Monitoring und Fail2Ban über 600’000 IPs blockiert haben

    Ein öffentlich erreichbarer Git-Server, eine da...
  • LenoQuectel RM520N-GL 5G Modem unter Ubuntu 26.04 zum Laufen bringen

    Wer schon einmal versucht hat, ein brandneues W...
  • Checkmk Agent Update Fehler: libz.so.1 failed to map segment from shared object

    Beim Ausführen des Checkmk Agent Updaters kann ...
  • PostgreSQL Wartung automatisieren

    PostgreSQL ist eine sehr stabile und leistungsf...

Neueste Kommentare

  • Michael Kleger zu Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365
  • Joerg zu Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365
  • Forgejo mit Fail2Ban absichern: Unsere Konfiguration gegen Crawler und Scanner - OneSystems GmbH zu Wie Monitoring und Fail2Ban über 600’000 IPs blockiert haben
  • Computer: Betriebssystem Linux – Dietrichs Blog zu Remote Desktop mit Linux Mint 19
  • Ein schlanker SMTP-Relay-Container für moderne Infrastrukturen - OneSystems GmbH zu Mailrelay + SMTP OAuth Relay: SMTP ohne Passwort, bereit für Microsoft 365

Categories

  • b1gMail
  • CentOS
  • Checkmk
  • Debian
  • Docker
  • Fail2Ban
  • Identitätsanbieter
  • Linux
  • Mac OSX
  • Microsoft Exchange
  • Microsoft Outlook
  • Migration
  • Mint
  • Monitoring
  • Neuigkeiten
  • Nextcloud
  • PowerShell
  • Python
  • Raspberry Pi
  • Sicherheit
  • Tipps und Tricks
  • Ubuntu
  • VMware
  • Webseiten
  • Webserver
  • Windows
  • Windows zu Linux

Die OneSystems GmbH ist ein unabhängiger IT-Dienstleister mit Sitz in Wattwil. Wir planen, realisieren und betreiben moderne IT-Infrastrukturen, Cloud- und Hosting-Lösungen für Unternehmen.
Persönlich betreut, zuverlässig betrieben und mit einem klaren Fokus auf Sicherheit und nachhaltige Lösungen.

Letzten Blog Posts

  • Forgejo mit Fail2Ban absichern: Unsere Konfiguration gegen Crawler und Scanner

  • Wie Monitoring und Fail2Ban über 600’000 IPs blockiert haben

  • LenoQuectel RM520N-GL 5G Modem unter Ubuntu 26.04 zum Laufen bringen

Kontakt

Kontaktformular

OneSystems GmbH
Grindlenstrasse 9
9630 Wattwil
Schweiz

Copyright © 2018-2026 OneSystems GmbH, Alle Rechte vorbehalten.
Impressum | Datenschutzerklärung | AGBs | Kontakt

TOP