Ubuntu: Wie man eine iptables-Regel hinzufügt, die UFW nicht erstellen kann

15

UFW funktioniert wirklich gut für mich, außer in den Fällen, in denen es nicht ...

Ich möchte in der Lage sein, eine andere Regel manuell hinzuzufügen, die beim Booten angewendet wird.

  • Wo soll ich diese Regel setzen?
  • Wie soll ich es beim Booten starten lassen?
  • Wie mache ich es schön mit UFW zu spielen?
Arthur Ulfeldt
quelle
1
ufw ist eines der Dinge, die es Neulingen leichter machen, "was Sie sehen, ist alles, was Sie bekommen". Wenn Sie mehr tun müssen, als Sie können, ziehen Sie in Betracht, vollständig auf iptables zu wechseln. Das "Arbeiten wirklich gut für mich" ist ein guter Beweis dafür, dass Sie etwas (Iptables) komplizierter (aber auch flexibler) ausprobieren können.
halp

Antworten:

14

Laut dieser Ubuntu-Wiki-Seite (scrollen Sie nach unten zu "Advanced Functionality") können Sie erreichen, was Sie wollen, indem Sie Ihre eigenen iptablesRegeln in die folgenden Dateien einfügen:

  • /etc/ufw/before.rules
  • /etc/ufw/after.rules

Die beforeDatei wird ausgewertet, bevor ufwRegeln angewendet werden. Die afterDatei wird nach ausgewertet. (Es gibt auch entsprechende before6und after6Regeldateien für Ihre ip6tablesRegeln.)

Es wird erwartet, dass diese iptables-restoreRegeldateien eine inkompatible Syntax aufweisen, vermutlich, weil sie ufweinfach mit geladen werden iptables-restore. Beachten Sie schließlich, dass Sie stoppen und neu starten müssen, ufwnachdem Sie Änderungen an den Regeldateien vorgenommen haben.

Steven Montag
quelle
3
Beachten Sie, dass Sie (möglicherweise unbeabsichtigt) die Priorität von iptables-Regeln ändern können, wenn Sie vergessen, die Verwendung von -I oder -A bei der Verwendung dieser Dateien zu standardisieren. -I (Einfügen) fügt Regeln am Anfang der Kette hinzu, die zuerst ausgewertet werden, während -A (Anhängen) sie am Ende der Kette hinzufügt. Dies kann zu unerwarteten Ergebnissen führen, wenn Sie beispielsweise -I in der .after-Datei verwenden. Nur ein Gedanke.
Sam Halicke
0

UFW löscht alle MANUELL hinzugefügten Regeln, /etc/ufw/user.rulesdenen KEIN Kommentar vorangestellt ist:

### tuple ### allow tcp 80 0.0.0.0/0 any 0.0.0.0/0 out
-A ufw-user-output -p tcp --dport 80 -j ACCEPT

Wenn UFW Sanity die Regeln beim Start überprüft, wird ein begleitender Kommentar erwartet. Wenn sie NICHT vorhanden ist, wird sie von UFW auch dann gelöscht , wenn die Syntax der Regel korrekt ist.

Und verwenden Sie nicht nur einen beliebigen Kommentar: Es MUSS der Kommentar sein, den UFW beim Erstellen einer Benutzerregel über die CLI einfügen würde, dh:

sudo ufw allow http/tcp

Wenn Sie also eine Reihe von Regeln in einem Regelsatz in einer einfachen Datei vorab festlegen möchten, müssen Sie die Regeln weiterhin über die CLI-Schnittstelle von UFW erstellen, um die Syntax der Kommentare zu lernen, die erwartet werden, damit die Regel die Validierung besteht und bestehen bleibt .

Versuchen Sie das oben Gesagte mit und OHNE Kommentar und laden Sie die oben angegebene Muster-HTTP-Regel erneut. Sie werden nur mit dem Kommentar bemerken, dass die manuell hinzugefügte Regel einen Neustart ( ufw enable ) von UFW überlebt .

Dies ist wirklich kontraintuitives Verhalten und überhaupt nicht dokumentiert.

F1Linux
quelle