Firehol Blocklist inside OpnSense Auto-Rules

1 minute read

OpnSense & Firehole

Kurze Notiz, da es nicht so einfach zu realisieren ist. Und zwar das Erzeugen einer Outgoing Rule, welche IPs aus der Firehole Blackliste blockiert.
Das Problem an der Sache: “Automatically generated rules” - diese können nämlich nicht über das GUI modifiziert werden. Die Körung, das letzte Rule dieser Standard-Regeln trägt die Bezeichnung “let out anything from firewall host itself” und trägt den Parameter: “Quick”

Kurz: Man kann als User Outgoing-Rules eintragen was man will, es wird einfach nie angewandt.

Lösung: die automatischen Regeln modifizeren.

WebGui

Wir beginnen in der GUI um unserer FireHole Liste anzulegen. Das ist einfach erledigt:

Firewall - Aliases - Add

Notiz: Nicht Level 1, oder Level 3 wählen. Da werden Private und/oder Github IPs geblockt. Das wollen wir nicht..!

Weiter, System - Settings - Cron - Add
30 3 * * *
“Update and reload firewall aliases”

Shell

Nun müsen wir noch die “Automatically generated rules” für unsere FireHole Liste anpassen.
Ich nutze WinSCP, man kann aber jeden anderen SSH CLient nutzen.

/usr/local/etc/inc/filter-lib.inc

Zwischen den Blöcken // block all in alias <virusprot> und // block bogons and private nets fügen wir folgende Regel hinzu:

    $fw->registerFilterRule(
        1,
        array('to' => 'FireHole' , 'descr' => 'FireHole Rule',
        'direction' => 'in'),
        $defaults['block']
    );

Thats it!

Bottom Line

Es macht wenig Sinn die FireHole Liste auf nach innen gehenden Datenverkehr anzuwenden, da wird meist doch eh alles geblockt.
Vielmehr wollen wir ggf. infizierte Clients vor bösartigen Aufrufen schützen.

Achtung, der Name im Codeabschnitt (“Shell”) muss mit dem Alias-Name übereinstimmen.

Prüfung: Firewall - Rules - Floating
neben unserer Regel muss der Hinweis “edit alias” (oranges Symbol) aufscheinen.