Firewall-Integrationen

Q-Feeds mit MikroTik RouterOS verbinden

Zwei Open-Source-Skripte halten eine RouterOS-Address-List mit bösartigen IP-Adressen gefüllt. Eines macht den vollen Import, das andere holt nur die Änderungen, und der Scheduler führt beide aus, damit Ihre Filterregeln immer mit aktueller Intelligence arbeiten.

Die Skripte sind Open Source und liegen auf GitHub: Q-Feeds/Q-Feeds-Integration-for-Mikrotik-RouterOS. Holen Sie sie immer von dort, dann haben Sie sicher die aktuelle Version. Sie benötigen Adminrechte auf dem Router, ausgehendes HTTPS zu api.qfeeds.com und ein Q-Feeds API-Token. Siehe Ihre Threat Feeds abrufen.

Voraussetzungen

  • RouterOS: 7.15 oder neuer, getestet mit 7.15, 7.17 und 7.20
  • Rechte: ein Konto mit vollen Adminrechten
  • Feed: Malware-IP-Liste (feed_type=malware_ip)
  • Netzwerk: ausgehendes HTTPS vom Router zu api.qfeeds.com
  • Address-List: Malware-List, wird von den Skripten angelegt, falls noch nicht vorhanden

Skripte holen

Im Repository liegen zwei Dateien:

  • Malware Import FULL.rsc lädt die komplette Liste.
  • Malware Import DIFF.rsc übernimmt nur die Änderungen seit Ihrem letzten Abruf.

Öffnen Sie beide auf GitHub und kopieren Sie den Inhalt, oder laden Sie das Repository als ZIP. Auf dem Router selbst wird nichts installiert, Sie fügen den Skripttext in RouterOS ein.

Token eintragen

Beide Skripte beginnen mit einem kurzen Variablenblock. Ersetzen Sie das Platzhalter-Token durch Ihr eigenes:

:local apitoken "YOUR_API_TOKEN_HERE";

Die nächste Variable entscheidet, wo die Einträge landen:

:local useDynamic "yes";
  • "yes" hält die Einträge im RAM. Sie verschwinden beim Neustart und der Scheduler stellt sie beim nächsten Lauf wieder her. Das ist die Vorgabe und bei häufigen Updates die richtige Wahl, weil nie in den Flash-Speicher des Routers geschrieben wird.
  • "no" schreibt die Einträge auf die Platte. Sie überstehen einen Neustart, aber bei einer Liste dieser Größe und einem Update alle zwanzig Minuten nutzen Sie den Flash ab und blähen die Konfigurationsdatei auf.

Skripte in RouterOS anlegen

Gehen Sie in Winbox oder WebFig zu System, Scripts und legen Sie zwei Skripte an. Die Namen sind wichtig, denn der volle Import sucht den differenziellen Scheduler über den Namen:

  • Malware Update - Full mit dem Inhalt von Malware Import FULL.rsc
  • Malware Update - Diff mit dem Inhalt von Malware Import DIFF.rsc

Geben Sie beiden Skripten die Policies read, write, policy und test, sonst können sie Address-List und Scheduler nicht verwalten.

Scheduler anlegen

/system scheduler add name="Malware Update - Full" \
    start-time=startup interval=1d \
    on-event="Malware Update - Full"

/system scheduler add name="Malware Update - Diff" \
    start-time=startup interval=20m \
    on-event="Malware Update - Diff"

Den vollen Import täglich oder wöchentlich laufen lassen. Das Intervall des differenziellen Updates richtet sich nach Ihrer Lizenz: 1d bei Community, 4h bei Plus und 20m bei Premium. Häufiger abzurufen, als die Lizenz erlaubt, bringt nichts Neues.

Führen Sie den vollen Import einmal von Hand aus, bevor Sie sich auf das differenzielle Update verlassen. Die API liefert die Änderungen seit Ihrem letzten Abruf, ohne ersten vollen Lauf gibt es also keine Basis und die Diff bleibt leer.

/system script run "Malware Update - Full"

Verkehr blockieren

Die Skripte füllen nur die Liste. Die Filterregeln legen Sie selbst an, zum Beispiel:

/ip firewall filter
add chain=forward src-address-list="Malware-List" action=drop \
    comment="Q-Feeds: drop traffic from malicious hosts"
add chain=forward dst-address-list="Malware-List" action=drop \
    comment="Q-Feeds: drop traffic to malicious hosts"

Setzen Sie die Regeln weit genug oben in die Chain, damit sie vor einer allgemeinen Accept-Regel greifen, und ergänzen Sie Regeln in der input-Chain, wenn Sie auch den Router selbst schützen wollen.

So funktioniert es

  • Voller Import: das Skript deaktiviert den differenziellen Scheduler, benennt die vorhandenen Einträge in Malware-List - Old um, holt den Feed Seite für Seite in Blöcken von 4.000 Adressen und stoppt, sobald eine Seite leer zurückkommt.
  • Rollback: die alten Einträge werden erst entfernt, wenn der Import tatsächlich Einträge geliefert hat. Schlägt der Download fehl, wird die vorherige Liste zurückbenannt und der Router behält seinen Schutz.
  • Differenzielles Update: Zeilen mit vorangestelltem + kommen in die Address-List, Zeilen mit - fliegen heraus. Jeder API-Schlüssel hat seine eigene Historie, Sie bekommen also genau die Änderungen seit Ihrem eigenen letzten Abruf, im Rhythmus Ihrer Lizenz.
  • Koordination: der volle Import schaltet den differenziellen Scheduler während des Laufs ab und danach wieder an, damit sich beide nie in die Quere kommen.
  • Adressformate: IPv4, IPv6 und CIDR-Notation wie 192.0.2.0/24. RouterOS prüft jede Adresse und überspringt stillschweigend, was es nicht lesen kann.
  • Logging: beide Skripte schalten die erste Logging-Aktion während des Laufs ab, damit nicht tausende Einzelzeilen im Log landen, und danach wieder ein.

Überprüfen

/ip firewall address-list print count-only where list="Malware-List"
/ip firewall address-list print where list="Malware-List"
/log print where message~"Malware"
/system scheduler print

Nach einem erfolgreichen vollen Import liegt der Zähler je nach Lizenz im Hunderttausenderbereich, und das Log zeigt eine Zeile pro verarbeiteter Seite plus eine Abschlussmeldung.

Fehlerbehebung

  • Die Liste bleibt leer: prüfen Sie das Token in beiden Skripten, ob der Router https://api.qfeeds.com erreicht, und starten Sie den vollen Import von Hand im Terminal.
  • Das differenzielle Update ändert nie etwas: führen Sie zuerst den vollen Import aus. Verwenden Sie in beiden Skripten dasselbe API-Token, denn die Abrufhistorie hängt am Schlüssel.
  • Die Liste ist nach einem Neustart weg: das gehört zu useDynamic "yes". Der Scheduler füllt sie beim nächsten Lauf wieder. Setzen Sie die Variable nur auf "no", wenn Sie die Persistenz wirklich brauchen.
  • Rollback im Log: der Import ist fehlgeschlagen und die vorherige Liste wurde wiederhergestellt. Prüfen Sie Verbindung und Gültigkeit des Tokens und ob der Router genug freien Speicher hat.
  • Es läuft nichts: sehen Sie mit /system scheduler print nach, ob ein Scheduler deaktiviert ist, und prüfen Sie, ob die Skriptnamen exakt zu den Scheduler-Namen passen.
  • Support: support@qfeeds.com oder die Support-Seite. Fehler in den Skripten gefunden? Öffnen Sie ein Issue im GitHub-Repository.

Die Q-Feeds-Feeds mit bösartigen URLs werden auf RouterOS nicht unterstützt. Eine Address List greift auf IP-Adressen, und einen vollständigen URL-Pfad kann nur ein Proxy oder ein Web-Filter prüfen. Bleiben Sie hier beim Malware-IP-Feed.

Skripte auf GitHub ansehen Über die MikroTik-Integration

Bewerten Sie unsere Intelligence noch heute!

Vereinfachen Sie Ihren Sicherheitsbetrieb, starten Sie Ihre kostenlose Q-Feeds Testphase und erleben Sie den Unterschied.

Kostenlosen Zugang aktivieren