Kategorie:FirewallD: Unterschied zwischen den Versionen

Aus Foxwiki
K (1 Version importiert)
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=Firewall konfigurieren mit firewalld=
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 –permanent verwendet 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
<span style="background-color:#ffffff;color:#000000;">Ü</span><span style="background-color:#ffffff;color:#000000;">berprüfen ob die Firewall aktiv ist wird folgender Befehl als root ausgeführt </span><span style="background-color:#ffffff;color:#000000;">- </span><span style="background-color:#ffffff;color:#000000;">'''systemctl status firewalld'''</span><span style="background-color:#ffffff;color:#000000;"> </span>
<span style="background-color:#ffffff;color:#000000;">Ü</span><span style="background-color:#ffffff;color:#000000;">berprüfen ob die Firewall aktiv ist wird folgender Befehl als root ausgeführt </span><span style="background-color:#ffffff;color:#000000;">- </span><span style="background-color:#ffffff;color:#000000;">'''systemctl status firewalld'''</span><span style="background-color:#ffffff;color:#000000;"> </span>



Version vom 17. November 2019, 11:47 Uhr

Firewall konfigurieren mit firewalld

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 –permanent verwendet 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


Überprüfen ob die Firewall aktiv ist wird folgender Befehl als root ausgeführt - systemctl status firewalld

Falls nicht aktiv - systemctl start firewalld


Um herauszufinden welche Zonen aktiv sind führt man folgenden Befehl aus - firewall-cmd –get-active-zones


Man erhält folgende Ausgabe

public

interfaces: eth0

Eine Liste mit allen verfügbaren Zonen erhält man mit - firewall-cmd –get-zones


Die Standard Zone kann folgendermaßen geändert werden, in diesem Fall z.B. auf “home” - firewall-cmd --set-default-zone=home


Damit die Änderung auch nach einem Neustart noch funktioniert muss, ein -permanent angehängt werden -

firewall-cmd –set-default-zone=home --permanent


Dienste welche Verbindungen annehmen dürfen werden immer einer Zone zugewiesen. Firewalld kommt mit vorkonfigurierten Diensten, von denen manche schon aktiv sind, z.B SSH auf Port 22. Die Konfiguration der Zone public erhält man mit - firewall-cmd --zone=public –list-all


Die ausgabe könnte dabei folgendermaßen aussehen


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


Damit Änderungen aktiv werden muss immer die Konfiguration neu geladen werden - firewall-cmd --reload


Ruft man nun 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 - firewall-cmd --zone=public --remove-service=http –permanent


und anschließendem - firewall-cmd --reload

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


Aktiviert wird die Freigabe wieder mit

firewall-cmd --reload

Entfernen kann man die Portfreigabe wieder mit

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


firewall-cmd --list-ports firewall-cmd add-port=22/tcp firewall-cmd --remove-port=22/tcp

firewall-cmd –list-all

firewall-cmd --get-services

Seiten in der Kategorie „FirewallD“

Diese Kategorie enthält nur die folgende Seite.