Rodando RouterOS Mikrotik x86 no GNS3

MikroTik RouterOS é um sistema operacional stand-alone fabricado pela empresa MikroTik. Ele também pode ser instalado em plataforma i386 e transformar um simples PC em um poderoso sistema de roteamento com todas as funções de um roteador como, roteamento, firewall, controle de banda, acesso sem fio, hotspot, servidor de vpn, etc.

Esse tutorial explica como instalar o RouterOS em um disco virtual Qemu para ser utiliiadoem seu GNS3 para simulações com esse sistema.

Você pode fazer o download da imagem Mikrotik RouterOS x86 instalado em Qemu na seção de Downloads.

Pré-requisitos do sistema

Virtual Machine Prerequisites

  • arquitetura compatível com i386
  • mínimo de 32MB de RAM
  • mínimo de 64 MB de DISCO
  • cartões de rede suportados pelo kernel do seu linux (PCI, PCI-X)

Instalação do RouterOS x86

1. Faça o download RouterOS para arquitetura x86

$ wget http://download2.mikrotik.com/routeros/6.32.4/mikrotik-6.32.4.iso

2. Crie um disco virtual Qemu e inicie a máquina virtual

$ /usr/local/bin/qemu-img create -f qcow2 routeros-6.32.4.img 200M
$ /usr/local/bin/qemu-system-i386 -m 512 -enable-kvm -boot d -cdrom mikrotik-6.32.4.iso routeros-6.32.4.img

3. Efetue a instalação do RouterOS

Utilize a barra de espaço para selecionar os pacotes necessários e depois pressione I para instalar o sistema.

Picture1-Packages_Installation-300x184

Figura 1 – Instalação do RouterOS

4. Iniciar o disco Qemu com RouterOSDepois que o disco for formatado os pacotes serão copiados, para iniciar uma instancia do Routeros execute o seguinte comando:

$ /usr/local/bin/qemu-system-i386 -m 512 -enable-kvm -boot c routeros-6.32.4.img -nographic -serial telnet::4444,server,nowait

Agora você poderá logar no RouterOS com o seguinte comando telefone:

$ telnet 127.0.0.1 4444

Usuário é admin com senha em branco..

Agora é só adicionar seu imagem Qemu dos RouterOS ao GNS3 (no menu de preferências)

Facebooktwittergoogle_pluslinkedinmail

Script básico de Firewall para Roteador Mikrotik 6.xx

Este é um script de firewall básico que poderá ser aplicado para qualquer roteador Mikrotik 6.xx.

Segue script de configuração básica para firewall em seu roteador, descartando tráfegos desnecessários.

Por favor, preste atenção nos comentários antes de aplicar cada regra de bloqueio.

VAMOS LÁ! Primeiro precisamos criar nosso ADDRESS LIST com todos os IPs que iremos utilizar.

Abaixo você precisará alterar a rede x.x.x.x/x para o seu endereçamento de suporte. Esta rede terá acesso completo ao seu roteador..

/ip firewall address-list add address=x.x.x.x/x disabled=no list=support

Abaixo nós temos a lista bogon.

/ip firewall address-list

add address=0.0.0.0/8 comment="Identificação [RFC 3330]" disabled=no list=bogons
add address=10.0.0.0/8 comment="Privado [RFC 1918] - CLASSE A # Verifique se você precisará dessa subnet antes de ativar essa regra"\
disabled=yes list=bogons
add address=127.0.0.0/16 comment="Loopback [RFC 3330]" disabled=no list=bogons
add address=169.254.0.0/16 comment="Link Local [RFC 3330]" disabled=no list=bogons
add address=172.16.0.0/12 comment="Privado[RFC 1918] - CLASS B # Verifique se você precisará dessa subnet antes de ativar essa regra"\ 
disabled=yes list=bogons 
add address=192.168.0.0/16 comment="Privado[RFC 1918] - CLASS C # Verifique se você precisará dessa subnet antes de ativar essa regra"\ 
disabled=yes list=bogons 
add address=192.0.2.0/24 comment="Reservado - IANA - TestNet1" disabled=no list=bogons 
add address=192.88.99.0/24 comment="6to4 Relay Anycast [RFC 3068]" disabled=no list=bogons 
add address=198.18.0.0/15 comment="NIDB Testing" disabled=no list=bogons 
add address=198.51.100.0/24 comment="Reservado - IANA - TestNet2" disabled=no list=bogons 
add address=203.0.113.0/24 comment="Reserved - IANA - TestNet3" disabled=no list=bogons 
add address=224.0.0.0/4 comment="MC, Class D, IANA # Verifique se você precisará dessa subnet antes de ativar essa regra"\ 
disabled=yes list=bogons

Agora nós temos as seguintes proteções:: SynFlood, ICMP Flood, Port Scan, Email Spam e algumas coisas a mais. Para maiores informações, leia os comentários.

/ip firewall filter

add action=add-src-to-address-list address-list=Syn_Flooder address-list-timeout=30m chain=input \
comment="Adiciona IP Syn Flood IP na lista" connection-limit=30,32 disabled=no protocol=tcp tcp-flags=syn
add action=drop chain=input comment="Bloqueia da Lista de syn flood" disabled=no src-address-list=Syn_Flooder
add action=add-src-to-address-list address-list=Port_Scanner address-list-timeout=1w chain=input comment="Detectando Port Scanner"\
disabled=no protocol=tcp psd=21,3s,3,1
add action=drop chain=input comment="Bloqueio da lista de scan" disabled=no src-address-list=Port_Scanner
add action=jump chain=input comment="Salta para o fluxo de entrada de icmp" disabled=no jump-target=ICMP protocol=icmp
add action=drop chain=input\
comment="Bloqueia acesso total ao winbox - exceto a lista de suporte # NAO LIGUE ESSA REGRA ANTES DE ADICIONAR A SUA SUBREDE NA LISTA DE SUPORTE"\
disabled=yes dst-port=8291 protocol=tcp src-address-list=!support
add action=jump chain=forward comment="Saltar para o fluxo de encaminhamento de icmp" disabled=no jump-target=ICMP protocol=icmp
add action=drop chain=forward comment="Saltar para o bogon list" disabled=no dst-address-list=bogons
add action=add-src-to-address-list address-list=spammers address-list-timeout=3h chain=forward comment="Adicionar Spammers na lista por 3 horas"\
connection-limit=30,32 disabled=no dst-port=25,587 limit=30/1m,0 protocol=tcp
add action=drop chain=forward comment="Bloqueio da lista de spammers" disabled=no dst-port=25,587 protocol=tcp src-address-list=spammers
add action=accept chain=input comment="Aceita DNS - UDP" disabled=no port=53 protocol=udp
add action=accept chain=input comment="Aceita DNS - TCP" disabled=no port=53 protocol=tcp
add action=accept chain=input comment="Aceita conexões estabelcidas" connection-state=established\
disabled=no
add action=accept chain=input comment="Aceita conexões relacionadas" connection-state=related disabled=no
add action=accept chain=input comment="Libera acesso total a lista de SUPORTE" disabled=no src-address-list=support
add action=drop chain=input comment="Bloqueia todo o restante! # NAO ATIVE ESSA REGRA ANTES DE TER CERTEZA DAS SUAS REGRAS DE LIBERACAO"\
disabled=yes
add action=accept chain=ICMP comment="Solitição de Eco - Bloqueio de Ping Flood" disabled=no icmp-options=8:0 limit=1,5 protocol=icmp
add action=accept chain=ICMP comment="Resposta de Eco" disabled=no icmp-options=0:0 protocol=icmp
add action=accept chain=ICMP comment="Tempo excedido" disabled=no icmp-options=11:0 protocol=icmp
add action=accept chain=ICMP comment="Destino inalcancavel" disabled=no icmp-options=3:0-1 protocol=icmp
add action=accept chain=ICMP comment=PMTUD disabled=no icmp-options=3:4 protocol=icmp
add action=drop chain=ICMP comment="Bloqueio de outros pacotes ICMPs" disabled=no protocol=icmp
add action=jump chain=output comment="Salta para o fluxo de saida de icmp" disabled=no jump-target=ICMP protocol=icmp

Eu acho que isto é o básico para proteger o seu roteador. Você pode adicionar ou remover qualquer coisa de acordo com o que você precisar. Eu espero que isso ajude!

Facebooktwittergoogle_pluslinkedinmail

Script de Atualização DynDNS para Mikrotik 6.xx

Você precisará atualizar o conteúdo em negritdo com as informações da sua conta e host do DynDNS.

1) adicionar um script chamado dynDNS:

:global ddnsuser "usuariodyndns"
:global ddnspass "senhausuariodyndns"
:global theinterface "interfacewan"
:global ddnshost host.dyndns.com.br
:global ipddns [:resolve $ddnshost];
:global ipfresh [ /ip address get [/ip address find interface=$theinterface ] address ]
:if ([ :typeof $ipfresh ] = nil ) do={
 :log info ("DynDNS: No ip address on $theinterface .")
} else={
 :for i from=( [:len $ipfresh] - 1) to=0 do={ 
 :if ( [:pick $ipfresh $i] = "/") do={ 
 :set ipfresh [:pick $ipfresh 0 $i];
 } 
}
 
:if ($ipddns != $ipfresh) do={
 :log info ("DynDNS: IP-DynDNS = $ipddns")
 :log info ("DynDNS: IP-Fresh = $ipfresh")
 :log info "DynDNS: Update IP needed, Sending UPDATE...!"
 :global str "/nic/update\?hostname=$ddnshost&myip=$ipfresh&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
 /tool fetch address=members.dyndns.org src-path=$str mode=http user=$ddnsuser \
 password=$ddnspass dst-path=("/DynDNS.".$ddnshost)
 :delay 1
 :global str [/file find name="DynDNS.$ddnshost"];
 /file remove $str
 :global ipddns $ipfresh
 :log info "DynDNS: IP updated to $ipfresh!"
 } else={
 :log info "DynDNS: dont need changes";
 }
} 

Agendamento:

/system scheduler
add interval=1d 00:00:00 name=DynDNS on-event=dynDNS policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-time=startup
Facebooktwittergoogle_pluslinkedinmail