Firewall-integraties

Q-Feeds koppelen aan MikroTik RouterOS

Twee open source scripts houden een RouterOS-address-list gevuld met kwaadaardige IP-adressen. Het ene doet een volledige import, het andere haalt alleen de wijzigingen op, en de scheduler draait ze allebei zodat uw filterregels altijd met actuele intelligence werken.

De scripts zijn open source en staan op GitHub: Q-Feeds/Q-Feeds-Integration-for-Mikrotik-RouterOS. Haal ze daar altijd op, dan heeft u zeker de actuele versie. U heeft adminrechten op de router nodig, uitgaand HTTPS naar api.qfeeds.com en een Q-Feeds API-token. Zie Uw threat feeds ophalen.

Vereisten

  • RouterOS: 7.15 of nieuwer, getest op 7.15, 7.17 en 7.20
  • Rechten: een account met volledige adminrechten
  • Feed: malware-IP-lijst (feed_type=malware_ip)
  • Netwerk: uitgaand HTTPS van de router naar api.qfeeds.com
  • Address-list: Malware-List, wordt door de scripts aangemaakt als die er nog niet is

De scripts ophalen

In de repository staan twee bestanden:

  • Malware Import FULL.rsc laadt de volledige lijst.
  • Malware Import DIFF.rsc verwerkt alleen de wijzigingen sinds uw vorige ophaalactie.

Open ze allebei op GitHub en kopieer de inhoud, of download de repository als ZIP. Op de router zelf hoeft u niets te installeren, u plakt de scripttekst in RouterOS.

Uw token invullen

Beide scripts beginnen met een kort blok variabelen. Vervang het voorbeeldtoken door dat van uzelf:

:local apitoken "YOUR_API_TOKEN_HERE";

De volgende variabele bepaalt waar de vermeldingen terechtkomen:

:local useDynamic "yes";
  • "yes" houdt de vermeldingen in RAM. Ze verdwijnen bij een herstart en de scheduler zet ze bij de volgende run terug. Dit is de standaard en de juiste keuze bij frequente updates, omdat er nooit naar het flashgeheugen van de router wordt geschreven.
  • "no" schrijft de vermeldingen naar schijf. Ze overleven een herstart, maar bij een lijst van deze omvang en een update per twintig minuten slijt u het flashgeheugen en groeit het configuratiebestand.

De scripts in RouterOS zetten

Ga in Winbox of WebFig naar System, Scripts en voeg twee scripts toe. De namen zijn belangrijk, want de volledige import zoekt de differentiële scheduler op naam:

  • Malware Update - Full met de inhoud van Malware Import FULL.rsc
  • Malware Update - Diff met de inhoud van Malware Import DIFF.rsc

Geef beide scripts de policies read, write, policy en test, anders kunnen ze de address-list en de scheduler niet beheren.

De schedulers aanmaken

/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"

Draai de volledige import dagelijks of wekelijks. Zet het interval van de differentiële update op uw licentie: 1d bij Community, 4h bij Plus en 20m bij Premium. Vaker ophalen dan uw licentie toestaat levert niets nieuws op.

Draai de volledige import één keer met de hand voordat u op de differentiële update vertrouwt. De API geeft de wijzigingen sinds uw vorige ophaalactie, dus zonder eerste volledige run is er geen basis en blijft de diff leeg.

/system script run "Malware Update - Full"

Het verkeer blokkeren

De scripts vullen alleen de lijst. De filterregels maakt u zelf, bijvoorbeeld:

/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"

Zet de regels hoog genoeg in de chain dat ze vóór een algemene accept-regel worden geëvalueerd, en maak ook regels in de input-chain als u de router zelf wilt beschermen.

Hoe het werkt

  • Volledige import: het script zet de differentiële scheduler uit, hernoemt de huidige vermeldingen naar Malware-List - Old, haalt de feed pagina voor pagina op in blokken van 4.000 adressen en stopt zodra een pagina leeg terugkomt.
  • Rollback: pas als de import daadwerkelijk vermeldingen heeft opgeleverd, worden de oude verwijderd. Mislukt het downloaden, dan wordt de vorige lijst teruggehernoemd en houdt de router zijn bescherming.
  • Differentiële update: regels met een + ervoor komen in de address-list, regels met een - gaan eruit. Elke API-sleutel heeft een eigen geschiedenis, dus u krijgt precies de wijzigingen sinds uw eigen vorige ophaalactie, binnen het ritme van uw licentie.
  • Coördinatie: de volledige import zet de differentiële scheduler uit zolang hij bezig is en daarna weer aan, zodat de twee elkaar nooit in de weg zitten.
  • Adresformaten: IPv4, IPv6 en CIDR-notatie zoals 192.0.2.0/24. RouterOS valideert elk adres en slaat stilzwijgend over wat het niet kan lezen.
  • Logging: beide scripts zetten de eerste logging-actie uit terwijl ze draaien, om duizenden losse regels uit het log te houden, en zetten die daarna weer aan.

Controleren

/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

Na een geslaagde volledige import loopt de teller in de honderdduizenden, afhankelijk van uw licentie, en toont het log een regel per verwerkte pagina plus een afsluitende melding.

Problemen oplossen

  • De lijst blijft leeg: controleer het token in beide scripts, ga na of de router https://api.qfeeds.com kan bereiken en draai de volledige import met de hand vanuit de terminal.
  • De differentiële update verandert nooit iets: draai eerst de volledige import. Gebruik in beide scripts hetzelfde API-token, want de ophaalgeschiedenis hangt aan de sleutel.
  • De lijst is weg na een herstart: dat hoort zo bij useDynamic "yes". De scheduler vult hem bij de volgende run weer. Zet de variabele alleen op "no" als u die permanentie echt nodig heeft.
  • Rollback in het log: de import is mislukt en de vorige lijst is teruggezet. Controleer de verbinding en de geldigheid van uw token, en kijk of de router genoeg vrij geheugen heeft.
  • Er draait niets: kijk met /system scheduler print of een scheduler uitstaat en controleer of de scriptnamen exact overeenkomen met de namen in de schedulers.
  • Ondersteuning: support@qfeeds.com of de supportpagina. Bug gevonden in de scripts? Open een issue in de GitHub-repository.

De Q-Feeds-feeds met kwaadaardige URL's worden op RouterOS niet ondersteund. Een address list matcht op IP-adressen, en een volledig URL-pad kan alleen door een proxy of een webfilter worden geïnspecteerd. Blijf hier bij de malware-IP-feed.

Bekijk de scripts op GitHub Over de MikroTik-integratie

Evalueer onze intelligence vandaag!

Vereenvoudig uw security operations, start uw gratis Q-Feeds-proefperiode en ervaar het verschil.

Activeer gratis toegang