[Debian 9 - iptables] Firewall richtig konfigurieren - Wie?

Rubyurek

Commander
Registriert
Sep. 2017
Beiträge
2.564
Guten Tag an die Linux-Community,
ich habe eine Aufgabe bekommen um mich mit iptables (firewall in linux) vertraut zu machen. Es sind 4 NID vorhanden:

10.10.1.0 mit Router/Server/WorkStation
10.10.2.0 mit Router/Server/WorkStation
10.10.3.0 mit Router/Server/WorkStation
10.10.4.0 mit Router/Server/WorkStation

Die Aufgabe besteht darin, dass mein Netz mit der NID (10.10.3.0 in das 10.10.4.0 Netz pingen kann, jedoch von denen oder vom 10.10.1/2.0 NID nichts reinkommt somit soll deren ping gedropt werden).

Die Auflistung die ich erstellt habe ist folgendes:

Code:
iptables -F
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP


iptables -A FORWARD -s 10.10.3.0/24 -d 10.10.4.0/24 -j ACCEPT
iptables -A FORWARD -s 10.10.4.0/24 -d 10.10.3.0/24 -j ACCEPT

Problem hierbei ist, dass wenn ich dies ausführe, dass mir angezeigt wird, dass die Operation nicht erlaubt sei. Ich wüsste momentan nicht wie ich anders vorgehen könnte. Vielleicht habt ihr eine Idee wie ich das richtig aufschreiben könnte.

Danke im Voraus
Sekorhex
 
mal ganz plump erstmal ... bist du mit ausreichend Rechten eingeloggt?
An den iptables kannst du soweit ich das im Kopf habe nur als root Änderungen vornehmen.
 
Ich mach das gerne über Webmin. Ist da einfach hübscher gelöst und man muss sich nicht durch den Komandodschungel hangeln.
 
Hörbört schrieb:
mal ganz plump erstmal ... bist du mit ausreichend Rechten eingeloggt?
An den iptables kannst du soweit ich das im Kopf habe nur als root Änderungen vornehmen.

Ja bin ich :)

Bisumaruku schrieb:
Ich mach das gerne über Webmin. Ist da einfach hübscher gelöst und man muss sich nicht durch den Komandodschungel hangeln.

Problem wir sollen das über den terminal machen
 
Was ist denn genau die Meldung die du bekommst? Am besten einfach mal direkt copy pasten.
 
Sekorhex schrieb:
ich habe eine Aufgabe bekommen um mich mit iptables (firewall in linux) vertraut zu machen.
Ist das eine Aufgabe im Rahmen einer Schule, Ausbildung, Studium? Wenn ja, solltest du die relevanten Themen bereits kennen und dich ggfs in das Lehrmaterial einlesen. Notfalls einfach versuchen wie du das hinbekommst und dann deine Lösung präsentieren, auch wenn sie die Aufgabenstellung vielleicht nicht 100% abdeckt - auch Scheitern gehört zum Lernen.

Daher möchte ich dir zunächst nur ein rudimentäres Beispiel für eine Firewall geben, wie es in so ziemlich jedem Router auf dieser Erde am WAN-Port eingesetzt wird. Das Beispiel passt bewusst nicht 1:1 auf dein Szenario, sondern soll nur ein Denkanstoß sein.

Eine übliche WAN-Firewall-Konfiguration sieht so aus:

1 Allow established/related
2 Drop invalid
(3 Allow IP a.b.c.d )
(4 Allow Protocol X)
(5 Allow Port Y)
Default: Drop

Alles was nicht auf 1/3/4/5 matched, wird per default gedroppt. Regel 1 ist ein Shortcut, der alle bereits hergestellten Verbindungen durchwinkt. Regel 2 ist ebenfalls eine Art Shortcut für ungültige Pakete, die dann geblockt werden, ohne sie sinnlos mit allen folgenden Regeln zu matchen.
 
Raijin schrieb:
Ist das eine Aufgabe im Rahmen einer Schule, Ausbildung, Studium? Wenn ja, solltest du die relevanten Themen bereits kennen und dich ggfs in das Lehrmaterial einlesen.

Ist in Rahmen einer Umschulung und wir haben dazu kein Lernmaterial bekommen. Der Dozent selbst hat nur bisschen was über Firewall geredet unter linux aber wie man das genau aufschreibt und wie das richtig funktioniert und was hinter diesen Codes steht hat er nicht erläutert. Auch andere die die Umschulung machen sind ratlos und wir probieren immer wieder dinge, jedoch kommen wir nicht zu dem ergebnis was eigentlich sein soll.
 
Ok, das ist ehrlich gesagt riesengroßer Mist vom Dozenten - ihr sollt ja bei der Umschulung etwas lernen und nicht durch Selbststudium in einem öffentlichen Forum - aber es wundert mich auch nicht wirklich...

Um dir wirklich weiterzuhelfen, wäre es zunächst erstmal wichtig zu wissen was du genau eingetippt hast und was genau für eine Fehlermeldung kam. Dein Code in #1 beinhaltet zB kein sudo und es ist fraglich ob du in dem Moment direkt als root eingeloggt warst oder ob der zitierte Code evtl. Teil eines Skripts ist, das seinerseits mit/ohne sudo bzw. als root ausgeführt wurde, etc...

Kleiner Tip: Wenn du iptables -F ausführst und die default policy der INPUT chain auf DROP steht, sperrst du dich SOFORT aus dem System aus, wenn du es nicht lokal bedienst. Die INPUT chain ist dann nämlich leer und jedes eingehende Paket läuft ins Default DROP, auch wenn du gerade via SSH eingeloggt bist. Während du noch an der Firewall rumschraubst, solltest du also eher auf Default ACCEPT stellen und ggfs als letzte Regel eine allgemeine Drop-Regel anfügen. So hast du prinzipiell dieselbe Funktionalität wie bei Default DROP, aber im Falle eines unvorsichtigen Flushs sperrst du dich nicht ungewollt aus.

Ansonsten sehen deine Regeln prinzipiell ok aus. Am Ende könnte das dann so sein (wie gehabt, nur als Denkvorlage):

FORWARD
1 ACCEPT src=10.10.3.0/24 & dst=10.10.4.0/24
2 ACCEPT src=10.10.4.0/24 & dst=10.10.3.0/24
3 DROP *
Default ACCEPT


Nun sollte der Router alles weiterleiten was als Quelle und als Ziel eines der angegebenen Subnetze hat. Weitergeleitete Pakete aus den bzw. in die beiden anderen Subnetze werden von der dritten Regel gedroppt (wie ein Default Drop). Für den Fall eines versehentlichen Flush, steht die Default Policy auf ACCEPT.
 
Also direkt wenn ich das Terminal starte gebe ich auch direkt su und dann das Passwort ein, somit habe ich weniger probleme wenn ich was ändern will.
 
Okay, dann bist du also schonmal root. Hier wurde jetzt allerdings schon 2 mal nach der genauen Fehlermeldung gefragt
Ebrithil schrieb:
Was ist denn genau die Meldung die du bekommst? Am besten einfach mal direkt copy pasten.
Raijin schrieb:
Um dir wirklich weiterzuhelfen, wäre es zunächst erstmal wichtig zu wissen was du genau eingetippt hast und was genau für eine Fehlermeldung kam.

Die wäre wirklich hilfreich, ansonsten stochern wir hier alle im Dunkeln rum.

Sekorhex schrieb:
Problem hierbei ist, dass wenn ich dies ausführe, dass mir angezeigt wird, dass die Operation nicht erlaubt sei.
Auch gut zu wissen wäre, bei welchem Befehl die Fehlermeldung kommt, direkt bei dem ersten oder z.B. erst bei dem 4.?

/rant
Warum muss man den Leuten die Infos immer so aus der Nase ziehen :grr:
 
Genaueres kann ich erst am Montag sagen. Ich halte euch auf den laufenden mit Fotos dann.
 
Ich würde es mal mit
Code:
su -
statt su versuchen.
Möglicherweise auch ein Problem mit den alternatives, mit folgendem Befehl kann die Konfiguration gewechselt werden. Keine Sorge, man kann jederzeit auch wieder zurückwechseln.
Code:
sudo update-alternatives --config iptables
 
Zuletzt bearbeitet:
Zurück
Oben