Backup automático Router Board Mikrotik
Com a necessidade de realizar backup os arquivos de configurações do Mikrotik, realizei algumas pesquisas na internet para realizar o backup de forma automática. No ambiente que será citado abaixo foi usado Debian 7, Router OS v 6.17 (RB’s 450g, 1100×2, 1100).
Vamos entender o cenário. Esse Debian 7, no meu ambiente ele é um servidor FTP, onde utilizo para salvar backups e demais arquivos. O que precisamos é fazer com que este servidor se conecte via SSH nos roteadores da minha rede, execute os comandos de backups que precisamos, e depois copie os backups gerados para uma pasta no servidor. A conexão entre o servidor e roteador será autorizada por chave pública. Ficara mais claro na pratica, então, vamos lá!
Primeiro recomendo que seja criado um usuário para backup no roteador:
Já conectado no Mikrotik, via WinBox, acesso o menu: “System > Users” e crie um usuário com acesso full. Vamos supor que criamos um usuário chamado “BKP”.
Pronto, já temos um o usuário que iremos usar apara acessar o Mikritik via SSH e executar os script’s. Agora precisamos gerar a chave pública no nosso servidor que irá estabelecer a conexão e realizar os backups.
Caso você já tenha gerado chave pública para algum outro fim, você pode utilizar a mesma, caso não, pode criar uma nova. Para verificar se já existe alguma chave, acesse o diretório .ssh do seu usuário, como estou como root no Debian 7, o diretório é:
/root/.ssh/
Caso não tenha a chave, vamos criar:
ssh-keygen -t dsa
Agora vamos enviar essa chave para o Router, dentro do diretório .ssh, execute o seguinte comando:
PS: Não se esqueça de verificar os serviços de ftp e shh do Router estão ativos e as portas estão 22 e 21 estão abertas.
Ao executar o comando, irá ser solicitado o login e senha de acesso ao Router, que pode ser o que acabamos de criar.
sftp ip_do_mikrotik
Se conseguiu se conectar com o comando anterior, basta fazer upload da chave agora:
put id_dsa.pub
Feito isso, a chave já estará no servidor. Basta fazer a importação de autorização dela.
Bom, no mikrotik vá em New Terminal > e faça o seguinte;
user ssh-keys
import
Será solicitado o nome da chave e do usuário:
public-key-file: id_dsa.pub
user: BKP (O que acabamos de criar)
Pronto, com isso o acesso está feito. O que precisamos fazer agora é somente criar o script para realizar o backup automaticamente.
Baixe aqui um arquivo de exemplo:
Depois de ter o arquivo de configuração pronto, basta executar quando for necessário, ou o mais indicado seria adicionar a crontab do servidor para realizar backup automaticamente. Para adicionar tarefas na crontab, veja esse outro post: http://www.prideti.com/2015/04/adicionando-tarefa-na-crontab-linux/
Duvidas, postem nos comentários.
Complementando:
No momento de gera a chave com o comando “ssh-keygen -t dsa” deve informar uma passphrase. Essa senha tem como objetivo garantir que é realmente o servidor ssh que possui o arquivo chave, e não um outro host intermediário. Caso você não queira informar a passphrase toda vez que realizar uma conexão com o servidor, basta apenas deixá-la em branco.
Outra questão importante é o arquivo known_hosts, este arquivo tem como função armazenar os hosts que são “conhecidos” pelo cliente ssh, em outras palavras, os hosts que tem permissão de efetuar a comunicação com o cliente. Um host é adicionado ao arquivo assim que é realizada a primeira comunicação, caso você queira que o host seja adicionado automaticamente, utilize o comando “ssh -o StrictHostKeyChecking=no usuario@endereco_host”. Se você estiver com problemas ao se conectar ao servidor, tente limpar o arquivo known_hosts.
Espero ter ajudado!
Abraço