Intégrations pare-feu

Connecter Q-Feeds à MikroTik RouterOS

Deux scripts open source maintiennent une address-list RouterOS remplie d'adresses IP malveillantes. L'un fait l'import complet, l'autre ne récupère que les changements, et le planificateur exécute les deux pour que vos règles de filtrage travaillent toujours avec des données à jour.

Les scripts sont open source et publiés sur GitHub : Q-Feeds/Q-Feeds-Integration-for-Mikrotik-RouterOS. Récupérez-les toujours là, vous êtes ainsi certain d'avoir la version actuelle. Il vous faut les droits admin sur le routeur, un HTTPS sortant vers api.qfeeds.com et un jeton API Q-Feeds. Voir Obtenir vos threat feeds.

Prérequis

  • RouterOS : 7.15 ou plus récent, testé sur 7.15, 7.17 et 7.20
  • Droits : un compte avec les droits admin complets
  • Flux : liste d'IP malveillantes (feed_type=malware_ip)
  • Réseau : HTTPS sortant du routeur vers api.qfeeds.com
  • Address-list : Malware-List, créée par les scripts si elle n'existe pas encore

Récupérer les scripts

Le dépôt contient deux fichiers :

  • Malware Import FULL.rsc charge la liste complète.
  • Malware Import DIFF.rsc n'applique que les changements depuis votre dernier appel.

Ouvrez les deux sur GitHub et copiez leur contenu, ou téléchargez le dépôt en ZIP. Rien à installer sur le routeur, vous collez le texte du script dans RouterOS.

Renseigner votre jeton

Les deux scripts commencent par un court bloc de variables. Remplacez le jeton d'exemple par le vôtre :

:local apitoken "YOUR_API_TOKEN_HERE";

La variable suivante décide où les entrées sont conservées :

:local useDynamic "yes";
  • "yes" garde les entrées en RAM. Elles disparaissent au redémarrage et le planificateur les rétablit à l'exécution suivante. C'est la valeur par défaut et le bon choix pour des mises à jour fréquentes, car rien n'est jamais écrit dans la mémoire flash du routeur.
  • "no" écrit les entrées sur le disque. Elles survivent à un redémarrage, mais avec une liste de cette taille et une mise à jour toutes les vingt minutes, vous usez la flash et faites gonfler le fichier de configuration.

Ajouter les scripts dans RouterOS

Dans Winbox ou WebFig, allez dans System, Scripts et créez deux scripts. Les noms comptent, car l'import complet cherche le planificateur différentiel par son nom :

  • Malware Update - Full avec le contenu de Malware Import FULL.rsc
  • Malware Update - Diff avec le contenu de Malware Import DIFF.rsc

Accordez aux deux scripts les policies read, write, policy et test, sinon ils ne peuvent pas gérer l'address-list ni le planificateur.

Créer les planificateurs

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

Lancez l'import complet chaque jour ou chaque semaine. Réglez l'intervalle du différentiel sur votre licence : 1d en Community, 4h en Plus et 20m en Premium. Interroger plus souvent que la licence ne le permet ne rapporte rien de neuf.

Exécutez l'import complet une fois à la main avant de compter sur la mise à jour différentielle. L'API renvoie les changements depuis votre dernier appel : sans première récupération complète, il n'y a pas de référence et le différentiel reste vide.

/system script run "Malware Update - Full"

Bloquer le trafic

Les scripts ne font que remplir la liste. Les règles de filtrage, c'est à vous de les créer, par exemple :

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

Placez les règles assez haut dans la chaîne pour qu'elles passent avant une règle accept générale, et ajoutez des règles dans la chaîne input si vous voulez aussi protéger le routeur lui-même.

Comment ça marche

  • Import complet : le script désactive le planificateur différentiel, renomme les entrées existantes en Malware-List - Old, récupère le flux page par page par blocs de 4 000 adresses et s'arrête dès qu'une page revient vide.
  • Restauration : les anciennes entrées ne sont supprimées que si l'import a réellement produit des entrées. Si le téléchargement échoue, la liste précédente est renommée à l'identique et le routeur garde sa protection.
  • Mise à jour différentielle : les lignes précédées d'un + entrent dans l'address-list, celles précédées d'un - en sortent. Chaque clé API a son propre historique, vous recevez donc exactement les changements depuis votre dernier appel, au rythme de votre licence.
  • Coordination : l'import complet coupe le planificateur différentiel pendant son exécution et le réactive ensuite, pour que les deux ne se marchent jamais dessus.
  • Formats d'adresses : IPv4, IPv6 et notation CIDR comme 192.0.2.0/24. RouterOS valide chaque adresse et ignore silencieusement ce qu'il ne sait pas lire.
  • Journalisation : les deux scripts coupent la première action de logging pendant leur exécution, pour éviter des milliers de lignes isolées dans le journal, puis la réactivent.

Vérifier

/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

Après un import complet réussi, le compteur atteint les centaines de milliers selon votre licence, et le journal affiche une ligne par page traitée puis un message de fin.

Dépannage

  • La liste reste vide : vérifiez le jeton dans les deux scripts, assurez-vous que le routeur atteint https://api.qfeeds.com et lancez l'import complet à la main depuis le terminal.
  • Le différentiel ne change jamais rien : exécutez d'abord l'import complet. Utilisez le même jeton API dans les deux scripts, car l'historique est lié à la clé.
  • La liste a disparu après un redémarrage : c'est normal avec useDynamic "yes". Le planificateur la remplit à l'exécution suivante. Ne passez la variable à "no" que si la persistance vous est indispensable.
  • Restauration dans le journal : l'import a échoué et la liste précédente a été rétablie. Vérifiez la connectivité, la validité de votre jeton et la mémoire libre du routeur.
  • Rien ne s'exécute : regardez avec /system scheduler print si un planificateur est désactivé et vérifiez que les noms des scripts correspondent exactement à ceux des planificateurs.
  • Assistance : support@qfeeds.com ou la page support. Un bug dans les scripts ? Ouvrez une issue dans le dépôt GitHub.

Les flux d'URL malveillantes de Q-Feeds ne sont pas pris en charge sur RouterOS. Une address list compare des adresses IP, et seul un proxy ou un filtre web peut inspecter un chemin d'URL complet. Restez ici sur le flux d'IP malware.

Voir les scripts sur GitHub À propos de l'intégration MikroTik

Évaluez notre intelligence dès aujourd'hui !

Simplifiez vos opérations de sécurité, lancez votre essai gratuit de Q-Feeds et constatez la différence.

Activer l'accès gratuit