Você está na página 1de 8

Hardening e Configuração no Mikrotik

Este documento visa descrever as melhores práticas utilizadas na configuração


dos equipamentos (Mikrotik) como ferramenta de segurança. Ele também documenta,
através de um passo-a-passo, a maneira de dar início as configurações iniciais de qualquer
equipamento. Alguns dos tópicos abaixo terão referências à STIGs (que são documentos
que fornecem uma metodologia para padronização de instalações e manutenções de forma
segura para software e hardware) e/ou RFCs (que são documentos que padronizam
protocolos e o funcionamento da Internet no mundo).

Reset do equipamento
O Mikrotik possui configurações padrão de fábrica que permitem seu uso para
navegação doméstica independente de qualquer configuração extra realizada no
equipamento. Essas configurações contemplam regras básicas de firewall e serviços de
DHCP client para comunicação com um modem, por exemplo, para habilitar a navegação.
Essas configurações podem ser removidas, porém sempre após o reset físico do
equipamento (através do botão de reset) elas retornarão. Portanto, sempre antes de dar
início nas configurações iniciais do Mikrotik, remova as configurações de fábrica via
software através do Winbox, assim você elimina qualquer configuração que possa ter no
equipamento e se resguarda de que elas não voltarão.

No momento de proceder com o reset do equipamento através do sistema


operacional, não se esqueça de marcar as opções para não armazenar configurações
default e também para não realizar backup de configurações antigas. Dessa maneira, após
o reboot do equipamento você terá um Mikrotik sem nenhuma configuração em seu
sistema, habilitando-o para dar início nas configurações do equipamento para um novo
cliente.

Atualização de S.O
É importante manter seu equipamento atualizado sempre que possível com a
versão mais recente disponibilizada pelo fabricante, porém para equipamentos em
produção faça sempre a opção de manter um versão estável e livre de bugs e atualize seu
equipamento apenas se as novidades forem de suma importância para você, se a versão
corrir algum bug ou corrigir alguma falha de segurança.

As versões de S.O podem ser encontradas no site da Mikrotik na seção de


Software. Lembrem-se que para cada modelo de processador instalado nos equipamentos,
existe um modelo diferente de pacote de atualização. No momento do download do pacote
de atualização, você terá várias opções de pacotes, baixe sempre o main package para
utilizar em seu processo de atualização.

Alteração de usuário e senha (STIG Finding V-3143)


O Mikrotik vem por padrão de fábrica com o usuário admin e sem senha alguma,
portanto, antes de qualquer configuração, crie um novo usuário com senha e remova o
usuário admin.

Alteração de portas de serviços locais


O Mikrotik possui serviços locais como acesso via SSH, Telnet entre outros. Cada
um desses serviços possuem portas de acesso específicas e essas portas estão no
equipamento em seu formato padrão. Como melhor prática de configuração, é necessário
desativar as portas de serviço que não são utilizadas e alterar as demais necessárias para
que não se mantenha o padrão reduzindo assim risco de exploração de vulnerabilidades.

As portas de serviços presentes no equipamento e seus respectivos serviços são:

API: 8728

API-SSL: 8729

FTP: 21

SSH: 22

TELNET: 23

WINBOX: 8291

WWW: 80

WWW-SSL: 443

Conforme mencionado acima, é necessário desativar as portas não utilizáveis em


nosso cenário e alterar as demais portas para evitar o padrão.

Desativação de serviços
O Mikrotik possui diversos serviços, opções e funcionalidades que por padrão de
fábrica, encontram-se ativadas. Porém para evitar explorações de vulnerabilidades e
consumo desnecessário de recursos, é importante desabilitar estes serviços. Abaixo
seguem os serviços que podem ser desabilitados na configuração inicial.

Universal Plug and Play

Os roteadores da Mikrotik possuem suporte ao UPnP. Trata-se de um conjunto de


protocolos usados em roteadores com a finalidade de mapear portas de determinados
serviços de maneira automática. Para evitar brechas de segurança é necessário desativar
essa opção.

Mikrotik Cloud

A Mikrotik possui um serviço proprietário de atualização de horário e


configuração de DDNS que por padrão vem ativado, não é necessário manter ativado o
DDNS do equipamento caso você tenha IP fixo para gerenciar o mesmo, e como os
servidores de NTP podem ser configurados manualmente, também não existe a
necessidade de manter o NTP da Mikrotik ativo. Sendo assim, para evitarmos dualidade
de serviços e consumo de processamento desnecessário, desativamos esses serviços.

Interfaces não utilizadas

A desativação de interfaces que não estão em uso garante diminuição da interface


de risco e exploração do equipamento, uma vez que se fecha as portas de acesso o
equipamento.

Pacotes não utilizados

O Mikrotik possui diversos pacotes instalados para habilitar funções, porém nem
todos são de uso necessário para nossos cenários, portanto, desabilite os que não
estiverem em uso para evitar a ocorrência de falhas (alguns pacotes podem apresentar
falhas na versão que estiver utilizando, para evitar problemas com pacotes que não são
necessários, os mantenha desativados), evitar explorações de vulnerabilidades e também
consumo de recursos sem necessidade.

Neighbor Discovery

O Mikrotik utiliza um protocolo proprietário (MNDP) baseado em LLDP para


descobrir outros dispositivos na rede que sejam compatíveis com LLDP ou CDP. Este
protocolo permite com que dispositivos anunciem sua identidade através da camada dois
para o Mikrotik sendo assim possível descobrir quem está no mesmo enlace. O problema
deste protocolo é que o Mikrotik também passa a anunciar sua identidade para outros
dispositivos compatíveis, o que pode abrir portas para exploração de vulnerabilidades.
Portanto, para reduzir este risco, desabilite esta opção.

Mac Services

Por padrão o acesso ao Mikrotik via MAC Address é habilitado. Desabilite a


opção MAC Telnet para evitar acesso ao equipamento burlando o firewall. Deixe
habilitado apenas a opção MAC Winbox na interface LAN (nas versões mais recentes do
equipamento, é necessário criar uma Interface List para habilitar nas permissões do
MAC Winbox. Crie uma com o nome de mac-winbox contendo apenas a interface
LAN) do equipamento para emergências. Desabilite também a opção de MAC Ping.

Btest Server

Por padrão esta opção vem ativada. Desabilite-a pois não será de uso necessário.

Ativação de serviços
Strong Crypto

Força com que clientes de conexão ssh (como putty) utilizem algorítimos mais
fortes de criptografia ao se conectarem com o Mikrotik. Faz a preferência por
criptografias de 256 e 192 bits em relação a 128 bits, desabilita criptografia nulas,
desabilita o uso de MD5, faz preferência pela hash sha256 em relação a sha1, utiliza
prioritariamente troca de chaves Diffie-Hellman 2048bit em relação a 1024bit. (STIG
Finding V-3069)

/ip ssh set strong-crypto=yes

Gráficos na interface

Habilitar nas interfaces de rede interna e externa para gerar gráficos de consumo
das interfaces.

Syncookie

O Mikrotik possui a funcionalidade SynCookie para resistir a ataques de


SynFlood, por padrão ela vem desativada, portanto habilite-a.

Configuração de DNS
Faça a opção por configurar sempre mais de um servidor de DNS para obter
redundância. Abaixo um script para configurar 4 de uma única vez:

/ip dns

set allow-remote-requests=yes cache-max-ttl=5d servers=1.1.1.1,208.67.222.222,208.67.220.220,9.9.9.9

Configuração de NTP
O Mikrotik possui a funcionalidade de NTP client para manter seu horário
atualizado. Assim como no DNS, é importante manter mais de um servidor configurado
para garantir alta disponibilidade. Utilize o script abaixo para configurar de maneira
automática:

/system ntp client


set enabled=yes primary-ntp=200.160.0.8 secondary-ntp=200.189.40.8

Identificação do equipamento
Por padrão todos os equipamentos saem da fábrica com o nome “Mikrotik”, é
necessário alterar o nome.

Endereçamento de interfaces
Habilitar nas interfaces os endereços de rede e gateway de acordo com o cenário
do cliente.

Servidor de DHCP
Habilitar nas interfaces necessárias servidores DHCP de acordo com o ambiente
do cliente.
Banner de login
É importante habilitar esta função para evidenciar ao usuário que seu acesso ao
equipamento está sendo monitorado.

Execute os comandos abaixo para configurar o banner:

/system note set note="Este acesso eh monitorado por XXXX."

Bogons (RFC 6890)


É importante dropar qualquer tentativa de acesso a rede interna pela interface
WAN vinda destes IPs, pois estes endereços são reservados para usos especiais e não
deveriam ser roteados pela internet. Segue abaixo os endereços para bloqueio:

/ip firewall address-list

add address=0.0.0.0/8 list=Bogons


add address=10.0.0.0/8 list=Bogons
add address=100.64.0.0/10 list=Bogons
add address=127.0.0.0/8 list=Bogons
add address=169.254.0.0/16 list=Bogons
add address=172.16.0.0/12 list=Bogons
add address=192.0.0.0/24 list=Bogons
add address=192.0.0.0/29 list=Bogons
add address=192.0.2.0/24 list=Bogons
add address=192.88.99.0/24 list=Bogons
add address=192.168.0.0/16 list=Bogons
add address=198.18.0.0/15 list=Bogons
add address=198.51.100.0/24 list=Bogons
add address=203.0.113.0/24 list=Bogons
add address=240.0.0.0/4 list=Bogons

Após inserção do código acima, é necessário criar uma regra no Firewall bloqueando
qualquer tráfego originário desta lista e entrando pelas interfaces WAN do roteador,
conforme script abaixo:

/ip firewall filter

add action=drop chain=forward comment=".::FOW::. drop bogons" in-


interface=NOMEDAINTERFACE src-address-list=Bogons

Alerta no DHCP
Através desta funcionalidade é possível identificar se existem outros servidores
DHCPs habilitados no mesmo enlace de rede. Em casos onde o Mikrotik fornece os IPs
da rede, é de extremo bom uso para evitar servidores "rogues" que podem possivelmente
entregar outra faixa de rede atrapalhando assim o bom funcionando da mesma.

Configurações de firewall
As configurações abaixo foram criadas para permitir a inserção de um firewall
restritivo no cliente de maneira a habilitar serviços básicos, como a navegação e envio de
e-mails. Demais configurações deve ser adicionadas de acordo com as regras de negócio
de cada cliente.

Utilize o script abaixo na ativação de qualquer firewall para garantir uma segurança
mínima:

/user add group=full name=admin password=admin

/ip service disable api,api-ssl,ftp,ssh,telnet,www,www-ssl

/ip upnp set enabled=no


/ip upnp set allow-disable-external-interface=no
/ip upnp set show-dummy-rule=no

/ip cloud set ddns-enabled=yes


/ip cloud set update-time=no

/ip neighbor discovery-settings set discover-interface-list=none

/interface list add name=mac-winbox

/tool mac-server set allowed-interface-list=none


/tool mac-server mac-winbox set allowed-interface-list=mac-winbox
/tool mac-server ping set enabled=no

/tool bandwidth-server set enabled=no


/tool bandwidth-server set authenticate=no

/ip ssh set strong-crypto=yes

/ip settings set tcp-syncookies=yes

/ip dns

set allow-remote-requests=yes cache-max-ttl=5d servers=1.1.1.1,208.67.222.222,208.67.220.220,9.9.9.9

/system note set show-at-login=yes


/system note set note="Este acesso eh monitorado pelo XXXX."

/ip firewall address-list

add address=0.0.0.0/8 list=Bogons


add address=10.0.0.0/8 list=Bogons
add address=100.64.0.0/10 list=Bogons
add address=127.0.0.0/8 list=Bogons
add address=169.254.0.0/16 list=Bogons
add address=172.16.0.0/12 list=Bogons
add address=192.0.0.0/24 list=Bogons
add address=192.0.0.0/29 list=Bogons
add address=192.0.2.0/24 list=Bogons
add address=192.88.99.0/24 list=Bogons
add address=192.168.0.0/16 list=Bogons
add address=198.18.0.0/15 list=Bogons
add address=198.51.100.0/24 list=Bogons
add address=203.0.113.0/24 list=Bogons
add address=240.0.0.0/4 list=Bogons

/ip firewall filter

add action=accept chain=---------- comment=\


".::>>>>>>>>>> INPUT <<<<<<<<<<::." disabled=yes
add action=add-src-to-address-list address-list=ddoser address-list-timeout=\
1d chain=input comment=".::INP::. filter connection limit" \
connection-limit=150,32 disabled=yes log-prefix=ddoser protocol=tcp
add action=tarpit chain=input comment=".::INP::. tarpit ddosers" \
connection-limit=3,32 disabled=yes protocol=tcp src-address-list=ddoser
add action=add-src-to-address-list address-list=PortScanners \
address-list-timeout=4w2d chain=input comment=\
".::INP::. Add PortScanners IP to list" disabled=yes protocol=tcp psd=\
21,3s,3,1
add action=reject chain=input comment=".::INP::. reject > PortScanner List" \
disabled=yes reject-with=icmp-network-unreachable src-address-list=\
PortScanners
add action=accept chain=input comment=\
".::INP::. Echo request - Avoiding Ping Flood" disabled=yes icmp-options=\
8:0 limit=1,5:packet protocol=icmp
add action=accept chain=input comment=".::INP::. Echo reply" disabled=yes \
icmp-options=0:0 protocol=icmp
add action=accept chain=input comment=".::INP::. Time Exceeded" disabled=yes \
icmp-options=11:0 protocol=icmp
add action=accept chain=input comment=".::INP::. Destination unreachable" \
disabled=yes icmp-options=3:0-1 protocol=icmp
add action=accept chain=input comment=".::INP::. PMTUD" disabled=yes \
icmp-options=3:4 protocol=icmp
add action=reject chain=input comment=".::INP::. reject icmp" disabled=yes \
protocol=icmp reject-with=icmp-network-unreachable
add action=drop chain=input comment=".::INP::. drop invalid conn" \
connection-state=invalid disabled=yes log-prefix=invalid
add action=accept chain=input comment=\
".::INP::. estabelecidas & relacionadas" connection-state=\
established,related disabled=yes
add action=accept chain=input comment=".::INP::. dns" disabled=yes dst-port=\
53 protocol=udp
add action=accept chain=input comment=".::INP::. dhcp" disabled=yes dst-port=\
67 protocol=udp
add action=accept chain=input comment=\
".::INP::. Winbox Mikrotik (from knock knock list)" disabled=yes \
dst-port=52123 protocol=tcp src-address-list=Winbox
add action=add-src-to-address-list address-list=Winbox address-list-timeout=\
8h chain=input comment=".::INP::. Knock Knock Winbox" disabled=yes \
dst-port=63321 protocol=tcp
add action=drop chain=input comment=".::INP::. drop all" disabled=yes \
log-prefix=INPUT_DROP
add action=accept chain=---------- comment=\
".::>>>>>>>>>> FORWARD <<<<<<<<<<::." disabled=yes
add action=accept chain=forward comment=\
".::FOW::. estabelecidas & relacionadas" connection-state=\
established,related disabled=yes
add action=accept chain=forward comment=".::FOW::. icmp" disabled=yes \
protocol=icmp
add action=accept chain=forward comment=".::FOW::. dns" disabled=yes \
dst-port=53 protocol=udp
add action=accept chain=forward comment=".::FOW::. Navega\E7\E3o" disabled=\
yes dst-port=80,443 protocol=tcp
add action=accept chain=forward comment=".::FOW::. e-mail" disabled=yes \
dst-port=110,143,465,587,993,995 protocol=tcp
add action=drop chain=forward comment=".::FOW::. drop all" disabled=yes \
log-prefix=FORWARD_DROP