#  > Telecomunicações >  > Mikrotik >  >  Backup e Atualização em massa MK e UBNT

## AndrioPJ

Todos sabemos da necessidade, da obrigação do administrador em fazer o dever de casa (Atualizar os equipamentos, aplicar patch de segurança, alterar portas padrão de acesso, usar senhas fortes, criar restrição via ACL ou Firewall).

Quem não o faz, provavelmente enfrenta problemas.

Abaixo listo as Vulnerabilidades recentes da Mikrotik:

Vulnerability *VPNFilter* afeta MK nas versões até a 6.37.4 (Bugfix) ou 6.38.4 (Current).Vulnerability *SMB Buffer Overflow* afeta MK nas versões até a 6.40.6 (Bugfix) ou 6.41.2 (Current).Vulnerability *Exploiting the Winbox Port* afeta MK nas versões até a 6.40.7 (Bugfix) ou 6.42 (Current).Vulnerability *Winbox Authentication Bypass* afeta todas as versões da 6.29 até a 6.42 (Current).

Quando se tem 1, 5, 10 equipamentos.... fica fácil atualizar.
O problema é quando se tem 50, 100 ou mais equipamentos.
O processo é demorado e cansativo.

Segue um script para atualização em massa.

O script desativa alguns serviços raramente usados (ftp,www-ssl,api-ssl), desativa alguns pacotes raramente usados (calea, gps, ups, tr069-client).
Desativa o "bandwidth-server", "DNS Server", "proxy", "socks" e "UPNP".
E principalmente, ativa o rp-filter como loose (caso deseje saber mais sobre o rp-filter, leia https://bcp.nic.br/antispoofing)
Por fim, verifica se precisa atualizar o Mikrotik ou não.

Para usar o script, siga os passos abaixo:


Descompacte o arquivo "AutoUpdate Mikrotik (SSH).zip"Com o bloco de notas, edite o arquivo "start update mikrotik.bat"Substitua:
- PORTASSHAQUI pela porta ssh que você usa em sua rede- USERAQUI pelo seu usuario FULL que você usa para acesso- SENHAAQUI pela senha desse usuario FULL.Com o bloco de notas, edite o arquivo "hosts.ini", e coloque o IP de acesso aos seus Mikrotik. (Um IP por linha)Execute o arquivo "start update mikrotik.bat"Pronto... o script cuidara de acessar cada um desses IPs configurados e irá aplicar o script.


Eu poderia ter acrescentado nesse script algumas outras configurações avançadas, tais como:
- desativar serviços n usados e alterar portas dos demais serviços.
- ativar rp-filter strict nos CE ao invés de loose,
- colocar acl de acesso aos serviços,
- firewall bloqueando portas vulneráveis ou amplificadoras,
- bloqueio externo a portas de gerencia,
- outros....

Mas isso depende de rede para rede.
Então optei por colocar apenas algumas config padrão que considero semelhante na maioria das redes.

Edit:
Nova versão do script no post:
https://under-linux.org/showthread.p...l=1#post834196

Fonte:
https://forum.mikrotik.com/viewtopic.php?t=5339
https://forum.mikrotik.com/viewtopic.php?t=102734

----------


## tonflatland

Boa AndrioJP, Parabéns irmão!

----------


## interhome

Parabéns pela iniciativa.

----------


## csjuniormga

Obrigado

----------


## netuai

cara ja cliquei n *. Muito boa a iniciativa

----------


## AndrioPJ

Segue em anexo nova versão do script
- Não precisa mais abrir o cmd para executar o script, depois de editar o host.ini com seus IPs e de alterar a porta/usuario/senha (conforme descrito acima), ai basta executar o "start update mikrotik.bat".
- Adicionado no script o parâmetro para aceitar o HostKey SSH automaticamente.
- Corrigido um erro na verificação de versão do Mikrotik.

----------


## gabrielest

Ótima iniciativa

----------


## UNDERLINE2009

no meu Windows 8.1 nao roda o bat.. sera que nao e compatível com o sistema??

----------


## AndrioPJ

> no meu Windows 8.1 nao roda o bat.. sera que nao e compatível com o sistema??


ele mostra algum erro ou apenas não abre?

Tentou clicar com o botão direito do mouse e "executar como administrador"?

----------


## UNDERLINE2009

> ele mostra algum erro ou apenas não abre?
> 
> Tentou clicar com o botão direito do mouse e "executar como administrador"?




SIM tentei ate no windows Xp porem ele abre e fecha rapido .. tao rapido que so relampeja a tela preta.. conferi tudo porem nao consigo fazer rodar, tentei rodar os executaveis PLINK e PSCP CLICANDO DIRETO neles porem acontece o mesmo ... qulaque ajuda é bem vinda ja que se funcionar vai ser uma mao na roda pra mim.. agradeço a contrubuicao..

----------


## AndrioPJ

> SIM tentei ate no windows Xp porem ele abre e fecha rapido .. tao rapido que so relampeja a tela preta.. conferi tudo porem nao consigo fazer rodar, tentei rodar os executaveis PLINK e PSCP CLICANDO DIRETO neles porem acontece o mesmo ... qulaque ajuda é bem vinda ja que se funcionar vai ser uma mao na roda pra mim.. agradeço a contrubuicao..


Abre o CMD,
Navegue até a pasta onde você descompactou os arquivos.
ai rode o comando:
"start update mikrotik.bat"

Ele vai executar e manter em aberto a tela, assim você vai conseguir ver qual o erro.

----------


## UNDERLINE2009

entao agora ao fazer isso ele ta rodando blz desde ja agradeço de mais, e meus parabens por compartilhar conhrcimrnto

----------


## UNDERLINE2009

meu teclado ta com defeito, mas ta valendo , outra coisa que ja tentei fazer e nunca conseguir, sei que o topico é sobre outro assunto porem se pudesse ajudar, tenho uma rede em que eu adiciono pppoe em rbs todo dia ai queria aruumar alguma forma de cadastra o cliente na rb via comando ssh pra facilitar pra mim , tipo uma pagina php que eu escolhia a concentradora (pra onde vai o pppoe ) e a antena (para onde vai o mac e comentário) fazer os comando via terminal consigo, so nao consigo automatizar essa tarefa ´pra ficar mais fácil injetar clientes nas rbs e antenas, sei que tem programas radius etc, mas gerencio tudo pelo mk mesmo e um sistema simples desse ajudaria, mas pelo que vi nao achei na internet.. mas obrigado por tudo por enquanto.

----------


## igorroseno

Eu consegui usar o programa, meu mk está a 6.42.3 e tem a versão 6.42.6 pra att, só que o script fica verifica atualização, instalando atualização, ai logo aparece, nenhuma atualização para instalar... Como resolvo Andrio?

----------


## AndrioPJ

> Eu consegui usar o programa, meu mk está a 6.42.3 e tem a versão 6.42.6 pra att, só que o script fica verifica atualização, instalando atualização, ai logo aparece, nenhuma atualização para instalar... Como resolvo Andrio?


Esse MK tem acesso a internet?
Caso contrario, temporariamente, terá que fazer um NAT geral

----------


## netuai

ele vai derrubando um a um, ou faz tudo de uma so vez? Vou aplicar mas to com medo de derrubar a rede toda

----------


## AndrioPJ

> ele vai derrubando um a um, ou faz tudo de uma so vez? Vou aplicar mas to com medo de derrubar a rede toda


Ele vai fazer um a um.
Assim que ele rodar o comando no primeiro, vai tentar comunicar com o segundo.
Logo, esse segundo não pode estar atrás do primeiro.
Digo isso, pois a cada atualização, a RB reinicia.

Dica:
Coloque os IPs na lista de tal forma que comece a atualização pelos mais distantes.
E de preferencia, divida em setores.
IP mais distante do setor A
IP mais distante do setor B
e por ai vai.

----------


## netuai

> Ele vai fazer um a um.
> Assim que ele rodar o comando no primeiro, vai tentar comunicar com o segundo.
> Logo, esse segundo não pode estar atrás do primeiro.
> Digo isso, pois a cada atualização, a RB reinicia.
> 
> Dica:
> Coloque os IPs na lista de tal forma que comece a atualização pelos mais distantes.
> E de preferencia, divida em setores.
> IP mais distante do setor A
> ...


Meu caso vai cair o pessoal aleatoriamente, pois envio ip real de forma dinâmica pelo pppoe, portanto cada hora é um ip

----------


## netuai

o meu não quiz rodar, editei os ips de forma correta e esta dando a seguinte mensagem 
"pw" não é reconhecido como comando interno ou externo, um programa operável ou um arquivo em lotes.

----------


## AndrioPJ

> o meu não quiz rodar, editei os ips de forma correta e esta dando a seguinte mensagem 
> "pw" não é reconhecido como comando interno ou externo, um programa operável ou um arquivo em lotes.


revise o arquivo "start update mikrotik.bat"
Tem algo errado nele

----------


## netuai

@echo off 
@echo ***********************************************
@echo ***********************************************
@echo *** *** *** *** *** *** *** *** *** *** *** ***
@echo ANDRIO PRESTES JASPER
@echo [email protected]
@echo (65)9 93203170
@echo *** *** *** *** *** *** *** *** *** *** *** ***
@echo ***********************************************
@echo ***********************************************
@echo ..
@echo "Apagando Logs Antigos"
@echo ......
@echo "Iniciando SCRIPT"
@echo .......... 
del Logs\*.log
FOR /F %%I IN (hosts.ini) DO (echo y | PLINK.EXE -v -sshlog Logs\%%I.log -ssh -P 22 USUARIO DAS ANTENAS [email protected]%%I -
pw MINHA SENHA DAS ANTENAS CLIENTES -m update_MK.ini)

----------


## AndrioPJ

> @echo off 
> @echo ***********************************************
> @echo ***********************************************
> @echo *** *** *** *** *** *** *** *** *** *** *** ***
> @echo ANDRIO PRESTES JASPER
> @echo [email protected]
> @echo (65)9 93203170
> @echo *** *** *** *** *** *** *** *** *** *** *** ***
> @echo ***********************************************
> ...


aparentemente houve quebra de linha no -pw

----------


## netuai

> aparentemente houve quebra de linha no -pw


e como resolver?

----------


## AndrioPJ

> e como resolver?


Edita o arquivo e tira o espaçamento entre o "-" e o "pw", e não deixa ter quebra de linha no codigo.

----------


## AndrioPJ

> e como resolver?


Edita o arquivo e tira o espaçamento entre o "-" e o "pw", e não deixa ter quebra de linha no codigo.

----------


## netuai

agora deu certo, porem deu erro na atualização do equipamento e parou o processo

----------


## igorroseno

Andrio, meus equipamentos todos tem acesso a internet, manual, eu clicando em packages e buscando a atualização, funciona normal, só que pelo programa diz que não a atualizações.

----------


## netuai

> Andrio, meus equipamentos todos tem acesso a internet, manual, eu clicando em packages e buscando a atualização, funciona normal, só que pelo programa diz que não a atualizações.


Aqui criei um script para rodar manual em cada cliente, funcionou bem aqui, todos meus clientes sao pppoe

----------


## AndrioPJ

Prezados,
Estou finalizando algumas correções de BUG e adicionando BKP automatico antes de atualizar.

Bug que foram resolvidos
- Executamos um script em Batch, que conecta no Mikrotik por SSH.
Acontece que o Mikrotik não sabe que é um script, para ele é uma pessoa que está realizando o acesso via SSH.
Ai quando é enviado o comando para dar reboot, o Mikrotik pede confirmação.
Por se tratar de um script, não vemos que foi pedido confirmação e a atualização ficava travada.
Esse problema já foi corrigido.

- Como dito, o script realiza um acesso remoto via ssh.
Quando o Mikrotik reinicia, a sessão SSH deveria ser finalizada e o script partir para o proximo IP.
Porém em algumas versões do Windows isso não estava acontecendo.
E o script acabava ficando travado, preso na ultima sessão ssh, sendo necessario apertar manualmente CTRL + C para finalizar aquela sessão e o script ir para o proximo IP.
Esse problema já foi corrigido.

Funcionalidades sendo implementadas
- Verificação de ping dos IPs informados.
Afim de ganhar tempo, antes de tentar conectar via SSH, ele verifica se o IP está respondendo.

- Backup automatico.
Mesmo que já tenhamos homologado, testado determinada versão... Nunca sabemos se o processo de atualização poderá ocasionar algum problema naquela RB.
Por esse motivo, estou implementando Backup automatico antes de realizar a atualização.

----------


## AndrioPJ

O script:
- Verifica e atualiza o Mikrotik para a ultima versão BUGFIX.
- Verifica e atualiza o Firmware do Mikrotik.
- Faz Backup das configurações do Mikrotik.
- Desativa alguns serviços raramente usados (ftp,www-ssl,api-ssl), desativa alguns pacotes raramente usados (calea, gps, ups, tr069-client). Desativa o "bandwidth-server", "DNS Server", "proxy", "socks" e "UPNP". E principalmente, ativa o rp-filter como loose (caso deseje saber mais sobre o rp-filter, leia https://bcp.nic.br/antispoofing). Outras configurações de segurança poderiam ser adicionado ao script, Mas isso varia de rede para rede, Então optei por colocar apenas algumas config padrão que considero semelhante na maioria das redes.

#############
# COMO USAR
#############
1 - Descompacte o arquivo.

2 - Com o bloco de notas, edite o arquivo "config.txt"
Informe:
- UsuarioSSH= O seu usuario do mikrotik.
- SenhaSSH= A sua senha do Mikrotik.
- PortaSSH= A porta de acesso SSH ao seu mikrotik.

3 - Com o bloco de notas, edite o arquivo "hosts.txt", e coloque o IP de acesso aos seus Mikrotik.
Um IP por linha.

4 - Execute o arquivo "Start.bat".
Selecione a opção desejada:
---- 1. Fazer Backup - Para fazer Backup de todos os IPs ativos informados em hosts.txt.
---- 2. Atualizar Versao MK - Para fazer Atualizacao de versao de todos os IPs ativos informados em hosts.txt.
---- 3. Atualizar Firmware MK - Para fazer Atualizacao de Firmware de todos os IPs ativos informados em hosts.txt.
---- 4. Todas as opcoes Acima - Para fazet todos os procedimentos acima.
---- 5. Aplicar Config Seguranca - Para aplicar pequenas ajustes de segurança.
---- 6. Apagar LOGs Antigos - Para apagar LOGs antigos.


#############
# CHANGELOG
#############
- Implementado menu de opções.
- Implementado suporte a Backup antes de realizar atualização de versão.
- Corrigido bug de sessão SSH presa quando utilizado usuário/senha inválido.
- Implementado verificação de hosts ativo antes de tentar conexão SSH, afim de agilizar o processo.
- Melhorado o LOG, agora ele informa em um arquivo separado quais os hosts estavam Offline e Online....
- Corrigido erro quando mandava reiniciar o MK para aplicar o update de firmware.
- Corrigido bug de sessão SSH presa quando o MK reiniciava.
- Implementado verificação de versão, para evitar rodar comando de atualização sem necessidade.
- Implementado verificação de firmware, para evitar rodar comando de atualização sem necessidade.

----------


## eduardotmc

bom dia.
estou tentando realizar o processo para atualizar meus clientes pppoe que utilizam mkt. 
chega até a conectar no ssh mas da erro nessa parte, parece ser algo relacionado a versão do ssh.

INICIANDO ATUALIZACAO DE VERSAO
Looking up host "100.64.6.206"
Writing new session log (SSH packets mode) to file: Logs\100.64.6.206.log
Connecting to 100.64.6.206 port 9999
We claim version: SSH-2.0-PuTTY_Release_0.67
Server version: SSH-2.0-ROSSSH
Using SSH protocol version 2
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Host key fingerprint is:
ssh-rsa 2048 3c:1c:be:7a:2f:fe:7c:51:5f:91:6c:dc:d5:48:8c:fd
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 3c:1c:be:7a:2f:fe:7c:51:5f:91:6c:dc:d5:48:8c:fd
Connection abandoned.
Disconnected: Aborted at host key verification

coloquei uma porta de teste 9999 e o ip do meu cliente é cgnat (nesse cenário)
alguma dica de onde posso estar errando?

testei com ip válido também e a porta padrão 22, deu a mesma mensagem.

obrigado

----------


## AndrioPJ

> bom dia.
> estou tentando realizar o processo para atualizar meus clientes pppoe que utilizam mkt. 
> chega até a conectar no ssh mas da erro nessa parte, parece ser algo relacionado a versão do ssh.
> 
> INICIANDO ATUALIZACAO DE VERSAO
> Looking up host "100.64.6.206"
> Writing new session log (SSH packets mode) to file: Logs\100.64.6.206.log
> Connecting to 100.64.6.206 port 9999
> We claim version: SSH-2.0-PuTTY_Release_0.67
> ...


Aparentemente ele não está aceitando o HostKey automaticamente.
Devo ter deixado passar algo.
vou revisar.

----------


## infoevandro

Consegui resolve o problema informado editando o Start.bat e no inicio de cada linha onde tem o comando:
*echo y* | PLINK -batch -v -sshlog ...

alterei para:
*cmd.exe /c echo y* | PLINK -batch -v -sshlog ...

Assim ele irá aceitar o HostKey automaticamente.

Espero ter ajudado assim como o Script de atualização em massa tem nos ajudado!

----------


## igorroseno

Você poderia disponibilizar este script?

----------


## igorroseno

O meu também esta dando o problema do host key


##### EDIT #####

O problema do host key, é aquela mensagem que quando você abre pelo putty, você precisa dar ok, ai vai aparecer o usuario e senha, mesma mensagem por exemplo, quando vai abrir uma antena ubiquiti pelo ssh.
Ao dar ok na mensagem pelo putty, e abrir o programa novamente, a atualização funciona.
Porém, tem que ver do programa aceitar a mensagem automaticamente, e não abrir o putty, aceitar, e botar o programa para rodar.

----------


## AndrioPJ

Nova versão do *MassUpdate*

#############
# *SOBRE*
#############
- O script desativa alguns serviços raramente usados (ftp,www-ssl,api-ssl), desativa alguns pacotes raramente usados (calea, gps, ups, tr069-client). Desativa o "bandwidth-server", "DNS Server", "proxy", "socks" e "UPNP". E principalmente, ativa o rp-filter como loose (caso deseje saber mais sobre o rp-filter, leia https://bcp.nic.br/antispoofing). Outras configurações de segurança poderia ser adicionado ao script, porém vai de rede para rede.
- Verifica e atualiza o Mikrotik para a ultima versão BUGFIX / LONGTERM.
- Verifica e atualiza o Firmware do Mikrotik.
- Faz Backup das configurações do Mikrotik.

#############
# *COMO USAR*
#############
1 - Descompacte o arquivo "MassUpdate5 MK (SSH).zip"

2 - Com o bloco de notas, edite o arquivo "config.txt"
Informe:
- UsuarioSSH= O seu usuario do mikrotik
- SenhaSSH= A sua senha do Mikrotik
- PortaSSH= A porta de acesso SSH ao seu mikrotik.

3 - Com o bloco de notas, edite o arquivo "hosts.txt", e coloque o IP de acesso aos seus Mikrotik.
Um IP por linha.

4 - Execute o arquivo "Start.bat".
Selecione a opção desejada:
---- 0. Checar conexão - Aceita o HostKey automaticamente e verifica a conexão com os Hosts informados.
---- 1. Fazer Backup - Para fazer Backup de todos os IPs ativos informados em hosts.txt
---- 2. Atualizar Versao MK - Para fazer Atualizacao de versao de todos os IPs ativos informados em hosts.txt
---- 3. Atualizar Firmware MK - Para fazer Atualizacao de Firmware de todos os IPs ativos informados em hosts.txt
---- 4. Todas as opcoes Acima - Para fazet todos os procedimentos acima
---- 5. Aplicar Config Seguranca - Para aplicar pequenas ajustes de segurança
---- 6. Apagar LOGs Antigos - Para apagar LOGs antigos.


#############
# *CHANGELOG*
#############
27/12/2018
- Adicionado informação na tela dos Hosts total a quantidade que está Online e quantidade que está Offline.
- Corrigido script de atualização de versão, compativel com versão superior a 6.42.10.
- Melhorado o auto aceite do HostKey.
- Adicionado menu 0 (novo) para checar conexão.
- Melhorado o Log:
--- Ao checar a conexão, o script vai gerar log informando quais equipamentos deram erro de conexão e qual erro deu.
--- Ao fazer o Backup, o script vai gerar log informando se o Backup foi concluido com sucesso ou não.

18/12/2018
- Corrigido script Backup.
- Corrigido script atualização de versão (compativel com versão superior a 6.33).
- Corrigido script de atualização de firmware.
- Implementado verificação de host por ping.

----------


## fabiogaruva

Boa Noite!!!!

Estou tentando executar o script de segurança, porém somente a primeira linha linha do comando "security.ini" é executado. Alguém pode me ajudar a resolver?

Desde já agradeço.

----------


## fabiogaruva

> Boa Noite!!!!
> 
> Estou tentando executar o script de segurança, porém somente a primeira linha linha do comando "security.ini" é executado. Alguém pode me ajudar a resolver?
> 
> Desde já agradeço.



Com ajuda do mestre Andrio consegui resolver. Os comandos tem de ser executados na mesma linha. 
Os comandos estão nesse formato, com quebra de linha:

_/ip service disable ftp,www-ssl
/ip service set ssh port=2222
/ip service set telnet port=23232_

Devem ser alterados para este formato:

_/ip service disable ftp,www-ssl; /ip service set ssh port=2222; /ip service set telnet port=23232_


*Muito obrigado pela ajuda!!!!!*

----------


## jeffao

Bom dia,

Sr, aqui ele acessa o mikrotik, adiciona o script mas não executa o script, o que pode estar acontecendo?

Desde já agradeço

----------


## csjuniormga

se vc não agendar a execução do script ou fazer a chamada dele ele não vai executar. 

no menu /system script vc pode executar o script manualmente, por eventos ou agendamento. 

De uma olhada na pagina da wiki que tem mais informações

https://wiki.mikrotik.com/wiki/Manual:Scripting

----------


## contatoricardosouza

Onde eu acho para baixar esse script ?





> O script:
> - Verifica e atualiza o Mikrotik para a ultima versão BUGFIX.
> - Verifica e atualiza o Firmware do Mikrotik.
> - Faz Backup das configurações do Mikrotik.
> - Desativa alguns serviços raramente usados (ftp,www-ssl,api-ssl), desativa alguns pacotes raramente usados (calea, gps, ups, tr069-client). Desativa o "bandwidth-server", "DNS Server", "proxy", "socks" e "UPNP". E principalmente, ativa o rp-filter como loose (caso deseje saber mais sobre o rp-filter, leia https://bcp.nic.br/antispoofing). Outras configurações de segurança poderiam ser adicionado ao script, Mas isso varia de rede para rede, Então optei por colocar apenas algumas config padrão que considero semelhante na maioria das redes.
> 
> #############
> # COMO USAR
> #############
> ...

----------


## contatoricardosouza

Alguém sabe me falar onde eu baixo esse script ?

----------

