MikroTik Fail2Ban (bloqueio de ataques de BruteForce)

Várias opções para proteger contra ataques BruteForce em dispositivos MikroTik (MikroTik Fail2Ban), para conexões Winbox, Web ou SSH usando MikroTik Firewall. Bloqueio simples do endereço IP do invasor após a primeira tentativa de senha incorreta ou bloqueio do endereço IP após várias tentativas de senha. Testado na versão RouterOS 7.

Selecione a opção Fail2Ban dependendo do método de login usado, não é necessário usar todos os métodos de login disponíveis no dispositivo MikroTik (eu só uso Winbox).

Neste artigo, eu uso as cadeias Jump no MikroTik Firewall porque elas exigem menos CPU e o método de bloqueio usado no artigo é fácil de adaptar e estender.

MikroTik Fail2Ban - Bloqueio de ataques de força bruta: SSH, Web, Winbox. (MHelp.pro)
Um exemplo de regras do MikroTik Firewall para proteção contra ataques de força bruta em conexões SSH, Web e Winbox.

✏️ Atenção: Como o ataque Brute Force ao dispositivo pode vir da rede interna (é importante saber disso), nas regras especificadas, todos os endereços IP de ataque serão incluídos na BlackList.

Outras línguas:

Fail2Ban Winbox

Protegendo o MikroTik de um ataque de força bruta ao conectar via Winbox (endereço IP) usando o MikroTik Firewall. Para cada tentativa de senha incorreta via Winbox, o MikroTik envia de volta o texto simples “invalid user name or password“.

Em formação:

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

1 tentativa

Bloqueio após uma tentativa de senha errada:

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

Bloquear o endereço IP de destino após três tentativas incorretas de senha.

Descrição:

  • Se o pacote corresponder às condições, o processamento do pacote é enviado para a cadeia Fail2Ban-Destination-IP;
  • Se o endereço IP de destino já estiver na lista LoginFailure02, o endereço IP de destino será adicionado à BlackList por 10 minutos;
  • Se o endereço IP de destino já estiver na lista LoginFailure01, o endereço IP de destino será adicionado à lista LoginFailure02 por 2 minutos;
  • O endereço IP de destino é adicionado à lista LoginFailure01, por 1 minuto.

Regras:

/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

Protegendo o MikroTik da senha BruteForce ao conectar através da interface da Web usando o MikroTik Firewall. Em uma tentativa de acesso inválido, o MikroTik envia uma mensagem de resposta contendo o texto simples “Error 403“.

80 é a porta padrão da interface da Web do MikroTik, recomendo alterá-la. No exemplo, uma porta não padrão é especificada – 90. No artigo “MikroTik Protection (basic device security setting)” – 80 A porta TCP é usada como uma armadilha para bloquear o scanner de porta.

Em formação:

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

1 tentativa

Bloqueio após uma tentativa de senha errada:

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

Bloquear o endereço IP de destino após três tentativas incorretas de senha.

Descrição:

  • Se o pacote corresponder às condições, o processamento do pacote é enviado para a cadeia Fail2Ban-Destination-IP;
  • Se o endereço IP de destino já estiver na lista LoginFailure02, o endereço IP de destino será adicionado à BlackList por 10 minutos;
  • Se o endereço IP de destino já estiver na lista LoginFailure01, o endereço IP de destino será adicionado à lista LoginFailure02 por 2 minutos;
  • O endereço IP de destino é adicionado à lista LoginFailure01, por 1 minuto.

Regras:

/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

Protegendo o MikroTik (Fail2Ban) de ataques de força bruta na conexão SSH usando o MikroTik Firewall. Para solicitar uma senha via SSH, o dispositivo MikroTik envia um pacote de 304 bytes para o endereço de destino, rastreamos a quantidade de pacotes enviados para um endereço IP específico.

✏️ Bloquear ataques BruteForce usando o status de conexão New não é confiável (muitas vezes vejo essa recomendação na Internet). O status New é atribuído a uma conexão quando conectada a um dispositivo, mas o número de possíveis tentativas de senha depende do programa. Ao inserir o login do usuário, um invasor pode inserir de 3 a 7 opções de senha diferentes antes que a conexão seja encerrada.

PuTTY desconectar a conexão SSH após 7 tentativas incorretas de senha
7 tentativas de adivinhar a senha SSH no PuTTY antes de desconectar

Em formação:

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

1 tentativa

Bloqueio após uma tentativa de senha errada:

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

Endereço IP de origem bloqueado após 3 tentativas incorretas de senha.

Descrição:

  • Se o pacote corresponder às condições, o processamento do pacote é enviado para a cadeia Fail2Ban-Source-IP;
  • Se o endereço IP de origem estiver na lista LoginFailure02, o endereço IP de origem é adicionado à BlackList, por 10 minutos;
  • Se o endereço IP de origem estiver na lista LoginFailure01, o endereço IP de origem será adicionado à lista LoginFailure02 por 2 minutos;
  • O endereço IP de origem é adicionado à lista LoginFailure01, por 1 minuto.

Regras:

/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

Bloqueamos todos os dados de endereços IP da lista BlackList. Colocamos a regra na cadeia Firewall Raw.

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

? Como configurar a proteção contra ataques Brute Force (MikroTIk Fail2Ban) em um dispositivo MikroTik usando o MikroTik Firewall foi discutido neste artigo. Espero que você possa configurar a proteção Fail To Ban para conexões Winbox, Web e SSH. No entanto, se você encontrar algum problema durante a configuração, sinta-se à vontade para escrevê-lo nos comentários. Eu tentarei ajudar.

Deixe um comentário