Univention-firewall Ports manuell öffnen

Hallo, ich arbeite

Ich müsste unter 3.1-1 für einen third-party daemon einen Port öffnen (NDMP, für Backup Exec Remote Agent) allerdings kommt eine Verbindung im Moment nur dann zustande, wenn ich die Firewall über unteren Befehl komplett deaktiviere - was ja nicht wirklich der Sinn der Sache sein kann :slight_smile:

ucr set security/packetfilter/disabled=yes
service univention-firewall restart

Ich habe in der alten Dokumentation von UCS 2.4 gefunden, dass man über die UCR wie unten einen eigenen Port öffnen kann - so eine Beschreibung habe ich auf
docs.univention.de für 3.1 so leider nicht gefunden - wäre also etwas zum ergänzen?

ucr set security/packetfilter/tcp/accept='10000'
service univention-firewall restart

Über iptables -L sehe ich aber nirgends mehr geöffnete Ports und der Dienst bleibt unerreichbar.
Welchen überlegungsfehler mache ich noch, damit ich das hinbekomme?

Hallo,

ich habe gerade das gleiche vor gehabt und habe schonmal die generelle Freigabe “geschafft” (in dem Fall für mysql):

ucr set  security/packetfilter/tcp/3306/all=ACCEPT

Das funktioniert soweit wunderbar.

Meine Anschlussfrage hierzu lautet gleich, ob es möglich ist, auch eine Einschränkung auf bestimmte hosts vorzunehmen,also /all passend zu ersetzten. Mit mit IP Adresse oder kompletten “host.domain.local” scheint das nicht zu funktionieren.

Gibt es aktuell die Möglichkeit, die Regel einzugrenzen?

Danke Gunnar, ich hatte die Syntax der UCR falsch verstanden, nun klappt es.

ucr set  security/packetfilter/<proto>/[<port>|<port-range>]/all=ACCEPT

Leider gibt es an dieser Stelle keine wirkliche Input-Validierung, es wird eigentlich alles mit ‘ucr set’ angenommen.
Ist aber auch verständlich, dass so eine Input-Validierung nicht trivial ist und “falsche” Eingaben mindestens einfach ignoriert werden und somit auch keinen Schaden anrichten :slight_smile:

Die Einrschränkung auf IP-Adressen, Hostnamen oder Adressranges wäre effektiv etwas was ich ebenfalls noch suche.

Hallo,

[quote=“msi”]
Die Einrschränkung auf IP-Adressen, Hostnamen oder Adressranges wäre effektiv etwas was ich ebenfalls noch suche.[/quote]

wie Sie bereits festgestellt haben, können IP-Tables Regeln der Univention-Firewall grob über die security/packetfilter/* Variablen gesetzt werden.
Die Syntax hierzu lautet:

security/packetfilter/package/PAKETNAME/PROTOKOLL/PORT/IPADDR=ACTION

Hierbei definierte IP-Adressen werden jedoch momentan nur mit -d angegeben, also als Ziel-Adresse. Hierzu existiert Bug #25632, um auch Quell-Adressen angeben zu können.
Für darüberhinaus gehende Regeln kann die Datei /etc/security/packetfilter.d/50_local.sh verwendet werden. Die hier getätigten Regeln werden nach dem per UCR definierten Set ausgeführt.

Beispiel:
Um exemplarisch den SSH-Zugang eines bestimmten Fremdrechners zu sperren und alle anderen Systeme zu erlauben, kann in einem ersten Schritt die UCR-Variable für den SSH-Verkehr beim default belassen werden:

security/packetfilter/package/univention-base-files/tcp/22/all=ACCEPT

Hierdurch wird die folgende Regel erzeugt:

/sbin/iptables -A INPUT -p "tcp"  --dport 22 -j ACCEPT

welche bewirkt, dass jeglicher einkommende Datenverkehr auf Port 22 prinzipiell erlaubt wird.

Um eine Ausnahme zu definieren, muss diese vor dieser Regel im INPUT CHAIN definiert werden. Hierzu wird mittels:

iptables --list INPUT

die Nummer der Zeile verifiziert und eine Ausnahmeregel wird vorher in 50_local.sh injected, z.B.:

/sbin/iptables -I INPUT 5 -p "tcp" -s 10.200.0.10 --dport 22 -j REJECT

Dies fügt innerhalb der INPUT CHAIN eine Ausnahme in Zeile 5 ein.

Mit freundlichen Grüßen,
Tim Petersen

Mastodon