Boas Praticas de Segurança em Mikrotik

Criada por Danilo Tomich, Modificado em Thu, 15 Sep 2022 na (o) 04:31 PM por Danilo Tomich

    Esse material foi feito com muita dedicação, compartilhamento e vivência de consultores no mercado ISP.

    A ideia aqui é tornar, nem que seja para os críticos, um mínimo possível seguro a sua rede.

 

    Devemos fazer nosso dever de casa em não ser um refletor de ataque, para um atacante. 

    Ou pelo menos dificultar o máximo possível.

    E acredite! A maioria não tem um mínimo de proteção.

    Tenha em mente! Quanto mais dificuldade o atacante tiver para prejudicar um destino, ele não vai fazer. Porque demanda tempo em buscar alternativas para o ataque.
     Exceto naqueles ataques direcionados, pagos para realmente te prejudicar.


Partiu então as Práticas!


    Importante: Estamos sempre atualizando esse material, portanto aceitamos opiniões, ideias e práticas vividas como case de sucesso.


VAMOS FALAR DA VERSÃO 6 DO MIKROTIK.


SAFE MODE:


Antes de qualquer alteração, crie o costume de ativar opção SAFE MODE.

Dessa forma, se perder acesso, ele volta o que era.


ATUALIZAÇÃO:


Devemos sim! Manter as caixas sempre atualizadas.

Pratique em deixar na Long-Term

Nesse Tutorial mostra como atualizar. (Em desenvolvimento)




SENHA:


Jamais deixe com o user admin, root, user, mesmo que tenha uma senha top.
Quando alguém tenta acessar com admin, o mikrotik vai devolver uma resposta, dizendo que existe o user, porem senha invalida. 

O atacante então vai continuar insistindo nesse usuário. 

Se remover, o bot e/ou atacante vai parar de tentar nesse user.





RoMON:

Nunca ative essa opção sem senha.


Portas de serviços

  • Deixe sempre ativo as portas que de fato vai utilizar. 
  • Coloque somente os ips que vai acessar o mikrotik.
  • Mude as portas padrões do que vai deixar ativo.
  • Utilize sempre portas altas. Exemplo: 50051, 50062…


Costumo então deixar somente o WINBOX e SSH, com portas alteradas, e com os ips que vão acessar o equipamento.
Exemplo: 



    Deve esta se perguntando! Como vou ter acesso externo ou com outro ip?


Pulo do Gato!


    Pegue aquele mikrotik que ia jogar fora, e ligue na borda "BGP".
    Crie uma rede para ele e adicione um ip publico na lookback

    Ative a VPN L2TP com IPsec
    E crie um usuário para vpn com o ip 10.171.171.2


    Pronto. Toda vez que precisar ter acesso, conecte nessa VPN.



Protocolos, serviços e portas que jamais devem esta, ativos.

Serviços:

Telnet - Sempre desativado
Esse protocolo não é mais seguro. Muito antigo.
Para isso veio o SSH. Prefira

Portas


  • 19 - TCP/UDP - Chargen: Protocolo de geração de caracteres usado geralmente para amplificação/reflexão de ataques.
  • 25 - TCP/UDP - SMTP: Antiga porta usada para o protocolo SMTP. Seu uso foi totalmente abolido e hoje só é utilizada para fins maliciosos.
  • 1900 - TCP/UDP - SSDP: Protocolo de autodescoberta de hosts, que deve ser utilizado apenas em redes locais, como residências e empresas, jamais na Internet.
  • 11211 - TCP/UDP - Memcached: Sistema de cache geralmente usado para otimização de desempenho em sites. Por ser usado para abuso de hosts vulneráveis, deve ser bloqueado em clientes residenciais.


FIREWALL


Advertência: As regras aqui expostas devem ser cautelosamente lidas e entendidas, e se necessário modificadas, antes de serem aplicadas em sua rede.

Aplique-as utilizando o Safe Mode num horário ameno e faça testes. Aplique definitivamente só após homologar o funcionamento em sua rede.


Simbora!!!


FASTTRACK-CONNECTION


Utilize onde não existe por exemplo controde de trafego.
Pode ser utilizado na caixa FIREWALL e CGNAT


/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=established,related
add action=accept chain=forward connection-state=established,related
add action=drop chain=forward connection-state=invalid



FILTROS ANTI SPOOFING


O Reverse Path Filter é recurso eficiente no controle de IP spoofing e está disponível no RouterOS a partir da versão 6.

strict: valida na FIB a interface de origem

loose: valida na FIB em qualquer interface

no: recurso desativado


Equipamentos que possuam caminhos simétricos para as redes externas devem ter filtros anti spoofing. Por via de regra, caso seu concentrador de clientes possua uma única interface de entrada/saída para a internet e não seja também o equipamento onde chegam seus links de Internet, você deve aplicar filtro anti spoofing no modo strict.


NÃO UTILIZE EM EQUIPAMENTO ONDE TENHA BGP e CGNAT)

/ip settings set rp-filter=strict




Aplicações no CGNAT ou na caixa de FIREWALL
Lembrando que a caixa de firewall preicsa vim antes que o CGNAT.

BLOQUEIOS DE PORTAS

    Algumas portas jamais devem ser usadas no forward de pacotes pelos clientes de seu provedor. São elas:

    Acima colocamos uma lista de portas que deve ser bloqueados. Vamos às regras.


/ip firewall raw
add action=drop chain=prerouting protocol=udp src-port=19,25,1900,11211
add action=drop chain=prerouting protocol=tcp src-port=19,25,1900,11211
add action=drop chain=prerouting dst-port=19,25,1900,11211 protocol=udp
add action=drop chain=prerouting dst-port=19,25,1900,11211 protocol=tcp
/ipv6 firewall raw
add action=drop chain=prerouting protocol=udp src-port=19,25,1900,11211
add action=drop chain=prerouting protocol=tcp src-port=19,25,1900,11211
add action=drop chain=prerouting dst-port=19,25,1900,11211 protocol=udp
add action=drop chain=prerouting dst-port=19,25,1900,11211 protocol=tcp





PORTSCAN


Vamos criar uma regra bem legal em que se alguém estiver tentando acessar algo em sua rede várias vezes, vai entender ser um possível ataque e fazer o bloqueio do ip desse inseto!


/ip firewall filter add action=add-src-to-address-list address-list=PORTSCAN address-list-timeout=1w3d chain=input comment="DETECTA PORTSCAN" in-interface=vlan130 protocol=\ tcp psd=21,3s,3,1
ip firewall raw add action=drop chain=prerouting comment="DETECTA PORTSCAN" src-address-list=PORTSCAN

O mikrotik vai fazer o seguinte!
Vai entender que em 3 segundos, alguém tentou acessar 21 vezes uma determinada porta.
Passou disso, bloqueia o inseto por 10 dias.

Função feita no PSD - Port Scan Detection

Low Port Weight: 3 - Significa que as portas baixas tem peso 3
High Port Weight 1 - Significa que as portas altas têm peso 1 (mais prioridade)



DNS

Vamos fazer bloqueio externo ao seu DNS.

/ip firewall filter
add action=drop chain=input comment="DROP DNS" dst-port=53 in-interface=vlan130 protocol=udp
add action=drop chain=forward dst-port=53 in-interface=vlan130 protocol=udp


FIREWALL STATEFULL e STATELESS

É nesse tipo de firewall que o pessoal tem medo de fazer ou desanima, porque estamos fazendo bloqueios de tudo, exceto o que permitimos, e muitas vezes deixamos algo passar batido. 

Mas se entender, e fizer gradualmente e analisando, com o tempo vai conseguir ativar todas as regras descritas aqui.

A mais critica é a última regra, a de Drop no resto que esta chegando na IN.

Portanto, pode ativar as outras, a última, ative quando você tiver disponível!

Porque se alguém tiver problema, ou você desativa o drop e veja o que é, ou já tenta solucionar. 

Em seguida reative.


STATEFULL

  • Significa que sabe o estado das conexões. Seu mikrotik sabe o que esta chegando nele.
  • Consome recurso do processador.
  • Toda caixa que estiver fazendo NAT e Mangle, pode aplicar essa regra


Regras de accpet


/ip firewall filter
add action=accept chain=input comment="ACEITA ACESSO AO MIKROTIK-WINBOX,SSH,FTP" dst-port=50010,50002,50021 protocol=udp
add action=accept chain=input comment="ACEITA SMNP" dst-port=161 protocol=udp src-address-list=SERVIDORES-ACEITOS
add action=accept chain=input comment="ACEITA VPN EM L2TP" disabled=yes dst-port=50,51,1701,500,4500 protocol=udp
add action=accept chain=input comment="ACEITA DO BANDWIDTH TEST" disabled=yes dst-port=2000 protocol=tcp
add action=accept chain=input comment="ACEITA PARA  MPLS- CASO VAI PASSAR MPLS POR ESSA CAIXA, PRECISA ATIVAR" disabled=yes dst-port=646 protocol=udp src-address-list=IPS-MPLS-ACEITOS
add action=accept chain=input comment="ACEITA  MPLS- CASO VAI PASSAR MPLS POR ESSA CAIXA, PRECISA ATIVAR" disabled=yes dst-port=646 protocol=tcp src-address-list=IPS-MPLS-ACEITOS
add action=accept chain=input comment="ACEITA MNDP NEIGHBOR DISCOVERY DO SEU MIKROTIK, NESSE CASO ESTA ACEITANDO POR UMA INTERFACE. " disabled=yes dst-port=5678 in-interface=sfp-sfpplus1 protocol=udp
add action=accept chain=input comment="ACEITA ACESSO POR MAC NA ETHER1" dst-port=20561 in-interface=ether1 protocol=udp
add action=accept chain=input comment="ACEITA TUNEIS PPTP EoIP" disabled=yes protocol=gre
add action=accept chain=input comment="ACEITA OSPF" protocol=ospf


Por fim Descarte o resto.
É aqui que deve ter cuidado e paciência como dito acima.

Importante, ative o SAFE MODE e tenha certeza que já liberou todas as portas que utiliza.


Antes de descartar o resto, você pode criar uma regra de log do drop e olhar o que esta descartando. Dessa forma consegue ter certeza se faltou algo.

/ip firewall filter add action=log chain=input comment="LOG DESCARTA RESTANTE" disabled=yes


Depois que analisou todo o log, tem certeza que esta ok?

Aplique a regra para descartar o resto. 

Deixe essa regra acima das regras de accept do ICMP

/ip firewall filter add action=drop chain=input comment="DESCARTA RESTANTE" disabled=yes

ICMP - PING

Vamos liberar ICMP somente para o que realmente precisa.

Vou criar as regras de accept do de desejamos aceitar de ICMP

/ip firewall filter
add action=accept chain=ICMP comment="ECHO REPLAY" icmp-options=0:0-255 limit=1,10:packet protocol=icmp
add action=accept chain=ICMP comment="ECHO REQUEST" icmp-options=8:0-255 limit=1,10:packet protocol=icmp
add action=accept chain=ICMP comment="TIME EXCEEDED - TEMPO EXCEDIDO" icmp-options=11:0-255 limit=1,10:packet protocol=icmp
add action=accept chain=ICMP comment="DESTINATION UNREACHABLE - TEMPO EXCEDIDO" icmp-options=3:0-255 limit=1,10:packet protocol=icmp
add action=drop chain=ICMP comment="DROP ICMP" protocol=icmp src-address-list=!IPs-PERMITIDOS-ICMP disable=yes


Obs:  A ultima regra é de bloqueio, entretanto, coloquei em SRC-ADDRESS-LIST os ips da rede que pode ter livre comiunicação com o ICMP.
Nome: IPs-PERMITIDOS-ICMP
Deixo sempre liberado os ips públicos e privados do PPPoE.


Exemplo:

/ip firewall address-list
add address=100.64.0.0/24 list=IPs-PERMITIDOS-ICMP
add address=200.200.200.0/22 list=IPs-PERMITIDOS-ICMP


Show! Para ter efeito, precisamos fazer uma regra de Jump e colocar no todo de todas as outras regras.

/ip firewall filter add action=jump chain=input comment="ICMP PASSE PELO CONTROLE - CHAIN ICMP" jump-target=ICMP protocol=icmp




Sua tabela de filter deve ficar parecida com essa:



Segue um link da mikrotik com as portas que utilizam na caixa. Pode ser bastante util.


É isso pessoal!
Sempre estamos atualizando a Base de Conhecimento.

Aceito um café em! 


Este artigo foi útil?

Que bom!

Obrigado pelo seu feedback

Desculpe! Não conseguimos ajudar você

Obrigado pelo seu feedback

Deixe-nos saber como podemos melhorar este artigo!

Selecione pelo menos um dos motivos

Feedback enviado

Agradecemos seu esforço e tentaremos corrigir o artigo