Forum Linux.debian/ubuntu Fail2ban : Ban IP with mikrotik router

Posté par  . Licence CC By‑SA.
Étiquettes :
3
16
fév.
2026

Bonjour à tous,

J'ai trouvé comment ban des IP sur mon routeur mikrotik.

J'ajoute chaque IP à une adress-list du firewall.

Le problème c'est qu'au moment de la commande "systemctl restart fail2ban", je perds les IP qui ont été ajoutées dans les adress-list du routeur.

Voici la définition du fichier mikrotik.conf présent dans /etc/fail2ban/action.d/mikrotik.conf

J'ai regardé, le fichier fail2ban.sqlite3 est présent et doit stocker les IP bannies.

Merci pour votre aide.

[Definition]
/etc/fail2ban/action.d/mikrotik.conf

actionstart =
actionstop = %(actionflush)s
actionflush = %(command)s "/ip firewall address-list remove [find list=\"%(list)s\" comment~\"%(startcomment)s-*\"]"
actioncheck =
actionban = %(command)s "/ip firewall address-list add list=\"%(list)s\" address=<ip> comment=%(comment)s"
actionunban = %(command)s "/ip firewall address-list remove [find list=\"%(list)s\" comment=%(comment)s]"

command = ssh -l %(user)s -p%(port)s -i %(keyfile)s %(host)s

[init]
name="%(__name__)s""
  • # La réponse est dans la question

    Posté par  . Évalué à 3 (+1/-0).

    La question :

    Le problème c'est qu'au moment de la commande "systemctl restart fail2ban", je perds les IP qui ont été ajoutées dans les adress-list du routeur.

    La réponse :

    actionflush = %(command)s "/ip firewall address-list remove [find list=\"%(list)s\" comment~\"%(startcomment)s-*\"]"
    
    • [^] # Re: La réponse est dans la question

      Posté par  . Évalué à 1 (+0/-0).

      Oui vrai, mais que faut-il mettre pour :

      actionstart = ?
      

      Le même que actionban ?

      actionban = %(command)s "/ip firewall address-list add list=\"%(list)s\" address=<ip> comment=%(comment)s"
      
      • [^] # Re: La réponse est dans la question

        Posté par  . Évalué à 3 (+1/-0).

        Pourquoi diable vouloir modifier les autres actions ? Je pense qu'il suffit de surcharger la configuration avec :

        [mikrotik]
        actionflush= 
        

        Dans le fichier où tu as défini tes réglages personnalisés (en principe sous /etc/fail2ban/jail.d/)

        • [^] # Re: La réponse est dans la question

          Posté par  . Évalué à 1 (+0/-0).

          Et bien parce que si je restart fail2ban, je perds les list d'ip ban dans le firewall du router mikrotik.

          Disons que si un jour je veux arrêter ce système, j'aimerais faire un :
          -stop : pour supprimer les regles ajoutées par fail2ban sur le routeur
          -start : pour ajouter à nouveau les règles ajoutées par fail2ban sur le routeur

          Mais ça n'a pas l'air simple !

          • [^] # Re: La réponse est dans la question

            Posté par  . Évalué à 2 (+0/-0).

            Je ne connais absolument pas ton routeur ni les commandes qu'il prend en charge.

            Il faut consulter sa documentation pour trouver les commandes qui permettraient de faire cela : restaurer/sauvegarder les règles ajoutés par fail2ban (à placer dans actionstart/actionstop).

            • [^] # Re: La réponse est dans la question

              Posté par  . Évalué à 1 (+0/-0).

              A priori pour actionstop, ça à l'air de fonctionner !

              Je dirais qu'on est plutôt sur un mécanisme que je ne connais pas de fail2ban.

              Est-il capable de restaurer les ip déjà connu de sa base sql3 de ban ?

              • [^] # Re: La réponse est dans la question

                Posté par  . Évalué à 2 (+0/-0).

                Est-il capable de restaurer les ip déjà connu de sa base sql3 de ban ?

                Oui, c'est le comportement par défaut.
                Il te suffit de regarder les logs de fail2ban après un redémarrage du service et tu verras un certains nombre de lignes contenant :

                Restore Ban x.x.x.x
                

                D'ailleurs pour empêcher ce comportement il faut préciser norestored = 1 dans la configuration (au niveau jail ou action).

                • [^] # Re: La réponse est dans la question

                  Posté par  . Évalué à 1 (+0/-0).

                  ok, mais restore Ban se fait par quel biais ?

                  C'est la qu'il faut agir, mais je ne sais dans quel partie !

                  actionstart ?

                  • [^] # Re: La réponse est dans la question

                    Posté par  . Évalué à 2 (+0/-0).

                    ok, mais restore Ban se fait par quel biais ?

                    On vient de la voir : au démarrage faiul2ban examine la base de données sqlite et restaure le bannissement des IP qui doivent l'être. En fait pour chaque entrée de la table bans, fail2ban (re-)crée la règle de pare-feu qui va bien pour bloquer cette IP.

                    Ton problème ce n'est pas fail2ban mais le fait que les actions utilisées envoient des commandes à une machine distante avec un pare-feu qui semble inhabituel.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.