Marco Burmeister
private Homepage
In diesem Dokument soll es darum gehen, wie zwei Netze mittels eines Linux Systems (openSUSE 15.6) miteinander verbunden werden können.
Dabei soll das interne Netz auch von äußerem Netz geschützt werden.
Hinweis:
Mit dem Update des OS auf openSUSE 15.6 und der damit verbundenen Nutzung von firewalld
in Version 2.0.1 hat sich
etwas im Bereich IP Forwarding verändert, weshalb ich diese Anleitung geschrieben habe.
Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Wir haben zwei unterschiedliche Netzwerke.
Im Netzwerk A sind unsere internen Rechner untergebracht, die vom Netzwerk B geschützt werden sollen.
Gleichzeitig sollen die Rechner aus dem Netzwerk A aber auch Ressourcen im Netzwerk B bzw. dem Internet erreichen.
Ich gehe in dieser Dokumentation von folgenden Voraussetzungen aus:
Netzwerk A hat die IP-Range 192.168.0.0 bis 192.168.0.255.
Netzwerk B wird durch eine Fritzbox gestellt und hat die Range 192.168.178.0 bis 192.168.178.255. Hierüber ist auch das Internet erreichbar.
Der Rechner hat eine Netzwerkkarte, die für das Netzwerk A und eine, die für das Netzwerk B konfiguriert ist.
Die Netzerkkarte eth0
ist für das Netzwerk A konfiguriert.
Die Netzerkkarte eth1
ist für das Netzwerk B konfiguriert.
Damit das Forwarding von Netzwerk-Paketen funktioniert habe ich in der sysctl.conf
einen entsprechenden Eintrag für IPv4 angelegt.
Als User root
in der sysctl.conf
eintragen:
net.ipv4.ip_forward=1
Danach muss dann noch der folgende Befehl ausgeführt werden:
sysctl -p
Wer via yast
arbeitet sollte sicherstellen, dass folgendes konfiguriert ist:
Enable IPv4 Forwarding
" ist aktivierteth0
ist der Firewall-Zone internal
zugeordneteth1
ist der Firewall-Zone external
zugeordnet
Für die eigentliche Funktion als Router ist nur die Konfiguration des FirewallD notwendig.
Im OS selbst ist erstmal nichts zu konfigurieren.
Die Einstellungen, die im firewalld
konfiguriert werden, sorgen dann für die Weiterleitung der Datenpakete und den Schutz des Rechners
sowie des Netzes selbst.
Ich verwende firewalld. Diese Firewall lässt sich auch gut via Yast oder besser firewall-config
verwalten.
Das Tool firewall-config
wird aus der Kommandozeile gestartet und benötigt einen XServer zur Darstellung.
Die Netzwerkkarten sind wie folg zugeordnet worden:
eth0
ist der Firewall-Zone internal
zugeordnet.
eth1
ist der Firewall-Zone external
zugeordnet.
In der Zone internal
können alle Dienste freigegeben werden, die vom sicheren Netz auf diesem Rechner erreicht werden sollen.
Vielleicht dient dieser Rechner ja auch noch als DNS-Server.
In der Zone external
müssen keine Dienste freigegeben werden.
Ich brauche dann noch eine Weiterleitung der Datenpakete von eth0 zu eth1 und zurück.
Folgende Befehle sind User root
im Firewall-GUI Tool oder mit Kommandozeilenbefehl die Runtime-Konfiguration fest runtergeschrieben werden.
firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 10 -o eth1 -j MASQUERADE
firewall-cmd --direct --add-rule ipv4 filter FORWARD 10 -i eth0 -o eth1 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter FORWARD 10 -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
firewall-cmd --direct --add-rule ipv4 ✂
nat POSTROUTING 10 -o eth1 -j MASQUERADE
firewall-cmd --direct --add-rule ipv4 ✂
filter FORWARD 10 -i wlan1 -o eth0 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 ✂
filter FORWARD 10 -i wlan1 -o eth0 -m state ✂
--state RELATED,ESTABLISHED -j ACCEPT
eth0
zur Firewalld-Zone internal
gehört
und das Device eth1
zur Firewalld-Zone external
.
firewall-cmd --list-all-policies
firewall-cmd --direct --get-all-rules
firewall-cmd --list-all-zones
firewall-cmd --list-all --zone=internal
firewall-cmd --list-all --zone=external
MBU-fwd-internal
ist der Name der Policy der frei gewählt werden kann - max. 18 Zeichen)
firewall-cmd --permanent --delete-policy=MBU-fwd-internal
firewall-cmd --permanent --new-policy=MBU-fwd-internal
firewall-cmd --permanent --policy=MBU-fwd-internal --add-ingress-zone=internal
firewall-cmd --permanent --policy=MBU-fwd-internal --add-egress-zone=external
firewall-cmd --permanent --policy=MBU-fwd-internal --set-target=ACCEPT
firewall-cmd --permanent --policy MBU-fwd-internal --add-masquerade
firewall-cmd --permanent --zone=external --add-masquerade
firewall-cmd --permanent ✂
--delete-policy=MBU-fwd-internal
firewall-cmd --permanent ✂
--new-policy=MBU-fwd-internal
firewall-cmd --permanent ✂
--policy=MBU-fwd-internal --add-ingress-zone=internal
firewall-cmd --permanent ✂
--policy=MBU-fwd-internal --add-egress-zone=external
firewall-cmd --permanent ✂
--policy=MBU-fwd-internal --set-target=ACCEPT
firewall-cmd --permanent ✂
--policy MBU-fwd-internal --add-masquerade
firewall-cmd --permanent ✂
--zone=external --add-masquerade
Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!
Marco Burmeister, Copyright © 2024 - 2024
zuletzt geändert: 2024-08-11
URL: https://www.marco-burmeister.de/helferlein/de_linux_opensuse_router_firewalld.html
Impressum