MikroTik Fail2Ban (blocage des attaques par BruteForce)

Plusieurs options pour se protéger contre les attaques BruteForce sur les appareils MikroTik (MikroTik Fail2Ban), pour les connexions Winbox, Web ou SSH utilisant le MikroTik Firewall. Blocage simple de l’adresse IP de l’attaquant après la première tentative de mot de passe incorrect ou blocage de l’adresse IP après plusieurs tentatives de mot de passe. Testé sur la version RouterOS 7.

Sélectionnez l’option Fail2Ban en fonction de la méthode de connexion utilisée, il n’est pas nécessaire d’utiliser toutes les méthodes de connexion disponibles sur l’appareil MikroTik (j’utilise uniquement Winbox).

Dans cet article, j’utilise des chaînes Jump dans MikroTik Firewall car elles sont moins gourmandes en CPU, et la méthode de blocage utilisée dans l’article est facile à adapter et à étendre.

MikroTik Fail2Ban - Blocage des attaques par BruteForce : SSH, Web, Winbox. (Mhelp.pro)
Un exemple de règles de pare-feu MikroTik pour se protéger contre les attaques par BruteForce sur les connexions SSH, Web et Winbox.

✏️ Attention: Étant donné qu’une attaque Brute Force sur un appareil peut provenir d’un réseau interne de confiance (il est très important de le savoir à temps), selon les règles données, toutes les adresses IP attaquantes sont inscrites dans la BlackList.

Autres langues:

Fail2Ban Winbox

Protéger MikroTik d’une attaque par force brute lors de la connexion via Winbox (adresse IP) à l’aide du pare-feu MikroTik. Pour chaque tentative de mot de passe incorrect via Winbox, MikroTik renvoie le texte en clair « invalid user name or password« .

Informations:

  • Chain: output
  • Protocol: 6 (tcp)
  • Src. Port: 8291
  • Content: invalid user name or password

1 tentative

Blocking after one wrong password attempt:

/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=output comment="F2B Winbox: Login Failure -> BlackList" content="invalid user name or password" protocol=tcp src-port=8291

3 tentatives

Blocking the destination IP address after three incorrect password attempts.

La description:

  • Si le paquet correspond aux conditions, le traitement du paquet est envoyé à la chaîne Fail2Ban-Destination-IP;
  • Si l’adresse IP de destination est déjà dans la liste LoginFailure02, l’adresse IP de destination est ajoutée à la BlackList pendant 10 minutes ;
  • Si l’adresse IP de destination figure déjà dans la liste LoginFailure01, l’adresse IP de destination est ajoutée à la liste LoginFailure02 pendant 2 minutes ;
  • l’adresse IP de destination est ajoutée à la liste LoginFailure01, pendant 1 minute.

Règlement:

/ip firewall filter add action=jump chain=output comment="F2B Winbox: Jump to Fail2Ban-Destination-IP chain" content="invalid user name or password" jump-target=Fail2Ban-Destination-IP protocol=tcp src-port=8291
/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=Fail2Ban-Destination-IP comment="3 Attempt --> BlackList" dst-address-list=LoginFailure02
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure02 address-list-timeout=2m chain=Fail2Ban-Destination-IP comment="2 Attempt --> LoginFailure02" dst-address-list=LoginFailure01
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure01 address-list-timeout=1m chain=Fail2Ban-Destination-IP comment="1 Attempt --> LoginFailure01"

Fail2Ban Web

Protéger MikroTik du mot de passe BruteForce lors de la connexion via l’interface Web à l’aide du pare-feu MikroTik. Lors d’une tentative d’accès invalide, MikroTik envoie un message de réponse contenant le texte brut « Erreur 403 ».

Le port de connexion via l’interface Web est défini dans : IP -> Services -> Liste des services IP -> www. Le port standard est 80, dans l’exemple le port non standard est 90 (Dans l’article « MikroTik Protection (paramètre de sécurité de base de l’appareil) » – le port TCP 80 est utilisé comme piège pour bloquer les scanners).

Informations:

  • Chain: output
  • Protocol: 6 (tcp)
  • Scr. Port: Web port (exemple: 90)
  • Content: Error 403

1 tentative

Blocking after one wrong password attempt:

/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=output comment="F2B Web: Login Failure -> BlackList" connection-state=established content="Error 403" protocol=tcp src-port=90

3 tentatives

Blocking the destination IP address after three incorrect password attempts.

La description:

  • Si le paquet correspond aux conditions, le traitement du paquet est envoyé à la chaîne Fail2Ban-Destination-IP;
  • Si l’adresse IP de destination est déjà dans la liste LoginFailure02, l’adresse IP de destination est ajoutée à la BlackList pendant 10 minutes ;
  • Si l’adresse IP de destination figure déjà dans la liste LoginFailure01, l’adresse IP de destination est ajoutée à la liste LoginFailure02 pendant 2 minutes ;
  • l’adresse IP de destination est ajoutée à la liste LoginFailure01, pendant 1 minute.

Règlement:

/ip firewall filter add action=jump chain=output comment="F2B Web: Jump to Fail2Ban-Destination-IP chain" connection-state=established content="Error 403" jump-target=Fail2Ban-Destination-IP protocol=tcp src-port=90
/ip firewall filter add action=add-dst-to-address-list address-list=BlackList address-list-timeout=10m chain=Fail2Ban-Destination-IP comment="3 Attempt --> BlackList" dst-address-list=LoginFailure02
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure02 address-list-timeout=2m chain=Fail2Ban-Destination-IP comment="2 Attempt --> LoginFailure02" dst-address-list=LoginFailure01
/ip firewall filter add action=add-dst-to-address-list address-list=LoginFailure01 address-list-timeout=1m chain=Fail2Ban-Destination-IP comment="1 Attempt --> LoginFailure01"

Fail2Ban SSH

Protéger MikroTik (Fail2Ban) des attaques par force brute sur la connexion SSH à l’aide du pare-feu MikroTik. Pour demander un mot de passe via SSH, l’appareil MikroTik envoie un nouveau paquet de 304 octets à l’adresse de destination, nous suivons le nombre de paquets envoyés à une adresse IP spécifique.

✏️ Bloquer les attaques BruteForce en utilisant le statut de connexion New n’est pas fiable (je vois souvent cette recommandation sur Internet). L’état Nouveau est attribué à une connexion lorsqu’elle est connectée à un appareil, mais le nombre de tentatives de mot de passe possibles dépend du programme. En saisissant le login de l’utilisateur, un attaquant peut saisir de 3 à 7 options de mot de passe différentes avant que la connexion ne soit interrompue.

PuTTY abandonne la connexion SSH après 7 tentatives de mot de passe incorrectes
7 tentatives pour deviner le mot de passe SSH dans PuTTY avant de se déconnecter

Informations:

  • Chain: input
  • Protocol: 6 (tcp)
  • Dst. Port: 22
  • Connection State: estabished
  • Packet Size: 304
  • TCP Flags: psh, ack

1 tentative

Blocking after one wrong password attempt:

/ip firewall filter add action=add-src-to-address-list address-list=BlackList address-list-timeout=10m chain=input comment="F2B SSH: Login Failure -> BlackList" connection-state=established dst-port=22 packet-size=304 protocol=tcp

3 tentatives

Blocage de l’adresse IP source après trois tentatives de mot de passe incorrectes.

La description:

  • Si le paquet correspond aux conditions, le traitement du paquet est envoyé à la chaîne Fail2Ban-Source-IP;
  • Si l’adresse IP source est dans la liste LoginFailure02, l’adresse IP source est ajoutée à la BlackList, pendant 10 minutes ;
  • Si l’adresse IP source figure dans la liste LoginFailure01, l’adresse IP source est ajoutée à la liste LoginFailure02 pendant 2 minutes ;
  • l’adresse IP source est ajoutée à la liste LoginFailure01, pendant 1 minute.

Règlement:

/ip firewall filter add action=jump chain=input comment="F2B SSH: Jump to Fail2Ban-Source-IP chain" connection-state=established dst-port=22 jump-target=Fail2Ban-Source-IP packet-size=304 protocol=tcp
/ip firewall filter add action=add-src-to-address-list address-list=BlackList address-list-timeout=10m chain=Fail2Ban-Source-IP comment="3 Attempt --> BlackList" src-address-list=LoginFailure02
/ip firewall filter add action=add-src-to-address-list address-list=LoginFailure02 address-list-timeout=2m chain=Fail2Ban-Source-IP comment="2 Attempt --> LoginFailure02" src-address-list=LoginFailure01
/ip firewall filter add action=add-src-to-address-list address-list=LoginFailure01 address-list-timeout=1m chain=Fail2Ban-Source-IP comment="1 Attempt --> LoginFailure01"

BlackList

Nous bloquons toutes les données des adresses IP de la liste BlackList. Nous plaçons la règle dans la chaîne Firewall Raw.

/ip firewall raw
add action=drop chain=prerouting comment="Drop all" src-address-list=BlackList

? Comment configurer la protection contre les attaques BruteForce (MikroTik Fail2Ban) sur un appareil MikroTik utilisant MikroTik Firewall a été discuté dans cet article. J’espère que vous pourrez configurer la protection Fail To Ban pour les connexions Winbox, Web et SSH. Cependant, si vous rencontrez des problèmes lors de la configuration, n’hésitez pas à écrire dans les commentaires. Je vais essayer d’aider.

Laisser un commentaire