Firehol Blocklist inside OpnSense Auto-Rules
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
- Name: FireHole
- Tye: URL Table (IPs)
- Refresh Frequency: Days 1, Hours 0
- Content: https://iplists.firehol.org/files/firehol_level2.netset
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.