Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
redhat:base-redhat:fw-redhat [2019/03/06 13:50] – michael | redhat:base-redhat:fw-redhat [2019/03/07 10:47] (current) – [Troubleshooting] michael | ||
---|---|---|---|
Line 38: | Line 38: | ||
Die vordefinierten Firewalld Services können unter / | Die vordefinierten Firewalld Services können unter / | ||
- | < | + | < |
[rebermi@vnixeh ~]$ ls -lsa / | [rebermi@vnixeh ~]$ ls -lsa / | ||
total 516 | total 516 | ||
Line 87: | Line 87: | ||
Ein vordefinierter Dienst erlaubt grundsätzlich einen definierten Port von Quelle 0.0.0.0 bis zum Ziel 0.0.0.0. Es ist nicht möglich, einem vordefinierten Dienst Quellziel hinzuzufügen. Vordefinierte Dienste sind XML-Dateien, | Ein vordefinierter Dienst erlaubt grundsätzlich einen definierten Port von Quelle 0.0.0.0 bis zum Ziel 0.0.0.0. Es ist nicht möglich, einem vordefinierten Dienst Quellziel hinzuzufügen. Vordefinierte Dienste sind XML-Dateien, | ||
- | < | + | < |
[rebermi@vnixeh ~]$ cat / | [rebermi@vnixeh ~]$ cat / | ||
<?xml version=" | <?xml version=" | ||
Line 118: | Line 118: | ||
<wrap em> | <wrap em> | ||
- | < | + | < |
[root@vtsttc ~]# cat / | [root@vtsttc ~]# cat / | ||
<?xml version=" | <?xml version=" | ||
Line 137: | Line 137: | ||
</ | </ | ||
+ | ---- | ||
<WRAP center box 100%> | <WRAP center box 100%> | ||
Line 143: | Line 144: | ||
Die Firewalld Zone public beinhaltet default dhcp und ssh. Diese Services dürfen default nicht zugelassen werden in einem Umfeld, wo feste IP Adressierung eingerichtet ist, deshalb muss unter / | Die Firewalld Zone public beinhaltet default dhcp und ssh. Diese Services dürfen default nicht zugelassen werden in einem Umfeld, wo feste IP Adressierung eingerichtet ist, deshalb muss unter / | ||
- | < | + | < |
[root@vtsttc ~]# cat / | [root@vtsttc ~]# cat / | ||
<?xml version=" | <?xml version=" | ||
Line 155: | Line 156: | ||
</ | </ | ||
+ | ---- | ||
<WRAP center box 100%> | <WRAP center box 100%> | ||
Line 161: | Line 163: | ||
Der Firewalld ist ein systemd Service | Der Firewalld ist ein systemd Service | ||
- | < | + | < |
[root@vtsttc ~]# systemctl status firewalld.service | [root@vtsttc ~]# systemctl status firewalld.service | ||
● firewalld.service - firewalld - dynamic firewall daemon | ● firewalld.service - firewalld - dynamic firewall daemon | ||
Line 173: | Line 175: | ||
</ | </ | ||
+ | ---- | ||
+ | <WRAP center box 100%> | ||
==== Konfiguration im NIC Script ==== | ==== Konfiguration im NIC Script ==== | ||
- | Die konfigurierte Firewalld Zone (ZONE=internal) muss im Netzwerk Interface Script eingetragen sein, damit die Regeln korrekt funktionieren. Wird dieser Eintrag gelöscht, ist man vom System ausgesperrt. | + | Die konfigurierte Firewalld Zone (ZONE=internal) |
- | < | + | < |
[root@vtsttc ~]# cat / | [root@vtsttc ~]# cat / | ||
# Generated by parse-kickstart | # Generated by parse-kickstart | ||
Line 187: | Line 191: | ||
BOOTPROTO=" | BOOTPROTO=" | ||
DEVICE=" | DEVICE=" | ||
+ | ZONE=internal | ||
ONBOOT=" | ONBOOT=" | ||
IPV6INIT=" | IPV6INIT=" | ||
NM_CONTROLLED=no | NM_CONTROLLED=no | ||
- | ZONE=internal | ||
[root@vtsttc ~]# | [root@vtsttc ~]# | ||
</ | </ | ||
+ | </ | ||
+ | ---- | ||
<WRAP center box 100%> | <WRAP center box 100%> | ||
Line 200: | Line 206: | ||
Für alle interaktiven Konfigurationen ist das Kommando frewall-cmd vorhanden, siehe auch # man firewall-cmd | Für alle interaktiven Konfigurationen ist das Kommando frewall-cmd vorhanden, siehe auch # man firewall-cmd | ||
- | < | + | < |
[root@vtsttc ~]# firewall-cmd --zone=internal --list-all | [root@vtsttc ~]# firewall-cmd --zone=internal --list-all | ||
internal (active) | internal (active) | ||
Line 225: | Line 231: | ||
+ | <WRAP center box 100%> | ||
==== Source Destination Rules (Rich-Rules) ==== | ==== Source Destination Rules (Rich-Rules) ==== | ||
Müssen komplexe Rules definiert werden, wo eine Source IP auf einen bestimmten IP Port erlaubt werden soll, braucht es Rich Rules | Müssen komplexe Rules definiert werden, wo eine Source IP auf einen bestimmten IP Port erlaubt werden soll, braucht es Rich Rules | ||
- | **Regel Interaktiv setzen** | + | <wrap em>Regel Interaktiv setzen</ |
In diesem Beispiel sollen bestimmte IP Adressen auf einen IP Port erlaubt werden. | In diesem Beispiel sollen bestimmte IP Adressen auf einen IP Port erlaubt werden. | ||
Line 240: | Line 248: | ||
---- | ---- | ||
- | **Regel in der Zone Konfiguration internal.xml** | + | <wrap em>Regel in der Zone Konfiguration internal.xml</ |
Es wäre auch möglich, eine Rich Rule direkt im Zone Konfigurations File zu editieren. Es ist auch möglich Rules für IPv4 und andere Rules für IPv6 zu setzen | Es wäre auch möglich, eine Rich Rule direkt im Zone Konfigurations File zu editieren. Es ist auch möglich Rules für IPv4 und andere Rules für IPv6 zu setzen | ||
- | < | + | < |
[root@vtsttc ~]# cat / | [root@vtsttc ~]# cat / | ||
<?xml version=" | <?xml version=" | ||
Line 272: | Line 281: | ||
[root@vtsttc ~]# | [root@vtsttc ~]# | ||
</ | </ | ||
+ | </ | ||
+ | ---- | ||
+ | <WRAP center box 100%> | ||
==== Port Ranges mit Source Destination Rule ==== | ==== Port Ranges mit Source Destination Rule ==== | ||
- | **Regel interaktiv setzen** | + | <wrap em>Regel interaktiv setzen</ |
< | < | ||
Line 283: | Line 295: | ||
---- | ---- | ||
- | **Regel im Zone File** | + | <wrap em>Regel im Zone File</ |
- | < | + | |
+ | < | ||
[root@vtsttc ~]# cat / | [root@vtsttc ~]# cat / | ||
<?xml version=" | <?xml version=" | ||
Line 301: | Line 314: | ||
[root@vtsttc ~]# | [root@vtsttc ~]# | ||
</ | </ | ||
+ | </ | ||
+ | ---- | ||
+ | |||
+ | <WRAP center box 100%> | ||
==== Konfiguration mit Port Forwarding ==== | ==== Konfiguration mit Port Forwarding ==== | ||
- | **Firewall Rule Interaktiv** | + | <wrap em>Firewall Rule Interaktiv</ |
Hier wird der Port 80 von Aussen auf den internen Port 7039 weiter geleitet. Dasselbe für den externen Port 443, welcher auf Port 7040 umgeleitet wird. | Hier wird der Port 80 von Aussen auf den internen Port 7039 weiter geleitet. Dasselbe für den externen Port 443, welcher auf Port 7040 umgeleitet wird. | ||
Line 314: | Line 332: | ||
---- | ---- | ||
- | **Firewall Rule im Zone File** | + | <wrap em>Firewall Rule im Zone File</ |
Im Zone Konfigurationsfile sind die Einträge forward-port to-port gesetzt. | Im Zone Konfigurationsfile sind die Einträge forward-port to-port gesetzt. | ||
- | < | + | < |
[root@vtsttc ~]# cat / | [root@vtsttc ~]# cat / | ||
<?xml version=" | <?xml version=" | ||
Line 331: | Line 350: | ||
[root@vtsttc ~]# | [root@vtsttc ~]# | ||
</ | </ | ||
+ | </ | ||
+ | ---- | ||
+ | |||
+ | <WRAP center box 100%> | ||
==== Konfiguration Rich Rule Source Destination mit Port Forwarding ==== | ==== Konfiguration Rich Rule Source Destination mit Port Forwarding ==== | ||
- | **Firewall Rule Interaktiv** | + | <wrap em>Firewall Rule Interaktiv</ |
In diesem Beispiel werden nur Verbindungen von IP 172.17.146.11 auf Port 443 zugelassen und auf Port 7040 weiter geleitet, Dasselbe für Verbindungen auf 80, welche auf Port 7039 umgeleitet werden. | In diesem Beispiel werden nur Verbindungen von IP 172.17.146.11 auf Port 443 zugelassen und auf Port 7040 weiter geleitet, Dasselbe für Verbindungen auf 80, welche auf Port 7039 umgeleitet werden. | ||
Line 344: | Line 368: | ||
---- | ---- | ||
- | **Firewall Rule im Zone File** | + | <wrap em>Firewall Rule im Zone File</ |
Im Zone Konfiguration File sind die Rules pro Port-Forward eingetragen. Es können hier wiederum verschiedene Rules für IPv4 und auch für IPv6 eingetragen sein. Als Source Address braucht es dann eine IPv6 Adresse und rule family = " | Im Zone Konfiguration File sind die Rules pro Port-Forward eingetragen. Es können hier wiederum verschiedene Rules für IPv4 und auch für IPv6 eingetragen sein. Als Source Address braucht es dann eine IPv6 Adresse und rule family = " | ||
- | < | + | < |
[root@vtsttc ~]# cat / | [root@vtsttc ~]# cat / | ||
<?xml version=" | <?xml version=" | ||
Line 366: | Line 391: | ||
</ | </ | ||
[root@vtsttc ~]# | [root@vtsttc ~]# | ||
- | </code> | + | </sxh> |
+ | </WRAP> | ||
+ | ---- | ||
+ | <WRAP center box 100%> | ||
==== Möglichkeit Outgoing Ports zu sperren ==== | ==== Möglichkeit Outgoing Ports zu sperren ==== | ||
Line 374: | Line 402: | ||
Auf diese Weise könnte eine UDP Kommunikation gesperrt werden. | Auf diese Weise könnte eine UDP Kommunikation gesperrt werden. | ||
- | **Konfiguration interaktiv** | + | <wrap em>Konfiguration interaktiv</ |
Hier wird nicht mit der Firewall Zone gearbeitet, sondern mit der Konfiguration direct | Hier wird nicht mit der Firewall Zone gearbeitet, sondern mit der Konfiguration direct | ||
Line 382: | Line 411: | ||
Die Drop Targets werden nun mit ''# | Die Drop Targets werden nun mit ''# | ||
- | < | + | < |
[root@vtsttc ~]# iptables -L OUTPUT_direct -n -v | [root@vtsttc ~]# iptables -L OUTPUT_direct -n -v | ||
Chain OUTPUT_direct (1 references) | Chain OUTPUT_direct (1 references) | ||
Line 393: | Line 422: | ||
---- | ---- | ||
- | **Konfiguration / | + | <wrap em>Konfiguration / |
Der Eintrag in der " | Der Eintrag in der " | ||
- | < | + | < |
[root@vtsttc ~]# cat / | [root@vtsttc ~]# cat / | ||
<?xml version=" | <?xml version=" | ||
Line 405: | Line 435: | ||
[root@vtsttc ~]# | [root@vtsttc ~]# | ||
</ | </ | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | <WRAP center box 100%> | ||
==== Möglichkeit interaktiv konfigurierte Ports zu sperren ==== | ==== Möglichkeit interaktiv konfigurierte Ports zu sperren ==== | ||
Line 412: | Line 447: | ||
Man kann nun interaktiv, definierte Ports aus dem Zone Konfigurationsfile entfernen mit dem Kommando firewall-cmd --zone=internal --remove-port=' | Man kann nun interaktiv, definierte Ports aus dem Zone Konfigurationsfile entfernen mit dem Kommando firewall-cmd --zone=internal --remove-port=' | ||
- | < | + | < |
[root@vtsttc firewalld]# grep port zones/ | [root@vtsttc firewalld]# grep port zones/ | ||
<port protocol=" | <port protocol=" | ||
Line 425: | Line 460: | ||
[root@vtsttc firewalld]# | [root@vtsttc firewalld]# | ||
</ | </ | ||
+ | </ | ||
+ | ---- | ||
+ | |||
+ | <WRAP center box 100%> | ||
==== Besonderheit Service FTP ==== | ==== Besonderheit Service FTP ==== | ||
Ein FTP Transfer kann im PASV Mode abgehandelt werden. Das ist dann von Vorteil, wenn auf der Server Seite kein Verbindungsaufbau zum Client möglich ist, z.B. hinter einer Firewall. Der Passive (PASV) FTP Mode vom Client erlaubt es, nach dem ersten Verbindungsaufbau zum Server einen Port > 1023 zur Datenübertragung auszuhandeln. Dann erfolgt der Transfer auf diesem ausgehandelten Port. Für die FTP-Übertragung im PASV-Modus müssen bestimmte Datentransport Ports geöffnet werden. Daher muss ein FTP Conntrack Servicemodul geladen werden. Der standardmässige Red Hat Firewall Service ftp.xml enthält bereits das Contrack-Modul. Wenn FTP über einen anderen Port als 21 erfolgen soll, muss ein OEM-Firewalld-Dienst unter / | Ein FTP Transfer kann im PASV Mode abgehandelt werden. Das ist dann von Vorteil, wenn auf der Server Seite kein Verbindungsaufbau zum Client möglich ist, z.B. hinter einer Firewall. Der Passive (PASV) FTP Mode vom Client erlaubt es, nach dem ersten Verbindungsaufbau zum Server einen Port > 1023 zur Datenübertragung auszuhandeln. Dann erfolgt der Transfer auf diesem ausgehandelten Port. Für die FTP-Übertragung im PASV-Modus müssen bestimmte Datentransport Ports geöffnet werden. Daher muss ein FTP Conntrack Servicemodul geladen werden. Der standardmässige Red Hat Firewall Service ftp.xml enthält bereits das Contrack-Modul. Wenn FTP über einen anderen Port als 21 erfolgen soll, muss ein OEM-Firewalld-Dienst unter / | ||
- | < | + | < |
[root@vtsttc ~]# cat / | [root@vtsttc ~]# cat / | ||
<?xml version=" | <?xml version=" | ||
Line 444: | Line 483: | ||
[root@vtsttc ~]# | [root@vtsttc ~]# | ||
</ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Troubleshooting ===== | ||
+ | |||
+ | Wird mit RedHat Firewall gearbeitet, so steht man oft vor dem Problem, dass eine Kommunikation nicht funktioniert. Folgende Schritte könnten hilfreich sein bei der Problemlösung: | ||
+ | |||
+ | Firewalld abschalten: Funktioniert die Verbindung danach? Wenn JA: Ruleset überprüfen. | ||
+ | |||
+ | |||
+ | <WRAP center box 100%> | ||
+ | ==== Port Verbindung überprüfen (nicht telnet, sondern netcat) ==== | ||
+ | |||
+ | Netcat ist default unter RedHat installiert. Netcat kann viel mehr und hat auch eine Telnet Abfrage für Ports integriert. Weiter verfügt Netcat über eine sehr gute man page! | ||
+ | |||
+ | Zum Port debuggung deshalb mit netcat (nc) anstelle telnet arbeiten: [[https:// | ||
+ | |||
+ | ---- | ||
+ | |||
+ | <wrap em> | ||
+ | |||
+ | Beispiele: TCP Port 10250 Verbindung überprüfen -i 1 bedeutet, dass bei einem Connect nach 1s idle Time die Verbindung geschlossen werden soll. Damit ist es möglich, in einem Loop viele Ports, oder viele Server abzufragen. (-t Telnet Abfrage) (-v Verbose) | ||
+ | |||
+ | <sxh plain; gutter: false;> | ||
+ | [rebermi@vostm1 ~]$ nc -vt vostn1.pnet.ch 10250 -i 1 | ||
+ | Ncat: Version 7.50 ( https:// | ||
+ | Ncat: Connection refused. | ||
+ | [rebermi@vostm1 ~]$ | ||
+ | |||
+ | [rebermi@vosme1 ~]$ nc -vt vosne1.pnet.ch 10250 -i 1 | ||
+ | Ncat: Version 7.50 ( https:// | ||
+ | Ncat: Connected to 172.18.184.14: | ||
+ | Ncat: Idle timeout expired (1000 ms). | ||
+ | [rebermi@vosme1 ~]$ | ||
+ | </ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | <wrap em> | ||
+ | |||
+ | Beispiel UDP Port Verbindung überprüfen (-u UDP Abfrage) | ||
+ | |||
+ | <sxh plain; gutter: false;> | ||
+ | [rebermi@vostm1 ~]$ nc -vu vostn1.pnet.ch 4789 -i 1 | ||
+ | Ncat: Version 7.50 ( https:// | ||
+ | Ncat: Connected to 172.18.184.19: | ||
+ | Ncat: Idle timeout expired (1000 ms). | ||
+ | [rebermi@vostm1 ~]$ | ||
+ | </ | ||
+ | </ | ||